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

Курс о разработке и использовании разнообразных алгоритмов и структур данных
IT: Интернет / Проектирование и разработка сайта
OTUS Онлайн-образование логоOTUS Онлайн-образование
Дата уточняется
5 месяцев
Онлайн
от 60 000 ₽
Зарегистрироваться
Целевая аудитория
Junior-разработчикиMiddle-разработчики

Что даст вам этот курс

Знание классических алгоритмов и структур данных — обязательное требование, которое предъявляют крупные IT-компании к претендентам на вакансию Middle Developer. Именно понимание принципов работы алгоритмов и структур данных позволяет повысить производительность программ и улучшить качество кода.

Поэтому для вас мы разработали уникальную авторскую программу от инженера-программиста из Лаборатории Касперского, которая поможет на профессиональном уровне:

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

Для кого этот курс?

Программа создана для Junior/Middle разработчиков, владеющих разными языками программирования. Откроет огромные перспективы для развития тем, кто застоялся на месте, и тем, кто хочет вырасти профессионально, избежав многих ошибок. И, конечно, курс просто жизненно необходим всем, кто прогулял или недостаточно серьёзно относился к занятиям по алгоритмам в вузе.
 
50+ работодателей ждут наших выпускников
Большое количество практических заданий
Примеры не на псевдокоде, а на одном из языков: С++, Python, Java

Необходимые знания

  • Опыт программирования на любом языке программирования (начальный или средний уровень)
  • Знание элементарной математики в объёме средней школы
  • Минимальное знание алгоритмов и структур данных и желание развиваться в области их изучения

Процесс обучения

Обучение проходит онлайн, в формате вебинаров. Длительность этого курса составляет 5 месяцев, финальный месяц отводится для выполнения проектной работы и оттачивания полученных навыков.

Расписание занятий включает 2 вебинара в неделю по 2 академических часа и от 2 до 4 часов на домашнюю работу.

Во время обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций, домашних заданий и выпускного проекта.
Программа
1 Введение в алгоритмы и структуры данных
1.1 Комбинаторика
1.2 Алгебраические алгоритмы
1.3 Битовая арифметика
1.4 Базовые структуры данных
2 Алгоритмы сортировки
2.1 Простая сортировка
2.2 Пирамидальная сортировка
2.3 Быстрая и внешняя сортировка
2.4 Линейная сортировка
3 Деревья
3.1 Двоичные деревья поиска
3.2 Красно - чёрные деревья
3.3 В-деревья отрезков
4 Хеш-таблицы
4.1 Таблицы с прямой адресацией. Хэш-таблицы, хэш-функции. Метод цепочек (chaining).
4.2 Хеш-функции. Стратегии поиска. Универсальное хеширование
4.3 Универсальное и идеальное хэширование.
5 Графы
5.1 Поиск в ширину. Поиск в глубину, поиск компонент сильной связности. Алгоритм Косарайю.
5.2 Топологическая сортировка
5.3 Минимальные остовные деревья. Алгоритмы Крускала и Прима
5.4 Heap manager, Garbage collector
5.5 Поиск кратчайшего пути в графе. Алгоритмы Дейкстры, БеллманаФорда, ФлойдаУоршалла
5.6 Алгоритмы Джонсона, А*, и способы решения задачи коммивояжера
6 Алгоритмы на строках
6.1 Алгоритм Бойера-Мура
6.2 Алгоритм КнутаМоррисаПратта
6.3 Алгоритм АхоКорасика
6.4 Код Хаффмана, алгоритм Лемпела-Зива. Run-length encoding.
6.5 Шифрование данных, базовые принципы и алгоритмы.
7 Динамическое программирование
7.1 Кэширование
7.2 Динамическое программирование: задачи динамического программирования
8 Вероятностные алгоритмы и структуры данных
8.1 Фильтр Блума
8.2 Алгоритмы MinHash, SimHash
8.3 Алгоритмы HyperLogLog, Count-Min Sketch
9 Численные методы оптимизации
9.1 Поиск экстремума функции
9.2 Нейронные сети. Алгоритм обратного распространения ошибки (backpropagation)
10 Проектная работа
10.1 Выбор темы и организация проектной работы
10.2 Консультация по проектам и домашним заданиям
10.3 Защита проектных работ
10.4 Подведение итогов курса

Выпускной проект

В рамках курса предусмотрена защита проекта. Это отдельная работа, на выполнение которой отводится последний месяц обучения. Проект включает в себя имплементацию сложного алгоритма и/или сложной структуры данных. При подготовке проектной работы студент может рассчитывать на консультации преподавателя и его экспертные советы. Примеры тем выпускного проекта:
  • написать кастомную хэш-таблицу
  • реализовать свой менеджер памяти с garbage collector
  • реализовать B-tree индекс для СУБД
  • любая тема на выбор студента, связанная с продвинутыми алгоритмами и структурами данных

После обучения вы

  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)
  • сможете писать рациональный и хорошо структурированный код
  • получите сертификат об окончании курса
  • приобретёте навыки работы с алгоритмами и структурами данных, которые необходимы при реализации сложных проектов в крупных компаниях
  • получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)
Записаться на курс
Курс Алгоритмы для разработчиков
В месяц: 12 500 ₽
В кредит: 6728 ₽ в месяц
60 000
Часто задаваемые вопросы
Можно ли начать обучение позже даты старта курса?
Да, можно. Доступ к материалам курса будет доступен в личном кабинете. Если вы будете сильно отставать от общей группы, то можно будет перевестись на следующий поток бесплатно.
Дата уточняется
5 месяцев
Онлайн
от 60 000 ₽
Зарегистрироваться