Алгоритмы и структуры данных
Знание алгоритмов и структур данных поможет пройти техническое собеседование любой сложности при устройстве на работу, а также перейти на позиции уровня middle и выше.
Старт: 2 июня
Онлайн-курс
1
Погрузитесь в теорию структур данных и научитесь решать сложные алгоритмические задачи
2
Научитесь применять алгоритмы и структуры данных при разработке программ
3
Сможете браться за сложные проекты и повышать чек за свою работу
Кому подходит курс?
Junior-разработчикам и недоджунам
Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования. Вы освоите как теоретический, так и практический материал. Сможете выйти на новый уровень, получить повышение и больше зарабатывать.
Middle- и senior-разработчикам
Подтянете свои знания по теме алгоритмов и структур данных. В курсе теории совсем немного, преобладает практика. Каждый урок включает в себя множество примеров. В конце – домашнее задание. Вы уверенно сможете брать новые проекты или претендовать на повышение.
Практика и теория
47 видеолекций и 150 практических заданий
Формат
Живые вебинары 2 раза в неделю
Консультации
1 раз в месяц с преподавателями курса
Длительность
От 3 до 6 месяцев
Этот курс подойдет вам, если
Вы отлично разбираетесь в базовой математике
Знаете один из объектно-ориентированных языков программирования (Python, Java, PHP, C++, JavaScript, C#)
Почему алгоритмы?
Программист должен понимать принцип работы алгоритмов и уметь использовать в своих программах
Польза
Показывают важные приемы алгоритмического подхода, которые применяются в других задачах
Удобство
Изучаются в университетском курсе на IT-специальностях, и часто встречаются на технических собеседованиях.
Опыт
После курса вы
Станете понимать фундаментальные структуры данных;
Разберетесь в структурах данных;
Разберетесь в составе стандартных библиотек
языков программирования;
Сможете применять изученные языки при разработке программ;
Получите практический опыт решения сложных алгоритмических задач;
Получите сертификат о прохождении курса «Алгоритмы и структуры данных» от 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, Руководитель группы разработки технологий извлечения онтологической информации из текстов на естественном языке в ABBYY, Преподаватель Факультета Инноваций и Высоких Технологий МФТИ и Технопарка Mail.ru в МГТУ им. Баумана.
Тарифы
Базовый
Продвинутый
Полный
Два варианта оплаты обучения
Вам будут доступны все занятия базового уровня. Уроки будут проходить два раза в неделю в формате живого вебинара. Вы сможете всегда задать вопрос и быть на связи с преподавателем и другими студентами.
3 месяца
42 996 ₽
Осталось 7 мест
Оплата полностью
Оплата сразу после регистрации.
Цена фиксированная при оплате онлайн единым платежом.
44 716 ₽
Осталось 7 мест
Оплата в рассрочку
Оплата сразу после регистрации.
Начните учиться от 4 359 руб./мес при покупке в рассрочку на 12 месяцев от наших партнеров.
Два варианта оплаты обучения
Если вам уже знакомы темы из базы, то вы можете присоединиться к курсу только на занятия продвинутого уровня. На этом этапе вы углубитесь в решения практических задач, узнаете все про сложные алгоритмы, сортировки, сжатие данных и многое другое. Вы также будете на связи с преподавателем и другими студентами.
3 месяца
47 996 ₽
Осталось 7 мест
Оплата полностью
Оплата сразу после регистрации.
Цена фиксированная при оплате онлайн единым платежом.
49 916 ₽
Осталось 7 мест
Оплата в рассрочку
Оплата сразу после регистрации.
Начните учиться от 4 866 руб./мес при покупке в рассрочку на 12 месяцев от наших партнеров.
Два варианта оплаты обучения
Вы сможете пройти всю программу от начала до конца. Занятия два раза в неделю в формате живого вебинара. Вам будет доступен общий чат с сокурсниками и поддержка от куратора и преподавателя 24/7, а также развернутый комментарий на каждое домашнее задание.
6 месяцев
90 996 ₽
Осталось 7 мест
Оплата полностью
Оплата сразу после регистрации.
Цена фиксированная при оплате онлайн единым платежом.
94 636 ₽
Осталось 7 мест
Оплата в рассрочку
Оплата сразу после регистрации.
Начните учиться от 9 225 руб./мес при покупке в рассрочку на 12 месяцев от наших партнеров.
Click to order
Total: 
Нажимая "Отправить", вы соглашаетесь с политикой конфиденциальности персональных данных.
Если у вас остались вопросы, и вы не знаете, подходит ли курс лично вам, заполните форму, мы свяжемся с вами и ответим на все ваши вопросы.
Поможем с выбором
Отправляя заявку, я соглашаюсь на обработку персональных данных
Отзывы учеников предыдущих курсов proglib.academy
Даниза Муссаева
По наполнению курса, который я прохожу, нравится абсолютно все, разбираются все темы, в которые мне необходимо было погрузиться. Курс скорее для продвинутых.
Отличный курс по математике! Очень понятные и доходчивые объяснения от авторов.
Михаил Шпильман
Курс proglib.academy очень понравился. Для меня ценно было то, что освещались фундаментальные темы по математике, которые я не проходил в университете.
Глеб Аксенов
C помощью курса proglib.academy я хотел освежить знания и всегда иметь возможность вернуться к качественным заданиям. Курс с этой задачей справился, так что благодарю!
Лев Аркашов
Студент курса «Математика для Data Science Pro»
По наполнению курса, который я прохожу нравится абсолютно все, разбираются все темы, в которые мне необходимо было погрузиться. Курс скорее для продвинутых. Нравится подробный разбор доказательств, логичность изложения тем. Точно чувствую больше уверенности в своих знаниях. В общем, очень хороший курс, то, что я хотела, и отдельное спасибо за возможность проходить в своём режиме, совмещая с работой и за обратную связь от преподавателей по домашнему заданию.
Даниза Муссаева
Студент курса «Введение в математику для Data Science»
Отличный курс по математике! Очень понятные и доходчивые объяснения от авторов. Прохождение помогло «восстановить» базовые знания школьной математики – как раз такой и искал. Как итог – смог решить экзаменационные примеры, которые перед прохождением курса ничего кроме страха не вызывали) Уже рекомендовал курс знакомому, у которого тоже «боязнь» математики и желание начать её осваивать).
Михаил Шпильман
Студент курса «Введение в математику для Data Science»
Курс proglib.academy очень понравился. Для меня ценно было то, что освещались фундаментальные темы по математике, которые я не проходил в университете. С точки зрения развития математической культуры, на мой взгляд, курс очень полезен. Понравились дополнительные занятия по ML, хорошо «разбавляют» занятия по чистой математике. Я сейчас взял перерыв, через месяц планирую продолжить. Здорово, что есть год, чтобы пройти курс.
Глеб Аксенов
Часто задаваемые вопросы
Сколько часов в неделю мне нужно будет уделять учебе?
2 раза в неделю в формате живых вебинаров (online). При оплате курса мы вышлем календарь занятий, а также все ссылки на подключение к урокам. Вы также будете всегда на связи с другими студентами, кураторами и преподавателем курса в общем чате.
    Я смогу общаться с преподавателями?
    У вас будет куратор в Telegram-чате, а преподаватель лично проверит каждое домашнее задание и даст полезный совет. Вы всегда сможете получить ответы на вопросы по теме урока, а также вы сможете перенять опыт, профессиональные знания и узнать лайфхаки.
      Действуют ли какие-нибудь программы рассрочки?
      Да, вы можете купить курс в рассрочку в банках-партнерах, и спланировать свой бюджет, разбив всю сумму на мелкие ежемесячные платежи.
        Подходит ли мне этот курс?
        Этот курс подойдет для любого специалиста IT-сферы, который хочет получить повышение, освежить знания или просто разобраться в теме. В частности, курс подойдет Junior-разработчикам, которые хотят продвинуться по карьерной лестнице.
          Как этот курс поможет мне при устройстве на работу?
          Очень часто работодатели проверяют кандидатов на собеседовании логическими задачами, а программистам и разработчикам дают еще и трудные задачи на алгоритмы. Вы сможете удивить будущего руководителя, показав ему навыки, которые приобрели на курсе.
          На каком языке программирования будет вестись обучение?
          Вы можете знать любой объектно-ориентированный язык программирования (Python, Java, PHP, C++, JavaScript, C# и др.).
          Что, если у меня не получится попасть на занятие?
          Ничего страшного. Через сутки в личном кабинете появится запись урока, которая останется с вами навсегда. А мы пришлем сообщение с уведомлением, чтобы вы ничего не забыли.
          Что делать, если у меня пока недостаточно навыков для этого курса?
          Можете оставить свои контакты и мы обязательно вам перезвоним, чтобы подобрать оптимальную программу, основываясь на вашем опыте и навыках.
          Бесплатный вебинар по алгоритмам и структурам данных: Очередь с приоритетом
          26 мая в 19:00 по МСК
          Обсудим интерфейс очереди и способы его реализации. Одна из классических реализаций – двоичная куча. Разберем её внутреннее устройство, асимптотики, возможные расширения. Найдем её реализацию в стандартной библиотеке. Рассмотрим примеры задач, решаемых с помощью очереди с приоритетом.