Алгоритмы и структуры данных

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

Программисты middle+ смогут потренировать забытые навыки и сгенерировать идеальные решения сложных задач в сообществе других разработчиков.
Онлайн-курс
1
Изучите сленг, на котором говорят все разработчики независимо от языка программирования: язык алгоритмов и структур данных
2
Научитесь применять алгоритмы и структуры данных при разработке программ
3
Подготовитесь к техническому собеседованию и продвинутой разработке
Кому подходит курс?
Junior-разработчикам и тем, кто хочет стать разработчиком / устроиться на должность разработчика
Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования. Вы освоите как теоретический, так и практический материал.
Middle-разработчикам
Освежите свои знания по теме алгоритмов и структур данных. В курсе сделан акцент на практике - написание кода, разбор подходов в решении алгоритмических задач. Сможете выйти на новый уровень и подтянуть навыки для поступления на работы в такие крупные технологические компании, как Яндекс, Сбер, Google, Microsoft и другие.
Практика и теория
47 видеолекций и 150 практических заданий
Формат
Живые вебинары 2 раза в неделю
Поддержка
От куратора и преподавателя в течение всего обучения
Длительность
От 3 до 6 месяцев
Испытай свои силы на собеседовании с преподавателем и его коллегами из Яндекса на позицию разработчика в режиме live-кодинга
Этот курс подойдет вам, если
Вы хотите развиваться как профессиональный разработчик и готовы повысить свой уровень
Вы знаете на базовом уровне один из объектно-ориентированных языков программирования (Python, Java, PHP, C++, JavaScript, C#
Зачем учить алгоритмы?
Программист должен знать ключевые алгоритмы и уметь применять их при написании кода.
Польза
Знание алгоритмов расширяет инструментарий разработчика в решении практических задач.
Удобство
Изучаются в университетском курсе на IT-специальностях, и часто встречаются на технических собеседованиях.
Опыт
После курса вы
Станете понимать алгоритмы и структуры данных
Научитесь писать более короткий и эффективный код
Разберетесь в составе стандартных библиотек
языков программирования
Сможете применить полученные навыки при разработке программ
Получите практический опыт решения сложных алгоритмических задач
Получите сертификат о прохождении курса «Алгоритмы и структуры данных» от proglib.academy
Сможете в любой момент вернуться к лекциям и освежить знания. Доступ неограничен
Сможете легко пройти техническое собеседование
Ваши знания подтвердит официальный сертификат
При успешном прохождении курса вы получите квалифицированный сертификат. Работодатель сможет проверить его действительность на сайте proglib.academy.

Сертификат вы получите после прохождения курса.
На вебинаре обсуждается интерфейс очереди и способы его реализации. Одна из классических реализаций – двоичная куча. Разбираем её внутреннее устройство, асимптотики, возможные расширения. Находим её реализацию в стандартной библиотеке. Рассматриваем примеры задач, решаемых с помощью очереди с приоритетом.
Вебинар с разработчиком Яндекса Степаном Мацкевичем «Очередь с приоритетом»
Бесплатно
Программа обучения
Базовый
Продвинутый
1
Введение. Производительность алгоритмов
Знакомство с программой курса и алгоритмами. Способы измерения времени выполнения алгоритмов. О-нотация.
2
Работа с числами
Числовые алгоритмы: алгоритм Эвклида, возведения в целую степень, схема Горнера, проверка простоты, решето Эратосфена.
3
Массивы
Массивы. Указатели. Доступ к элементам. Линейный поиск. Двумерные массивы. Динамический массив.
4
Алгоритмы на массивах
Бинарный поиск. Вставка и удаление элемента. Удаление нескольких элементов.
ПОКАЗАТЬ БОЛЬШЕ
5
Списки. Стек, очередь, дек
Понятие об АТД, интерфейсе. Односвязные, двусвязные списки. Основные операции. Реализации на массиве. Реализация на списке. Применение.
Очередь с приоритетом
Понятие о пирамиде (куче), построение пирамиды. Извлечение максимума, добавление элемента. std::priority_queue.
6
7
Сортировки
Квадратичные сортировки. Сортировка слиянием. Быстрая сортировка. Пирамидальная сортировка. std::sort. Сортировка подсчетом.
8
Порядковые статистики
Поиск медианы и порядковых статистик методом QuickSelect.
9
Деревья
Виды деревьев. Обходы в глубину и в ширину. Двоичные деревья поиска. Необходимость балансировки. АВЛ-деревья и т.д.
Хеш-таблицы
Хеш-таблицы и ассоциативный доступ. Методы разрешения коллизий. std::unordered_set, std::unordered_map.
10
11
Жадные алгоритмы. Динамическое программирование
Примеры жадных алгоритмов, их корректность. Задача о рюкзаке. Одномерная и двумерная динамика.
12
Графы
Виды графов. Представление графов. Связность. Обходы в глубину и в ширину. Сильная связность, конденсация. Поиск кратчайших путей, алгоритм Дейкстры.
Строки
Символы, кодировки, юникод. Поиск в строках – алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта. Бор.
13
14
Криптография
CRC-коды, MD5, SHA.
15
Длинные числа. Итоги
16
Сортировки
Шелла, быстрая, поразрядная.
Строки
Сложные алгоритмы поиска строк. Редакционное расстояние.
17
18
Деревья
Балансированные деревья. В-деревья.
19
Графы
Остовные деревья, пути, раскраски и т.д. Интернет и графы.
20
Сжатие данных
Методы Хаффмена и Лемпель-Зива.
Динамическое программирование
Практические задачи.
21
22
NP-трудные задачи
Задача коммивояжера.
23
Эвристические алгоритмы ИИ
Степан Мацкевич
Образование: Закончил механико-математический факультет МГУ им. М.В. Ломоносова в 2006 году, защитил кандидатскую диссертацию в 2010 году.
Преподаватели
Место работы: разработчик Яндекс Go, руководитель сектора разработки сценариев организации поездок, преподаватель Факультета Инноваций и Высоких Технологий МФТИ
Образование: Старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ.
Место работы: Инженер-программист, ведущий эксперт НИУ ВШЭ, цифровой ассистент и цифровой консультант НИУ ВШЭ.
Мария Горденко
Стоимость полного курса
Вы сможете пройти всю программу от начала до конца. Занятия два раза в неделю в формате живого вебинара. Вам будет доступен общий чат с сокурсниками и поддержка от куратора и преподавателя 24/7, а также развернутый комментарий на каждое домашнее задание.
6 месяцев
35 980 ₽
Стоимость курса
Оплата сразу после регистрации.
Цена фиксированная при оплате онлайн единым платежом.
90 996 ₽
3 507 ₽/мес
При оплате обучения в рассрочку на 12 месяцев.
Click to order
Total: 
Нажимая "Отправить", вы соглашаетесь с политикой конфиденциальности персональных данных.
Если вы решите, что обучение вам не подходит, мы оформим возврат денежных средств в течение 7 дней после старта обучения.
Вам понравится учиться у нас или мы вернём деньги
Если у вас остались вопросы, и вы не знаете, подходит ли курс лично вам, заполните форму, мы свяжемся с вами и ответим на все ваши вопросы.
Поможем с выбором
Отправляя заявку, я соглашаюсь на обработку персональных данных
Отзывы учеников предыдущих курсов proglib.academy
Даниза Муссаева
По наполнению курса, который я прохожу, нравится абсолютно все, разбираются все темы, в которые мне необходимо было погрузиться. Курс скорее для продвинутых.
Отличный курс по математике! Очень понятные и доходчивые объяснения от авторов.
Михаил Шпильман
Курс proglib.academy очень понравился. Для меня ценно было то, что освещались фундаментальные темы по математике, которые я не проходил в университете.
Глеб Аксенов
C помощью курса proglib.academy я хотел освежить знания и всегда иметь возможность вернуться к качественным заданиям. Курс с этой задачей справился, так что благодарю!
Лев Аркашов
Студент курса «Математика для Data Science Pro»
По наполнению курса, который я прохожу нравится абсолютно все, разбираются все темы, в которые мне необходимо было погрузиться. Курс скорее для продвинутых. Нравится подробный разбор доказательств, логичность изложения тем. Точно чувствую больше уверенности в своих знаниях. В общем, очень хороший курс, то, что я хотела, и отдельное спасибо за возможность проходить в своём режиме, совмещая с работой и за обратную связь от преподавателей по домашнему заданию.
Даниза Муссаева
Студент курса «Введение в математику для Data Science»
Отличный курс по математике! Очень понятные и доходчивые объяснения от авторов. Прохождение помогло «восстановить» базовые знания школьной математики – как раз такой и искал. Как итог – смог решить экзаменационные примеры, которые перед прохождением курса ничего кроме страха не вызывали) Уже рекомендовал курс знакомому, у которого тоже «боязнь» математики и желание начать её осваивать).
Михаил Шпильман
Студент курса «Введение в математику для Data Science»
Курс proglib.academy очень понравился. Для меня ценно было то, что освещались фундаментальные темы по математике, которые я не проходил в университете. С точки зрения развития математической культуры, на мой взгляд, курс очень полезен. Понравились дополнительные занятия по ML, хорошо «разбавляют» занятия по чистой математике. Я сейчас взял перерыв, через месяц планирую продолжить. Здорово, что есть год, чтобы пройти курс.
Глеб Аксенов
Часто задаваемые вопросы