• Подготовитесь к ШАД или собеседованию
  • Прокачаете навыки написания алгоритмов
  • Повысите свою стоимость на рынке труда
  • Один из лучших преподавателей в сфере алгоритмов
  • 15 недель подготовки

Старт: 6 января 2025

Алгоритмы и структуры данных
для ШАД и собеседований

Все, кто регулярно посещает занятия и сдает домашние работы на высокие баллы - имеет высокие шансы на поступление в ШАД и прохождение собеседований
Средняя оценка курсов, нашими студентами
Команда преподавателей с мехмата МГУ и МФТИ
Отзывы наших студентов

Кто ведет курс?

Илья Осокин

Робототехник со специализацией в области компьютерного зрения, преподаватель компьютерного зрения, теории управления, алгоритмов и методологии исследования в МФТИ.

Ведущий инженер лаборатории волновых процессов и систем управления МФТИ. Автор 10 публикаций в области компьютерного зрения, робототехники и энергоэффективности роботов. 7 лет преподает в МФТИ

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

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

Какие проблемы решает наш курс

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

Многие сталкиваются с проблемой личного развития и роста в профессии. Прокачка навыков написания алгоритмов поможет вам в развитии и повысит вашу стоимость на рынке труда.

Команда, которая всегда с вами на трудном пути

Через все этапы обучения вас ведут профессионалы, которые знают как научить. Они видят и анализируют ваш прогресс, направляют и помогают прийти к цели.
  • Преподаватели помогают понять теорию

    Вы всегда можете обратиться к нашим преподавателям, если не получается решить задачу или что-то непонятно в теории
  • Проверка домашних работ

    Мы проверяем домашнюю работу и даем обратную связь.
  • Кураторы делают обучение комфортным

    Отвечают на вопросы, напоминают о начале занятий, проводят консультации, следят за прогрессом каждого студента.
  • Мини-группы

    Вы будете обучаться в составе мини-групп по 2-3 человека, совместно решать задачи, получать поддержку кураторов. Такой формат продуктивно влияет на весь процесс обучения.

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

Знание базовых алгоритмов и структур данных важно не только для написания производительного кода, но и для написания хорошего кода в принципе. Реализация классических алгоритмов и решение алгоритмических задач приучает писать код, соблюдая инварианты: такой код легче писать, читать и тестировать. Это одни из весомых причин, по которым компании требуют знания алгоритмов и проводят интервью с лайвкодингом.
В рамках этого курса мы изучим базовые алгоритмы и структуры данных, научимся решать классические теоретические задачи, которые (и им подобные) могут встретиться на интервью, а также решать задачи на программирование в тестирующей системе Codeforces. Всё это вместе позволит учащимся курса изучить алгоритмы, подготовиться к техническому интервью с лайвкодингом и в том числе подготовиться к секции по алгоритмам на вступительных экзаменах в ШАД.
Курс покрывает базовую теорию, в ходе обучения придётся решать значительное число теоретических задач и задач на программирование. Нужно быть готовыми к усердной работе.
Длительность курса 15 недель.
Модуль 1
Модуль 1
Знакомство с тестирующей системой Codeforces. Сложность алгоритмов. Простейшие алгоритмы с инвариантами.
Модуль 2
Модуль 2
Продолжение работы с инвариантами, «два указателя». Рекурсия и итерация: как исполняются рекурсивные алгоритмы.
Модуль 3
Модуль 3
Алгоритмы «разделяй и властвуй».
Модуль 4
Модуль 4
Сортировки и опирающиеся на них задачи.
Модуль 5
Модуль 5
Структуры данных на (динамических) массивах.
Модуль 6
Модуль 6
Структуры данных на указателях.
Модуль 7
Модуль 7
Аммортизационный анализ.
Модуль 8
Модуль 8
Структуры данных для запросов на отрезках. Модификация Декартова дерева. Дерево отрезков. (*) Дерево Фенвика.
Модуль 9
Модуль 9
Графы I. Поиск в ширину, алгоритмы Беллмана-Форда и Дейкстры.
Модуль 10
Модуль 10
Графы II. Остовные деревья. Алгоритмы Крускала и Прима.
Модуль 11
Модуль 11
Графы III. Поиск в глубину и его приложения (поиск компонент сильной связности, топологическая сортировка).
Модуль 12
Модуль 12
От кратчайших путей к динамическому программированию.
Модуль 13
Модуль 13
Динамическое программирование.
Модуль 14
Модуль 14
(*) Нижние оценки. Нижние оценки на поиск максимума и сортировки сравнениями.

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

Много практики
На курсе мы будем в равной степени уделять внимание теории, практике (написанию кода), и решению теоретических задач (многие из которых типовые для интервью). Такой подход позволит лучше понять алгоритмы, а не просто обучиться на типовых примерах.
Записи занятий
Вам будут доступны записи занятий!
Вы сможете воспользоваться материалами уроков для повторения или углубления знаний
Удобно по времени
Занятия будут проходить по понедельникам 18:00 - 21:00 мск
В середине занятия предусмотрен 15 минутный перерыв.



Как мы преподаём
Тариф
Курс стартовал 6 января 2025, но вы можете присоединиться сейчас
Стоимость 3899₽ в неделю

При записи на курс сейчас, у вас будет 4 платежа по 14798₽
  • ✔ 15 недель подготовки
  • ✔ Один из лучших преподавателей в сфере алгоритмов
  • ✔ Все занятия и консультации проходят онлайн
  • ✔ Еженедельная оплата, можно отказаться в любой момент
  • ✔ Проверка домашних работ и обратная связь по ним
  • ✔ Команда кураторов поддержит вас в обучении
Записаться

Что ещё важно?

  • Академический отпуск
    Если жизненные обстоятельства осложнились или темп учёбы нужно снизить, вы можете уйти в академический отпуск.
  • В любой момент можете закончить обучение
    Оплата курса еженедельная. В любой момент можете отказаться и не платить дальше. Для этого не нужно ничего доказывать и называть причину.
FAQ
  • Вопрос
    Где будут проходить занятия?
    Ответ
    Занятия будут проходить онлайн, на платформе Zoom.
    График занятий расположен выше.
  • Вопрос
    Как будут проходить занятия?
    Ответ
    Курс будет устроен не по образцу академического обучения, а как обучение на примерах: теоретический материал будет подаваться в сжатом виде, часто опуская доказательство, а основные идеи будем извлекать из решения задач. Курс послужит хорошим полигоном для подготовки к экзамену (или интервью с лайвкодингом), даже если вы уже неплохо знакомы с алгоритмами.
  • Вопрос
    Будут ли записи лекций и семинаров?
    Ответ
    Записи лекций и семинаров будут доступны в вашем личном аккаунте на нашей платформе.
  • Вопрос
    Смогу ли я освоить курс, если раньше не программировал?
    Ответ
    Если вы ранее не программировали (не были знакомы ни с одним языком программирования), то курс может оказаться непомерно сложным: на обучение базовому программированию требуется отдельное время и усилие, поэтому порогом входа на курс является владение каким-то языком программирования; важно не бояться отладки и быть готовыми тратить на неё время.
  • Вопрос
    Какой язык программирования будет использоваться на курсе?
    Ответ
    Вы сможете сдавать задачи на программирование почти на любом языке (см. список языков, [поддерживаемых Codeforces](https://codeforces.com/blog/entry/79)). На занятиях код будет писаться на Python (поскольку он близок к псевдокоду) и на C++, где необходимо показать особенности указателей и возможности работы со структурами данных стандартной библиотеки (STL). Мы рекомендуем программировать на C++ тем, кто собирается дальше поступать в ШАД и это действительно не сложно, потому что для алгоритмов хватит ограниченной части C++
  • Вопрос
    Будет ли проверка домашних работ?
    Ответ
    Да, проверка работ будет.