Образовательная платформа
Участвует в распродаже Скидка 15%
действует 0 дней 00:00:00
Курс

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

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

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

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

  • Разработчикам уровня junior

    Разработчикам уровня junior

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

  • Разработчикам уровня middle

    Разработчикам уровня middle

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

  • Участникам олимпиад

    Участникам олимпиад

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

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

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

    Узнаете, как реализовать простейший алгоритм на массиве. Поймёте отличие алгоритма бинарного поиска от поиска перебором. Научитесь строить хэш-таблицы.

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

    Выясните, какие бывают структуры данных: от связных списков до графов.

  3. Разбираться в вариантах алгоритмов

    Изучите разные варианты алгоритмов: рекурсивные, жадные, сортировка выбором или слиянием, быстрая сортировка.

  4. Оценке алгоритмов

    Узнаете, как определить сложность алгоритма. Разберётесь, как оптимизировать и ускорять код.

Система прохождения

  1. Теория:

    смотрите лекции.

    Теория:
  2. Практика:

    выполняете самостоятельные работы.

    Практика:
  3. Проверка:

    получаете фидбэк от ментора и вносите правки.

    Проверка:
  4. Опыт:

    выполняете итоговый проект и добавляете его в портфолио

    Опыт:

Содержание курса

Вас ждут 18 тематических модулей. Изучите алгоритмы: рекурсивные, жадные, битовые, сжатия информации, бинарного поиска, сортировки и хэширования. Поймёте, как работать со структурами данных.

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

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

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

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

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

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

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

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

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

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

  6. Основы алгоритмов сортировки

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

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

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

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

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

  9. Жадные алгоритмы

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

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

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

  11. Деревья. Обход в ширину и глубину

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

  12. Куча (Heap)

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

  13. Бор. Суффиксное дерево. B-дерево

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

  14. Графы и рекурсивные алгоритмы

    Узнаете, что такое графы и как их обходить в длину и ширину.

  15. Топологическая сортировка и неочевидные применения графов

    Разберёте распространённые задачи на графах, познакомитесь с алгоритмом Дейкстры.

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

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

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

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

  18. Алгоритмы хэширования. Криптографические алгоритмы

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

Спикеры

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

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

Ведущий инженер-программист в Badoo

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

Илья Павлов

Илья
Павлов

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

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

Анна Коптева

Анна
Коптева

Инженер-разработчик в Яндексе

Опыт в сфере — более 6 лет. Работала над проектами Яндекс.Браузер, Яндекс.Игры и Messaging для Mary Kay. Принимала участие в разработке точки входа в экосистему продуктов МТС в МТС Digital. Приглашённый лектор в МГТУ им. Баумана, эксперт и судья на хакатоне Hack<123.

  • Старт курса: 21 мая
  • Осталось: 9 мест

Стоимость курса

  • Рассрочка до 12 месяцев без переплат
  • 137 BYN/мес
  • 162 BYN/мес
Участвует в распродаже Скидка 15%
действует 0 дня 00:00:00

Шаг 1. Выберите вариант оплаты

Шаг 2. Заполните контактные данные

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

Нажимая на кнопку, я соглашаюсь на обработку персональных данных

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

Спасибо!

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

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

  • Для прохождения курса требуются специальные знания?

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

    В видеолекциях примеры будут на Java. Кроме того, к лекциям будут приложены примеры ещё на восьми языках: Python, JavaScript, PHP, C#, Go, C++, Swift, Kotlin.
  • Я смогу совмещать курс с работой? Сколько часов надо уделять занятиям?

    Да, совмещать учебу и работу получится, потому что вы решаете, когда смотреть уроки. В среднем студенты Skillbox уделяют учебе от трёх до пяти часов в неделю.
  • Как я буду общаться с куратором?

    Куратор будет проверять и комментировать практические работы, давать советы, а на вопросы ответит ментор в Telegram-чате.
  • Не могу оплатить курс сразу. Есть альтернативы?

    Да: рассрочка. Сумму разделят на ежемесячные платежи.
  • Мне вернут деньги, если курс не понравится?

    Да. Сумму рассчитают в соответствии с вашим прогрессом в обучении. Альтернативный вариант: заменить курс на другой.