Алгоритмическое мышление
Учимся проектировать и проверять алгоритмы на классической задаче о расписании: интервалы и конфликты, жадные критерии, контрпримеры, инварианты, корректность и оптимальная подструктура. Курс развивает алгоритмическое мышление без привязки к конкретному языку.
Задача о расписании
Выполните первый шаг и сразу проверьте себя.
22 коротких уроков
По 7-10 минут: можно пройти за один подход или возвращаться по частям.
Интерактив вместо конспекта
Ученик решает задачу, проверяет ответ и видит объяснение следующего шага.
Спокойный старт
Демо без оплаты и карты, а аккаунт нужен только чтобы сохранить прогресс.
Жадные стратегии и динамика без слепого запоминания
Курс для тех, кто уже решал базовые алгоритмические задачи и хочет понять, когда локальный выбор работает, а когда нужна память о подзадачах.
Задача о расписании
Разберитесь, что такое конфликт между встречами, и научитесь строить расписание без конфликтов с наибольшим числом встреч.
Экземпляры задачи
Научитесь различать задачу и экземпляр задачи и находить оптимальное расписание для разных наборов встреч.
Описываем алгоритм
Научитесь описывать жадный алгоритм для построения расписания встреч без конфликтов.
Если жадный выбор не работает, урок показывает конкретный случай, где лучший локальный шаг мешает получить лучший итог.
Откройте шаг «Задача о расписании» и выполните действие в модели.
Ошибка не заканчивает задание: она запускает объяснение на схеме.
Ученик видит идею на модели и переносит её в самостоятельное решение.
Маршрут курса
От жадных решений к динамическому программированию и анализу корректности.
Задача о расписании
Разберитесь, что такое конфликт между встречами, и научитесь строить расписание без конфликтов с наибольшим числом встреч.
Экземпляры задачи
Научитесь различать задачу и экземпляр задачи и находить оптимальное расписание для разных наборов встреч.
Описываем алгоритм
Научитесь описывать жадный алгоритм для построения расписания встреч без конфликтов.
Несколько решений
Узнайте, что у одного экземпляра задачи о расписании может быть несколько решений, и научитесь предсказывать, какое из них найдёт жадный алгоритм.
Поиск инвариантов
Узнайте, что такое инвариант и как он помогает доказать корректность жадного алгоритма.
Поиск контрпримеров
Научитесь находить контрпримеры, опровергающие жадные алгоритмы задачи о расписании.
Нет перегруза: сначала основная идея, затем проверка понимания и самостоятельное применение.
Ученик сразу видит, где ошибся, и получает объяснение через схему.
Курс строится от первого знакомства с идеей к более самостоятельным задачам.
После регистрации можно продолжить курс и вернуться к сложным темам.
Алгоритмы на Python
Анализ алгоритмов на Python через чтение и трассировку программ: токенизация и перебор, корректность (предусловия, инварианты цикла, контрпримеры), эффективность (лучший/худший случай, временная сложность, O-нотация) и скрытые издержки времени выполнения.
Основы информатики
Алгоритмы и фундаментальные идеи информатики: хранение информации и алгоритмы на массивах, поиск и сортировка, скорость алгоритмов и O-нотация, устойчивые паросочетания (алгоритм Гейла–Шепли), корректность и завершимость, деревья решений, параллелизм и конвейеризация, абстракция и интерфейсы, а также графы и мосты Кёнигсберга.
Рекурсия на Python
Рекурсия в Python через чтение и трассировку программ: базовые случаи, стек вызовов, бесконечная рекурсия, множественные базовые случаи и рекурсивные вызовы, рекуррентные соотношения и выбор рекурсивного пути.
Мышление на Python
Основы Python через чтение и анализ программ: переменные, условная и булева логика, циклы for и while, списки, словари, строки, вложенные и цепочечные условия, работа с данными, временная сложность и алгоритмы поиска.
Это сложный курс?
Да, он рассчитан на тех, кто уже знаком с базовыми алгоритмами и готов рассуждать о стратегии.
Нужен ли Python?
Полезен, но главная цель курса — понять идею алгоритма, а не синтаксис.
Чем динамика отличается от перебора?
Динамика переиспользует ответы на повторяющиеся подзадачи, чтобы не считать одно и то же снова.
Подойдёт для олимпиад?
Да, как вводный слой в темы, которые часто встречаются в олимпиадном программировании.
Начните первый урок бесплатно
Решите первые задания, а затем сохраните прогресс в аккаунте.