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

Рекурсия на Python

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

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

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

Индукция

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

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

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

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

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

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

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

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

Для кого

Рекурсия на Python через маленькие повторяющиеся задачи

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

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

Индукция

Описывайте и программируйте индуктивные процессы.

02

Рекурсия

Напишите рекурсивные функции, выражающие индуктивные процессы через базовый случай и рекурсивный шаг.

03

Стек вызовов

Трассируйте рекурсивный стек вызовов, чтобы понять, как работает рекурсия.

Стек вызовов делает рекурсию видимой

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

Действие

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

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

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

Понимание
Идея курса «Рекурсия на Python» понятна

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

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

От функции и условия к рекурсивному мышлению и трассировке вызовов.

1
base

Индукция

Описывайте и программируйте индуктивные процессы.

2
call

Рекурсия

Напишите рекурсивные функции, выражающие индуктивные процессы через базовый случай и рекурсивный шаг.

3
stack

Стек вызовов

Трассируйте рекурсивный стек вызовов, чтобы понять, как работает рекурсия.

4
return

Как избежать бесконечной рекурсии

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

5
tree

Несколько базовых случаев

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

6
✓

Несколько рекурсивных вызовов

Научитесь писать рекурсивные функции, которые вызывают себя несколько раз.

7
7

Трассировка нескольких вызовов

Протрассируйте порядок вызовов и возвратов при нескольких рекурсивных вызовах.

8
8

Динамический шаг рекурсии

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

9
9

Рекуррентные соотношения

Научитесь записывать рекуррентные соотношения и превращать их в рекурсивные функции Python.

10
10

Выбор шага по входному значению

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

11
11

Выбор рекурсивного пути

Научитесь записывать рекурсивные функции, выбирающие между разными рекурсивными вызовами в зависимости от входа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мышление на Python

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

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

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

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

Почему рекурсия сложная?

Нужно одновременно понимать текущий вызов, меньшую задачу и момент остановки.

Где рекурсия нужна?

В деревьях, графах, переборе, парсинге, фракталах и многих алгоритмах.

Курс учит писать код или понимать?

И то и другое, но главный акцент — понимать выполнение рекурсивной функции по шагам.

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

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