Основы информатики
Алгоритмы и фундаментальные идеи информатики: хранение информации и алгоритмы на массивах, поиск и сортировка, скорость алгоритмов и O-нотация, устойчивые паросочетания (алгоритм Гейла–Шепли), корректность и завершимость, деревья решений, параллелизм и конвейеризация, абстракция и интерфейсы, а также графы и мосты Кёнигсберга.
Уроки этого курса доступны после регистрации. Демо без аккаунта показывает механику платформы на примере задачи с роботом по алгоритмике.
Работа с числами
Пример показывает устройство урока. Чтобы решать задания, откройте курс после регистрации.
39 коротких уроков
По 7-10 минут: можно пройти за один подход или возвращаться по частям.
Интерактив вместо конспекта
Ученик решает задачу, проверяет ответ и видит объяснение следующего шага.
Спокойный старт
Демо платформы доступно без аккаунта. Для уроков выбранного курса и сохранения прогресса нужна регистрация.
Основы информатики через алгоритмы и модели
Курс подходит школьникам, которые хотят понять информатику шире синтаксиса: алгоритмы, данные, эффективность, поиск и логика вычислений.
Работа с числами
Компьютеры хранят все данные числами. Узнайте, как алгоритмы работают с переменными через инструкцию set и условие if.
Головоломки с входными данными
Предсказывайте поведение алгоритмов с условиями и входными данными.
Массивы
Массив — это пронумерованная последовательность ячеек. Научитесь обращаться к значениям по индексу и понять, как команды читают и изменяют массив.
Если ответ неверный, урок показывает не только финал, а последовательность действий, где возникла ошибка.
Откройте шаг «Работа с числами» и выполните действие в модели.
Ошибка не заканчивает задание: она запускает объяснение на схеме.
Ученик видит идею на модели и переносит её в самостоятельное решение.
Маршрут курса
От алгоритма как инструкции к данным, поиску и эффективности.
Работа с числами
Компьютеры хранят все данные числами. Узнайте, как алгоритмы работают с переменными через инструкцию set и условие if.
Головоломки с входными данными
Предсказывайте поведение алгоритмов с условиями и входными данными.
Массивы
Массив — это пронумерованная последовательность ячеек. Научитесь обращаться к значениям по индексу и понять, как команды читают и изменяют массив.
Повторение и массивы
Научитесь перебирать все элементы массива с помощью циклов while и for, искать максимум, вычислять сумму и считать элементы по условию.
Поиск в массиве
Научитесь искать значение в массиве: линейный перебор, досрочный выход (done) и ускорение поиска в отсортированном массиве.
Бинарный поиск
Эффективный алгоритм поиска в отсортированном массиве: проверяем середину и отбрасываем половину.
Сравнение и обмен
Изучите два базовых инструмента алгоритмов сортировки: сравнение элементов массива и их обмен местами через временную ячейку.
Сортировка массива
Постройте первый алгоритм сортировки — сортировку выбором — шаг за шагом.
Сортировка вставками
Разберитесь с алгоритмом сортировки вставками: как расширять отсортированный сегмент каскадом обменов и защититься от краевого случая A[-1].
Измерение времени работы программ
Узнайте, как экспериментально измерять скорость алгоритмов и предсказывать форму зависимости «размер входа — время».
Подсчёт операций
Научитесь подсчитывать обращения к массиву, сравнения и обмены, чтобы оценить стоимость алгоритма.
Лучший и худший случай
Узнайте, почему число сравнений сортировки вставками зависит от содержимого массива, и освойте понятия лучшего и худшего случая.
Средний случай
Научитесь вычислять средний случай алгоритма, усредняя стоимость по всем перестановкам входных данных.
Сравнение алгоритмов
Научитесь сравнивать алгоритмы по показателю степени и освоите нотацию О-большое.
Как понимать O-большое
Изучите, что — это множество функций, как множества вложены и почему принято указывать наименьший показатель.
Математика O-большого
Формальное определение O-большого через константу и отношение функций; доказательство принадлежности множеству .
Задача об устойчивом паросочетании
Узнайте, что такое устойчивое паросочетание и почему алгоритм NRMP защищён от цепочек расколов.
Жадные стратегии
Узнайте, как жадная стратегия позволяет кандидату и больнице максимизировать свой результат — и почему она не гарантирует устойчивость всего паросочетания.
Алгоритм отложенного принятия
Алгоритм Гейла–Шепли использует индивидуальные жадные решения больниц и кандидатов для построения централизованного устойчивого паросочетания.
Корректность
Докажите, что алгоритм Гейла — Шепли всегда строит устойчивое паросочетание, в котором сопоставлены все участники.
Завершимость
Почему хороший алгоритм обязан не просто давать правильный результат, но и гарантированно завершаться. Метод доказательства завершимости через убывающую целочисленную величину на примере алгоритма Гейла–Шепли.
Время работы
Анализ времени работы алгоритма Гейла — Шепли: три реализации с O(n³), O(n² log n) и O(n²).
Варианты задачи о паросочетаниях
Как алгоритм Гейла–Шепли адаптируется к реальным задачам: несколько мест, неравные стороны, неполные списки.
Деревья решений
Узнайте, как деревья решений разбивают сложную задачу на последовательность простых вопросов «да или нет».
Меньше вопросов
Оптимизируйте дерево решений, уменьшая число вопросов через разбиение пополам.
Бинарный поиск
Деление пополам применимо к любому упорядоченному списку: находим середину, отбрасываем половину и повторяем.
Параллелизм
Узнайте, как параллелизм ускоряет только параллелизуемые части задачи — и почему добавление работников даёт убывающую отдачу.
Конвейерная обработка
Узнайте, как конвейерная обработка повышает эффективность, используя простаивающие ресурсы, и в чём разница между задержкой и пропускной способностью.
Компромиссы между ресурсами
Изучите понятие компромисса между ресурсами — как использовать больше одного ресурса (памяти, пространства), чтобы сэкономить другой (время), и что такое кэширование.
Распределение ресурсов
Научитесь размещать ресурсы там, где они нужнее всего, не увеличивая их объём.
Абстракция
Узнайте, как абстракция управляет сложностью: скрывает детали, создаёт слои — и какова её цена.
Интерфейсы
Интерфейс — это стандартизированный способ взаимодействия с системой, скрывающий её внутреннее устройство. За одним интерфейсом могут стоять разные реализации с разными компромиссами.
Мосты Кёнигсберга
Сформулируйте задачу о мостах Кёнигсберга и познакомьтесь с идеей полного перебора.
Полный перебор
Полный перебор — метод проверки всех возможных вариантов. На задаче о мостах Кёнигсберга узнаем, почему перебор работает для малых задач и почему становится непрактичным при росте числа вариантов.
Мышление с помощью графов
Узнайте, как задачу о мостах Кёнигсберга можно превратить в задачу о графе — и почему это открывает более быстрое решение.
Эйлеровы пути
Освойте критерий существования эйлерова пути: подсчёт вершин с нечётной степенью.
Как представить игру или головоломку
Узнайте, как описать головоломку в виде графа, чтобы компьютер мог найти решение автоматически.
Завершаем построение графа
Научитесь превращать головоломку о переправе через реку в граф: вершины, рёбра и правила допустимых расстановок.
Поиск по графу
Узнайте, как алгоритм поиска в глубину (DFS) находит путь в графе состояний головоломки.
Нет перегруза: сначала основная идея, затем проверка понимания и самостоятельное применение.
Ученик сразу видит, где ошибся, и получает объяснение через схему.
Курс строится от первого знакомства с идеей к более самостоятельным задачам.
После регистрации можно продолжить курс и вернуться к сложным темам.
Алгоритмическое мышление
Учимся проектировать и проверять алгоритмы на классической задаче о расписании: интервалы и конфликты, жадные критерии, контрпримеры, инварианты, корректность и оптимальная подструктура. Курс развивает алгоритмическое мышление без привязки к конкретному языку.
Алгоритмы на Python
Анализ алгоритмов на Python через чтение и трассировку программ: токенизация и перебор, корректность (предусловия, инварианты цикла, контрпримеры), эффективность (лучший/худший случай, временная сложность, O-нотация) и скрытые издержки времени выполнения.
Рекурсия на Python
Рекурсия в Python через чтение и трассировку программ: базовые случаи, стек вызовов, бесконечная рекурсия, множественные базовые случаи и рекурсивные вызовы, рекуррентные соотношения и выбор рекурсивного пути.
Мышление на Python
Основы Python через чтение и анализ программ: переменные, условная и булева логика, циклы for и while, списки, словари, строки, вложенные и цепочечные условия, работа с данными, временная сложность и алгоритмы поиска.
Это школьная информатика?
Да, но с акцентом на вычислительное мышление, а не только на конкретный язык.
Нужно ли уметь программировать?
Базовый опыт полезен, но многие идеи можно понять через интерактивные модели.
Поможет ли курс перед Python?
Да. Он объясняет, что именно должен делать алгоритм, прежде чем писать код.
Кому подойдёт курс?
Школьникам, готовящимся к программированию, олимпиадам или более серьёзной информатике.
Начните курс бесплатно
Создайте аккаунт, чтобы открыть уроки этого курса и сохранять прогресс.