Программа курса
Курс рассчитан на 4 месяца при нагрузке примерно 10 часов в неделю, но вы можете проходить его быстрее — новые модули будут открываться сразу после выполненной практики
10 тем・7 часов
Бесплатно
Введение и пробные задачи
1 модуль — бесплатно, на котором вы изучите понятие алгоритма, освоите методы скользящего среднего и двух указателей
  • Знакомство с курсом
  • Команда курса
  • Временные ряды
  • Метод скользящего среднего
Формат курса и программа
Получите детальный обзор того, как вы будете проходить курс, какие вас ждут модули и задачи
Как устроен Яндекс Контест
Изучите, как использовать систему проверки кода Яндекс Контест, чтобы тестировать и оценивать ваши решения задач
Решение алгоритмических задач
Познакомитесь с методом скользящего среднего, понятием полуинтервала и разберёте алгоритм решения задачи
Поймёте, подойдёт ли вам курс, и познакомитесь с нашей интерактивной платформой
2
23 темы・27 часов
Начало курса и введение в алгоритмы
  • Сложность алгоритма
  • O-нотация
  • Введение в алгоритмические собеседования
Начало курса
Познакомитесь с процессами и правилами курса, сдачей финальных задач и мессенджером Пачка
Линейный поиск
Изучите задачу поиска элемента в массиве, научитесь оценивать эффективность, узнаете, что такое вычислительная сложность и линейная зависимость
Бинарный поиск
Познакомитесь с задачей поиска элемента в массиве, сравните линейный и бинарный поиск
Сложность алгоритма, оценка времени исполнения
Изучите О-нотацию и разберёте примеры
Пространственная сложность алгоритма
Узнаете, что это такое, как проводить оценку, разберётесь во взаимосвязи пространственной и временной сложности
Введение в алгоритмические собеседования
Поймёте, как они проходят, какие есть типы заданий, этапы подготовки и критерии успешности
Решите 12 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
3
14 тем・20 часов
Основные структуры данных
  • Массив
  • Связный список
  • Стек
  • Очередь
  • Операции вставки, поиска и удаления
  • Представление данных в памяти
Статический и динамический массив
Поймёте, в чём сложность операций поиска, вставки и удаления при работе с массивами
Связные списки
Изучите операции поиска, вставки и удаления при работе со связным списком, поймёте, что такое двусвязный список
Стек, очередь, дек
Изучите интерфейс и реализацию структур данных
Решите 12 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
4
16 тем・20 часов
Рекурсия и сортировки
  • Рекурсия
  • Разделяй и властвуй
  • Сортировка вставками
  • Сортировка по ключу
  • Лексикографическая сортировка
  • Сортировка слиянием
  • Быстрая сортировка
  • Сортировка подсчётом
Рекурсия
Познакомитесь с понятием рекурсии и принципом «разделяй и властвуй», изучите бинарный поиск
Сортировки
Изучите разные виды сортировки: квадратичные сортировки, сортировку слиянием, быструю сортировку, линейную сортировку подсчётом
Решите 16 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
5
12 тем・20 часов
Хеш-функции
  • Абстракция отображения
  • Хеш-функции
  • Хеш-таблица
  • Коллизии
  • Метод цепочек
  • Метод открытой адресации
Хеш-таблица и хеш-функция
Изучите понятие и свойства хеш-функции, узнаете, что из себя представляет структура данных в хеш-таблице
Коллизии
Познакомитесь с определением и способами разрешения коллизий
Решите 12 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
6
14 тем・20 часов
Деревья
  • Структура данных «Дерево»
  • Сбалансированные деревья поиска
  • Структура данных «Куча»
  • Пирамидальная сортировка
Структура данных «Дерево»
Познакомитесь с двоичными и сбалансированными деревьями поиска, узнаете, что такое балансировка АВЛ-дерева
Структура данных «Куча»
Изучите алгоритм и узнаете, в чём его сложность, а также познакомитесь с пирамидальной сортировкой
Решите 14 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
7
13 тем・20 часов
Графы
  • Граф
  • Обход в глубину
  • Обход в ширину
  • Компоненты связности
  • Алгоритмы поиска кратчайшего пути
  • Минимальное остовное дерево
Графы
Познакомитесь с определением графа и способами представления в памяти
Операции на графах
Изучите обход графа в глубину и в ширину, компоненты связности, алгоритмы поиска кратчайшего пути, минимальное остовное дерево
Решите 12 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
8
14 тем・27 часов
Жадные алгоритмы и динамическое программирование
  • Динамическое программирование
  • Жадные алгоритмы
Динамическое программирование
Познакомитесь с определением, узнаете, что такое одномерные и двумерные задачи, изучите динамическое программирование по подотрезкам и подмножествам
Жадные алгоритмы
Изучите понятие жадного алгоритма и область его применения, рассмотрите примеры и узнаете, как доказывать корректность алгоритма
Решите 15 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
9
11 тем・27 часов
Алгоритмы на строках
  • Префикс-функция
  • Подстрока
  • Префиксы и суффиксы
  • Поиск шаблона в строке
  • Структура данных «Бор»
Префикс-функция
Изучите подстроки, префиксы и суффиксы
Поиск шаблона в строке
Познакомитесь с наивным алгоритмом и структурой данных «Бор»
Решите 12 задач, чтобы потренироваться, и выполните 2 финальные задачи, которые отправите на код-ревью
С наставником・Каждые 2 недели
Вебинары для разбора сложных тем, сессии Q&A
С наставником・1,5 часа
Пробное алгоритмическое собеседование
Пройдёте один на один с наставником алгоритмическое интервью, максимально приближенное к настоящему, чтобы попрактиковаться решать задачи. По итогам наставник даст обратную связь.
Как проходит курс
YandexGPT помогает проходить курс
Когда в теории что-то непонятно, нейросеть объяснит это другими словами. А в конце каждого модуля подготовит краткий пересказ о самом главном.
Этот курс может оплатить
ваш работодатель
Полностью или разделив оплату с вами,
например 50/50 или 75/25
  • Расскажем всё про курс
  • Поделимся презентацией
  • Ответим на ваши вопросы
  • Подготовим договор и счёт
Отвечаем на вопросы
Подойдёт ли мне этот курс?
Для тех, кто сомневается, мы спроектировали бесплатную часть, которая поможет получить ответ на этот вопрос. Если вы убедитесь, что выбранный курс вам не подходит, — это тоже положительный результат.
Можно ли выучить алгоритмы за 4 месяца?
Думаем, что да. Если вы будете уделять курсу не менее 10 часов в неделю, практиковаться и общаться с вашим наставником. Тогда за 4 месяца вы освоите навыки для дальнейшего профессионального развития.
Каким требованиям нужно соответствовать?
У вас должна быть возможность заниматься не менее 10 часов в неделю. А ещё нужно уметь решать тестовые задания на одном из популярных языков программирования: C++, Python, Java, Go, JavaScript, C#, Kotlin, Swift.
Получу ли я какой-то документ после курса?
Да, вы получите сертификат о завершении курса.
Как и когда я буду проходить курс?
Курс включает 3 составляющие: теория с закреплением в Яндекс Контесте, самостоятельные работы и проекты, онлайн-встречи с наставником. Вы сможете заниматься в своём темпе, но выполнение практики привязано к двухнедельным спринтам.
Кто будет помогать мне проходить курс?
Все наставники — практикующие специалисты: сотрудники Яндекса и других крупных компаний. Программу составляют опытные методисты, а ещё действующие специалисты Яндекса, Школы анализа данных и других лидеров технологической индустрии.
Что делать, если я не справлюсь с нагрузкой?
В программе предусмотрен перерыв, во время которого можно отдохнуть или повторить сложные темы.

Если случилось непредвиденное или понадобилось больше времени на закрепление материала, напишите своему куратору. Он поможет перенести дедлайн сдачи проекта или перевестись в более позднюю когорту. На общую стоимость курса это не повлияет.
Вы поможете сменить или найти работу?
На этом курсе не предусмотрена помощь с трудоустройством, поскольку он для действующих специалистов, у которых уже есть навыки поиска работы.

Но если у вас появится вопрос о карьерном развитии, обратитесь в нашу службу поддержки — постараемся ответить.
Как можно оплатить?
Банковской картой: внести всю сумму сразу или платить ежемесячно.

Ежемесячные платежи работают так: вы вносите первую оплату, и в этот момент привязывается карта. С этой карты автоматически будут списываться следующие платежи каждые 30 календарных дней. Например, оплатили 25 марта — следующий платёж пройдёт 24 апреля. Курс будет стоить меньше, если оплатить его сразу целиком.

Через компанию: юридические лица также могут оплатить курс в Практикуме. Чтобы заказать счёт для оплаты, оставьте заявку на странице для корпоративных клиентов.
Подходит ли курс для подготовки к ШАД?
Наш курс не является специальным курсом для подготовки к ШАД, но подходит для подготовки к алгоритмической части вступительных испытаний.

Для успеха в ШАД также нужна хорошая подготовка по математике. Рекомендуем дополнительно решать примеры заданий с сайта ШАД, чтобы усилить подготовку.
На каком языке проходит курс?
Всё будет на русском: теория, практические задания и вебинары, а ещё чаты с куратором, наставником и другими участниками курса.
В какой валюте можно оплатить курс?
Оплатить курс можно в любой валюте, кроме российских рублей.

Чтобы вам было проще сориентироваться, мы указываем примерную стоимость в долларах США, но списание будет в казахстанских тенге, а конвертация — по курсу вашего банка.

Давайте поможем

Напишите, как вас зовут и по какому номеру можно связываться — в течение 30 минут позвоним и расскажем всё про курсы