Перейти к основному содержанию
Программирование и CS
Средний уровень
Учимся через действие

Алгоритмическое мышление

Учимся проектировать и проверять алгоритмы на классической задаче о расписании: интервалы и конфликты, жадные критерии, контрпримеры, инварианты, корректность и оптимальная подструктура. Курс развивает алгоритмическое мышление без привязки к конкретному языку.

22
уроков
7–10 мин
один шаг
15+
заданий
2 минуты до первого заданиябез регистрации для демопрогресс можно сохранить
попробуйте сами
Урок 3 из 22
Прогресс 42%
Алгоритмическое мышление
+40 XP

Задача о расписании

Выполните первый шаг и сразу проверьте себя.

01 наблюдаем условие задачи
02 проверяем свой ответ
03 объясняем следующий шаг
Шаг 1
Проверить
Шаг 3
Понятно. Ответ сопровождается объяснением, чтобы следующий шаг был осознанным.

22 коротких уроков

По 7-10 минут: можно пройти за один подход или возвращаться по частям.

Интерактив вместо конспекта

Ученик решает задачу, проверяет ответ и видит объяснение следующего шага.

Спокойный старт

Демо без оплаты и карты, а аккаунт нужен только чтобы сохранить прогресс.

Для кого

Жадные стратегии и динамика без слепого запоминания

Курс для тех, кто уже решал базовые алгоритмические задачи и хочет понять, когда локальный выбор работает, а когда нужна память о подзадачах.

Применяет жадный подход там, где он ломается.
Не видит повторяющиеся подзадачи.
Путает рекурсию, перебор и динамическое программирование.
Не умеет доказать, почему стратегия корректна.
01

Задача о расписании

Разберитесь, что такое конфликт между встречами, и научитесь строить расписание без конфликтов с наибольшим числом встреч.

02

Экземпляры задачи

Научитесь различать задачу и экземпляр задачи и находить оптимальное расписание для разных наборов встреч.

03

Описываем алгоритм

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

Контрпример объясняет ограничение метода

Если жадный выбор не работает, урок показывает конкретный случай, где лучший локальный шаг мешает получить лучший итог.

Действие

Откройте шаг «Задача о расписании» и выполните действие в модели.

Попытка
Ответ требует ещё одного шага

Ошибка не заканчивает задание: она запускает объяснение на схеме.

Понимание
Идея курса «Алгоритмическое мышление» понятна

Ученик видит идею на модели и переносит её в самостоятельное решение.

Маршрут курса

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

Один урок — одно понятие

Нет перегруза: сначала основная идея, затем проверка понимания и самостоятельное применение.

Мгновенная обратная связь

Ученик сразу видит, где ошибся, и получает объяснение через схему.

Последовательное усложнение

Курс строится от первого знакомства с идеей к более самостоятельным задачам.

Прогресс сохраняется

После регистрации можно продолжить курс и вернуться к сложным темам.

Программирование и CS
Средний

Алгоритмы на Python

Анализ алгоритмов на Python через чтение и трассировку программ: токенизация и перебор, корректность (предусловия, инварианты цикла, контрпримеры), эффективность (лучший/худший случай, временная сложность, O-нотация) и скрытые издержки времени выполнения.

Перейти к курсу
Программирование и CS
Средний

Основы информатики

Алгоритмы и фундаментальные идеи информатики: хранение информации и алгоритмы на массивах, поиск и сортировка, скорость алгоритмов и O-нотация, устойчивые паросочетания (алгоритм Гейла–Шепли), корректность и завершимость, деревья решений, параллелизм и конвейеризация, абстракция и интерфейсы, а также графы и мосты Кёнигсберга.

Перейти к курсу
Программирование и CS
Средний

Рекурсия на Python

Рекурсия в Python через чтение и трассировку программ: базовые случаи, стек вызовов, бесконечная рекурсия, множественные базовые случаи и рекурсивные вызовы, рекуррентные соотношения и выбор рекурсивного пути.

Перейти к курсу
Программирование и CS
Начальный

Мышление на Python

Основы Python через чтение и анализ программ: переменные, условная и булева логика, циклы for и while, списки, словари, строки, вложенные и цепочечные условия, работа с данными, временная сложность и алгоритмы поиска.

Перейти к курсу

Это сложный курс?

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

Нужен ли Python?

Полезен, но главная цель курса — понять идею алгоритма, а не синтаксис.

Чем динамика отличается от перебора?

Динамика переиспользует ответы на повторяющиеся подзадачи, чтобы не считать одно и то же снова.

Подойдёт для олимпиад?

Да, как вводный слой в темы, которые часто встречаются в олимпиадном программировании.

Начните первый урок бесплатно

Решите первые задания, а затем сохраните прогресс в аккаунте.