Онлайн-курс «Алгоритмы и структуры данных» | robot_dreams
  • онлайн-курс
  • 40 занятий
  • финальный проект

АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ

Изучите алгоритмы, чтобы оптимизировать код, быстро решать нестандартные задачи и масштабировать системы без костылей и багов.

Артем Верещака

Platform Software Engineer у

Speechify

 

former Tech Lead в Bolt

ЭТОТ КУРС ДЛЯ ВАС, ЕСЛИ ВЫ ХОТИТЕ:

организовывать данные для эффективного использования

реализовывать классические алгоритмы и создавать собственные

строить хэш-таблицы, жадные алгоритмы и алгоритмы на строках

применять алгоритмы для динамического программирования

 

о курсе

  • Продолжительность:

    10 недель

  • Языки для практики:

    JavaScript, Java и Python

Комплексный курс о том, как находить нестандартные решения в сложных рабочих задачах, оптимизировать строки программного кода и масштабировать IT-системы, опираясь на знания по алгоритмике.

В ПРОГРАММУ КУРСА ВХОДЯТ

КОНТЕНТ

Вы освоите алгоритмы сортировки, бинарные и сбалансированные деревья, графы, хэш-функции и хэш-таблицы. Будете решать одномерные и двумерные задачи динамического программирования и научитесь решать рабочие задачи с помощью классических методов алгоритмики.

ПРАКТИКА

Вы будете разбирать алгоритмы на языках Python, Java, JavaScript. На одном из этих языков на ваш выбор будете писать домашние задания, а лектор будет давать фидбек по вашему коду. После этого вы будете получать полный разбор задач и сможете отслеживать свои ошибки.

КАРЬЕРА

Вы закроете пробелы в знаниях и подготовитесь к problem solving interview в крупной IT-компании. Для 3 самых успешных студентов лектор проведет тестовое техническое интервью или личную консультацию.

 

Программа

  • 01 блок

    ВВЕДЕНИЕ

    • Знакомство с курсом и лектором
    • Введение в алгоритмы и структуры данных

    Результаты: узнаете, что такое структуры данных и алгоритмы. Поймете, что такое сложность алгоритмов и как ее считать.

  • 02 блок

    МАССИВЫ ДАННЫХ

    • Статические и динамические массивы данных
    • LeetCode Problems Solving: массивы
    • Case Study: массивы

    Результаты: узнаете, что такое массивы и как с ними работать. Научитесь реализовывать типовые задачи на массивах, применять операции и действия над массивами, определять временную и пространственную сложность при работе с массивами. Сможете решать алгоритмические задачи разной сложности.

  • 03 блок

    СПИСКИ, СТЕКИ, ОЧЕРЕДИ, РЕКУРСИЯ

    • Связанный список
    • Создание стека и очереди поверх массива или списка
    • Deque и ArrayDeque
    • LeetCode Problems Solving: списки, стеки, очереди
    • Case Study: списки, стеки, очереди
    • Основы рекурсии
    • Хвостовая рекурсия
    • LeetCode Problems Solving: список и рекурсия

    Результаты: узнаете, что такое связанные списки, стеки, очереди и как с ними работать. Научитесь осуществлять операции над ними, решать типовые задачи со связанными списками, по стекам и очередям, а также алгоритмические задачи разной сложности.

  • 04 блок

    АЛГОРИТМЫ ПОИСКА И СОРТИРОВКИ

    • Алгоритмы поиска
    • LeetCode Problems Solving: алгоритмы поиска
    • Алгоритмы сортировки
    • Сортировка слиянием и быстрая сортировка
    • Сортировка: гибридные подходы
    • LeetCode Problems Solving: алгоритмы сортировки
    • Case Study: алгоритмы поиска и сортировки

    Результаты: узнаете об основных алгоритмах поиска и сортировки и их реализации. Ознакомитесь с библиотеками сортировки. Научитесь реализовывать задачи по применению бинарного алгоритма и сортировать массивы данных. Сможете определить, какой алгоритм лучше подходит для решения конкретной задачи.

  • 05 блок

    ДЕРЕВЬЯ КАК СТРУКТУРЫ ДАННЫХ

    • Дерево как структура данных
    • Бинарное дерево поиска
    • LeetCode Problems Solving: деревья
    • Case Study: деревья
    • Сбалансированные деревья
    • Heap как структура данных
    • Специальные деревья
    • LeetCode Problems Solving: Heap и специальные деревья
    • Case Study: деревья Advanced

    Результаты: узнаете, какие бывают деревья, и научитесь находить общего предка, диаметр дерева, глубину узла и сумму ветвей. Поработаете с деревом поиска. Научитесь реализовывать обход дерева и поиск по нему. Узнаете о сбалансированных деревьях. Научитесь работать со специальными деревьями и решать классические задачи с использованием деревьев.

  • 06 блок

    ГРАФЫ КАК СТРУКТУРЫ ДАННЫХ

    • Графы. Part 1
    • Графы. Part 2
    • LeetCode Problems Solving: графы
    • Case Study: графы

    Результаты: узнаете, какие бывают графы, как их задавать посредством матрицы или списка смежности. Научитесь реализовывать алгоритмы обхода и поиска, нахождения кратчайшего пути. Сможете решать типовые задачи на графы.

  • 07 блок

    ХЭШ-ТАБЛИЦА

    • Хэш-таблица
    • LeetCode Problems Solving: хэш-таблица
    • Case Study: хэш-таблица

    Результаты: узнаете о хэш-функциях и их назначении, хэш-таблицах и их свойствах. Научитесь применять хэш-таблицы и хэш-функции для решения задач.

  • 08 блок

    ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЖАДНЫЕ АЛГОРИТМЫ

    • Динамическое программирование
    • LeetCode Problems Solving: динамическое программирование
    • Жадные алгоритмы
    • Case Study: динамическое программирование и жадные алгоритмы

    Результаты: узнаете, что такое динамическое программирование, научитесь определять простые задачи на динамику и находить решения для них. Сможете применять динамическое программирование, оптимизировать time and space complexity, определять и выполнять задачи на динамику с разными подходами. Узнаете, что такое жадные алгоритмы, и научитесь решать проблемы с их помощью.

  • 09 блок

    ИТОГИ

    • Подготовка к техническому интервью
    • Итоги — Q&A

    Результаты: узнаете, из каких этапов состоит кодинг интервью и как к нему подготовиться. Научитесь определить классические подходы и задания на собеседовании, реализовывать задачи во время интервью с ограниченными ресурсами и использовать информацию из описания для быстрого поиска решения. Сможете декомпозировать задачу.

лектор

Артем Верещака

Platform Software Engineer в Speechify, former Tech Lead в Bolt

  • техлид команды Rental Micromobility, проводит технические интервью для инженеров и разработчиков в Bolt

  • участвовал в написании бэкенда с нуля для аренды самокатов и велосипедов

  • вместе с командой спроектировал и запустил систему каршеринга [в тестовом режиме в Таллинне, Эстония]

  • занимался разработкой расширенной поисковой системы для рынка недвижимости Великобритании в OneDome

  • разрабатывал веб-приложение DB Compliance для внутреннего использования аудиторами в Luxoft

  • в течение трех лет успешно выпустил более 250 студентов курса «Алгоритмы и структуры данных»

РЕГИСТРАЦИЯ

Научитесь автоматизировать и ускорять рабочие задачи благодаря алгоритмам

 
 
 
Регистрируясь, вы соглашаетесь с условиями договора-оферты и политикой конфиденциальности.