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

Научись ориентироваться в алгоритмах и структурах данных, использовать С и С++ для реализации алгоритмов
21 занятие
Хочу учиться
Что дает курс

  • На практике разберешься в основных понятиях и сможешь объяснить, что это такое.
  • Сможешь анализировать основные свойства алгоритмов.
  • Научишься выбирать структуры данных для решения задач и обосновывать свой выбор.
  • Лучшие выпускники смогут сделать свой первый карьерный шаг в ИТ и получить возможность присоединиться к одному из проектов экосистемы VK.

Какие знания нужны

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

Как проходят занятия

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

Как поступить?

Регистрация
До 27 сентября 2021 23:59 мск зарегистрируйся на сайте и подай заявку на курс.
Тестирование
28 сентября 2021 18:00 мск тебе на почту придет ссылка на тест. Пройди его до 1 октября 2021 18:00 мск.
Зачисление
До 7 октября 2021 — письмо о зачислении придет тебе на почту.
Начало обучения
Обучение начинается на неделе с 8 октября 2021 согласно расписанию.

Программа курса

Основы алгоритмики
  • Понятие алгоритма;
  • Исполнитель алгоритма;
  • Сложность операций;
  • Сложность алгоритма;
  • Как доказывают корректность;
  • Инварианты.
Простейшие алгоритмы
  • Рекурсия;
  • Принцип «разделяй и властвуй»;
  • Сложность алгоритмов «разделяй и властвуй»;
  • Алгоритмы быстрого умножения;
  • Алгоритм быстрого возведения в степень;
  • Жадные алгоритмы и их корректность;
  • Алгоритмы на строках.
Сортировка и поиск
  • Сортировки, их виды и применимость;
  • Задача поиска;
  • Парадигма CRUD: create, read, update, delete;
  • Поисковые структуры данных;
  • Списки, деревья поиска, балансированные деревья;
  • Хеш-функции, их использование;
  • Хеш-таблицы.
Более практические задачи
  • Задача динамического программирования;
  • Прямой и обратный ходы;
  • Восстановление решения;
  • Сложные варианты;
  • Алгоритмы на графах;
  • Обход графов, нахождение компонент связности;
  • Построение остовных деревьев;
  • Нахождение кратчайших путей;
  • Нахождение потоков.

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

Сергей Бабичев
Сергей
Бабичев

Кандидат физико-математических наук. Много лет проработал в программной индустрии. Ведет семинары и читает лекции на кафедрах информатики и программирования на факультетах ФУПМ и ФИВТ в МФТИ.

Вопросы по обучению

Отборочный тест
Тест на логику для программистов. Материалы для подготовки будут доступны в письме после подачи заявки.
Кто может учиться?
Действующие студенты бакалавриата, специалитета и магистратуры любых факультетов вузов Москвы.
Какая нагрузка в неделю?
8 академических часов в неделю без учета времени на выполнение домашнего задания.
Моего вопроса тут нет :(

Другие вопросы можно посмотреть здесь.