Образовательная платформа

Скидка 30% до 24 июля

Курс

Алгоритмы и структуры данных для разработчиков

Алгоритмы и структуры данных для разработчиков

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

Кому подойдёт этот курс

Чему вы научитесь

  1. Освоите базовые алгоритмы

    Сможете реализовывать базовые алгоритмы на массивах и разные виды алгоритмов бинарного поиска. Познакомитесь с принципами построения хэш-таблиц и способами решения проблемы коллизий хэш-функций.

  2. Работать со структурами данных

    Научитесь работать с различными структурами данных: связными списками, очередями, стэками, двусторонними очередями (деками), кучами, бинарными, B-, R- и суффиксными деревьями, а также различными видами графов.

  3. Познакомитесь с вариантами алгоритмов

    Научитесь реализовывать алгоритмы сортировки SelectionSort, QuickSort и MergeSort, сможете создавать и применять рекурсивные и жадные алгоритмы.

  4. Поймете, как оценивать сложность алгоритмов

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

Как проходит обучение

  1. Изучаете тему

    В курсе — практические видеоуроки.

    Изучаете тему
  2. Выполняете задания

    В том темпе, в котором вам удобно.

    Выполняете задания
  3. Работаете с преподавателем

    Закрепляете знания и исправляете ошибки.

    Работаете с преподавателем
  4. Получаете сертификат

    И дополняете им своё портфолио.

    Получаете сертификат

Программа

Вас ждут онлайн-лекции и практические задания.

  • 20 тематических модулей
  • 94 онлайн-урока
  1. Введение в алгоритмы

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

  2. Алгоритм бинарного поиска

    Узнаете, что такое бинарный поиск, как он работает, почему и насколько он эффективнее простого поиска перебором, а также о его возможностях и тонкостях.

  3. Хеш-таблицы и хеш-функции

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

  4. Связные списки

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

  5. Стек и очередь

    Познакомитесь со структурами данных — стек, очередь и дек (двусвязная очередь), узнаете принципы их построения и работы.

  6. Алгоритмы сортировки

    Узнаете о принципах и особенностях популярных алгоритмов сортировки — SelectionSort, QuickSort и MergeSort. Научитесь оценивать на их примерах сложность алгоритмов по времени и памяти.

  7. Рекурсивные алгоритмы

    Научитесь создавать и применять рекурсивные алгоритмы, а также познакомитесь с принципами оценки их сложности.

  8. Сложность алгоритмов и О-нотация

    Узнаете, что такое О-нотация, научитесь оценивать сложность алгоритмов и различать их по памяти и времени.

  9. Введение в жадные алгоритмы

    Познакомитесь с принципами работы жадных алгоритмов на примере итераций с двумя и тремя индексами, а также алгоритмов на строках.

  10. Деревья. Бинарное дерево поиска

    Узнаете о принципах работы и особенностях деревьев на примере бинарного дерева, познакомитесь с алгоритмами поиска, добавления и удаления элементов из него.

  11. B-дерево, R-дерево, K-d дерево

    Познакомитесь со сложными типами деревьев, которые применяются на практике. Узнаете, как они устроены, и научитесь с ними работать.

  12. Суффиксные деревья

    Узнаете, что такое суффиксные деревья и как они применяются в алгоритмах поиска и сжатия.

  13. Балансировка деревьев и кучи

    Изучите основные принципы балансировки деревьев, а также познакомитесь со структурой данных «куча».

  14. Графы и их разновидности

    Узнаете, какие бывают графы, что такое ребро, вершина, взвешенный и ориентированный граф.

  15. Алгоритмы на графах

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

  16. Алгоритмы сжатия информации

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

  17. Введение в криптографию

    Познакомитесь с алгоритмами симметричного и асимметричного шифрования, а также популярными алгоритмами RSA и AES.

  18. Алгоритмы хеширования

    Изучите принципы работы алгоритма расчёта контрольных сумм CRC и алгоритмов хеширования MD5 и SHA.

  19. Битовые алгоритмы

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

  20. Вероятностные и итеративные алгоритмы

    Познакомитесь с численными методами и вычислениями с заданной точностью, методом Монте-Карло, а также вероятностными алгоритмами — фильтром Блума и HyperLogLog.

Спасибо!

Ваша заявка успешно отправлена

Преподаватели

Михаил Овчинников

Михаил
Овчинников

Главный методист технического направления Skillbox

Специалист в области разработки высоконагруженных систем и обработки больших данных. Докладчик крупнейших IT-конференций России. Более 15 лет опыта в IT — от стартапов до крупных компаний.

Илья Павлов

Илья
Павлов

Разработчик в Nvidia

Специалист в области алгоритмов и структур данных. Проходил стажировку в главных офисах Microsoft и Asana. Занимался исследованиями в области алгоритмов в Huawei. Работал над поиском в Яндексе. Преподаёт в МФТИ.

  • Старт курса: 25 июля
  • Осталось: 14 мест

Стоимость обучения

Рассрочка на 12 месяцев

  • 3 267 ₽/мес
  • 39 200 ₽
  • 56 000 ₽

Скидка 30% до 24 июля

Часто задаваемые вопросы