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

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

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

Уроки этого курса доступны после регистрации. Демо без аккаунта показывает механику платформы на примере задачи с роботом по алгоритмике.

16
уроков
7–10 мин
один шаг
Средний уровень
уровень
бесплатный доступ в бета-версиибез регистрации для демопрогресс можно сохранить
Пример интерфейса
Пример: урок 1 из 16
Образец
Алгоритмы на Python
Пример награды

Токенизация

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

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

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

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

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

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

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

Демо платформы доступно без аккаунта. Для уроков выбранного курса и сохранения прогресса нужна регистрация.

Для кого

Алгоритмы на Python после базового кода

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

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

Токенизация

Разбивайте текст на последовательности токенов из словаря и исследуйте неоднозначность токенизации.

02

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

Различайте задачу и её экземпляр; находите решения экземпляров задачи токенизации.

03

Решаем упрощённую задачу

Спроектируйте алгоритм двусоставной токенизации: фиксируйте число токенов, перебирайте разрезы, обрабатывайте крайние случаи.

Трассировка показывает ошибку

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

Действие

Откройте шаг «Токенизация» и выполните действие в модели.

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

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

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

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

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

От базового Python к алгоритмическим задачам и оценке решений.

1
for

Токенизация

Разбивайте текст на последовательности токенов из словаря и исследуйте неоднозначность токенизации.

2
if

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

Различайте задачу и её экземпляр; находите решения экземпляров задачи токенизации.

3
O(n)

Решаем упрощённую задачу

Спроектируйте алгоритм двусоставной токенизации: фиксируйте число токенов, перебирайте разрезы, обрабатывайте крайние случаи.

4
list

Трассировка алгоритмов

Прогоняйте алгоритм в уме, чтобы понять, как он работает.

5
case

Перебор

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

6
✓

Предусловия и постусловия

Сформулируйте предусловия и постусловия для алгоритма токенизации.

7
7

Рассуждения о корректности

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

8
8

Инварианты цикла

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

9
9

Контрпримеры

Найдите один экземпляр входных данных, доказывающий, что алгоритм не корректен.

10
10

Лучший и худший случай

Научитесь находить входные данные, при которых алгоритм работает быстрее или медленнее всего, и подсчитывать число операций.

11
11

Временная сложность

Исследуйте, как время выполнения алгоритма меняется при росте размера входа: линейный рост, постоянное время и квадратичный рост.

12
12

Оценка с помощью O-нотации

Научитесь оценивать временную сложность алгоритмов с помощью O-нотации: O(1)O(1), O(n)O(n), O(n2)O(n^2).

13
13

Принцип умножения времени выполнения

Оцените время выполнения циклов, перемножая число итераций на стоимость одной итерации.

14
14

Скрытая стоимость срезов

Узнайте, почему срезы строк в Python имеют скрытую стоимость O(n)O(n) и превращают линейный цикл в квадратичный алгоритм.

15
15

Цена списков

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

16
16

Повышение эффективности

Замените список на множество, чтобы ускорить поиск элемента и снизить временную сложность с O(n2+nk)O(n^2 + nk) до O(n2)O(n^2).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рекурсия на Python

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

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

Мышление на Python

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

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

Что нужно знать перед курсом?

Переменные, if, циклы, списки и базовое чтение Python-кода.

Это подготовка к олимпиадам?

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

Будет ли сложность алгоритмов?

Да, в интуитивном формате: почему один подход растёт быстрее другого.

Можно ли проходить без установки Python?

Первые интерактивные уроки можно проходить внутри платформы.

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

Создайте аккаунт, чтобы открыть уроки этого курса и сохранять прогресс.