Мы используем cookie для стабильной работы сервиса. Подробнее

Фундаментальные алгоритмы на Python

ФорматОнлайн
Длительность4-5 часов в неделю
Объём12 занятий
О курсе

Подробнее

12 модулей: поиск, сортировки, массивы, строки, графы, деревья, динамическое программирование, матрицы, структуры данных, теория чисел, шифрование, базовое ML Каждый шаг: краткая теория (разворачивающиеся блоки), псевдокод, пример реализации, шаблон решения, автоматическая проверка Автопроверка: видимые/скрытые тесты, детерминированная генерация данных, корректная обработка погрешностей для вещественных ответов Среда выполнения: Python 3.x на платформе Stepik, без сетевого доступа, адекватные лимиты по времени/памяти
Требования

Что нужно для старта

  • Базовые навыки Python: типы данных, циклы, функции, работа со stdin/stdout
  • Базовое представление об оценке сложности (O‑нотация)
  • Минимум математики: арифметика, массивы/матрицы; базовые понятия о графах приветствуются
  • Ничего устанавливать не требуется: всё выполняется в браузере
Результат

Что вы получите

  • Реализовывать классические алгоритмы: поиск, сортировки, графы, деревья, динамическое программирование, матрицы
  • Работать со структурами данных: стек, очередь, хеш-таблица, бинарная куча, связный список
  • Применять базовые методы теории чисел и шифрования: НОД, факторизация, простота, решето, Цезарь, Виженер, XOR, упрощённая RSA
  • Использовать базовые алгоритмы ML: линейная/логистическая регрессии, kNN, линейный SVM, градиентный спуск
  • Писать корректный код под stdin/stdout, проходящий тесты; оценивать асимптотику решений
  • Следовать шаблону “теория → алгоритм → пример → реализация → автопроверка”
Аудитория

Для кого этот курс

  • 👍Начинающие и продолжающие разработчики, желающие систематизировать алгоритмическую базу
  • 👍Студенты и слушатели, готовящиеся к собеседованиям и алгоритмическим задачам
  • 👍Преподаватели/менторы — как набор тщательно проверяемых практик с автотестами
Содержание

Программа курса

12 занятий
ТемаЧто внутри
01Алгоритмы поиска

- Линейный поиск
- Бинарный поиск
- Поиск в ширину (BFS)
- Поиск в глубину (DFS)

02Алгоритмы сортировки

- Сортировка пузырьком (Bubble Sort)
- Сортировка выбором (Selection Sort)
- Сортировка вставками (Insertion Sort)
- Быстрая сортировка (Quick Sort)
- Сортировка слиянием (Merge Sort)
- Пирамидальная сортировка (Heap Sort)
- Подсчётная сортировка (Counting Sort)
- Радикс-сортировка (Radix Sort)

03Алгоритмы работы с массивами

- Поиск подмассива
- Нахождение максимального/минимального элемента
- Удаление дубликатов
- Перестановки и комбинации
- Работа со слайсами и срезами
- Максимум суммы подмассива (алгоритм Кадана)

04Алгоритмы работы со строками

- Поиск подстроки (алгоритм Кнута-Морриса-Пратта, KMP)
- Обращение строки
- Палиндромы
- Удаление лишних пробелов
- Регулярные выражения
- Сжатие строк

05Алгоритмы работы с графами

- Обход графа (BFS и DFS)
- Алгоритм Дейкстры (нахождение кратчайшего пути)
- Минимальное остовное дерево (алгоритмы Прима и Крускала)
- Определение циклов
- Топологическая сортировка

06Алгоритмы работы с деревьями

- Обход дерева (in-order, pre-order, post-order)
- Высота дерева
- Симметричность дерева
- Поиск в бинарном дереве
- Строительство дерева из обходов

07Алгоритмы динамического программирования

- Задача о рюкзаке
- Наибольшая общая подпоследовательность (LCS)
- Наибольшая возрастающая подпоследовательность (LIS)
- Вычисление чисел Фибоначчи с памятью
- Построение оптимальных решений

08Алгоритмы работы с матрицами

- Транспонирование матрицы
- Умножение матриц
- Поиск минимального/максимального элемента
- Поиск пути в матрице (лабиринт)
- Вывод спирали матрицы

09Алгоритмы работы с структурами данных

- Реализация стека и очереди
- Хэширование и хеш-таблицы
- Работа с бинарными кучами
- Связанные списки: удаление, вставка, обращение

10Алгоритмы теории чисел

- НОД (алгоритм Евклида)
- Разложение на множители
- Проверка на простоту
- Генерация случайных простых чисел
- Числа Фибоначчи
- Решето Эратосфена

11Алгоритмы шифрования

- Шифр Цезаря
- Шифр Виженера
- XOR-шифрование
- RSA (упрощённая реализация)

12Алгоритмы машинного обучения (базовые)

- Линейная регрессия
- Логистическая регрессия
- k-ближайших соседей (kNN)
- Метод опорных векторов (SVM)
- Градиентный спуск

01Алгоритмы поиска

- Линейный поиск
- Бинарный поиск
- Поиск в ширину (BFS)
- Поиск в глубину (DFS)

02Алгоритмы сортировки

- Сортировка пузырьком (Bubble Sort)
- Сортировка выбором (Selection Sort)
- Сортировка вставками (Insertion Sort)
- Быстрая сортировка (Quick Sort)
- Сортировка слиянием (Merge Sort)
- Пирамидальная сортировка (Heap Sort)
- Подсчётная сортировка (Counting Sort)
- Радикс-сортировка (Radix Sort)

03Алгоритмы работы с массивами

- Поиск подмассива
- Нахождение максимального/минимального элемента
- Удаление дубликатов
- Перестановки и комбинации
- Работа со слайсами и срезами
- Максимум суммы подмассива (алгоритм Кадана)

04Алгоритмы работы со строками

- Поиск подстроки (алгоритм Кнута-Морриса-Пратта, KMP)
- Обращение строки
- Палиндромы
- Удаление лишних пробелов
- Регулярные выражения
- Сжатие строк

05Алгоритмы работы с графами

- Обход графа (BFS и DFS)
- Алгоритм Дейкстры (нахождение кратчайшего пути)
- Минимальное остовное дерево (алгоритмы Прима и Крускала)
- Определение циклов
- Топологическая сортировка

06Алгоритмы работы с деревьями

- Обход дерева (in-order, pre-order, post-order)
- Высота дерева
- Симметричность дерева
- Поиск в бинарном дереве
- Строительство дерева из обходов

07Алгоритмы динамического программирования

- Задача о рюкзаке
- Наибольшая общая подпоследовательность (LCS)
- Наибольшая возрастающая подпоследовательность (LIS)
- Вычисление чисел Фибоначчи с памятью
- Построение оптимальных решений

08Алгоритмы работы с матрицами

- Транспонирование матрицы
- Умножение матриц
- Поиск минимального/максимального элемента
- Поиск пути в матрице (лабиринт)
- Вывод спирали матрицы

09Алгоритмы работы с структурами данных

- Реализация стека и очереди
- Хэширование и хеш-таблицы
- Работа с бинарными кучами
- Связанные списки: удаление, вставка, обращение

10Алгоритмы теории чисел

- НОД (алгоритм Евклида)
- Разложение на множители
- Проверка на простоту
- Генерация случайных простых чисел
- Числа Фибоначчи
- Решето Эратосфена

11Алгоритмы шифрования

- Шифр Цезаря
- Шифр Виженера
- XOR-шифрование
- RSA (упрощённая реализация)

12Алгоритмы машинного обучения (базовые)

- Линейная регрессия
- Логистическая регрессия
- k-ближайших соседей (kNN)
- Метод опорных векторов (SVM)
- Градиентный спуск

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

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

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Фундаментальные алгоритмы на Python» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 3 сентября 2026 г.

Продолжить выбор

Похожие курсы

Микросервисная архитектура и инструменты ИИ
−10%19 октября
Микросервисная архитектура и инструменты ИИ

Научитесь проектировать надежные и масштабируемые микросервисные системы! Этот курс для тех, кто хочет овладеть современными технологиями и методами архитектуры. Вы узнаете, как с…

Онлайн8 занятийСредний
Обратная связьПрактические занятия
56 500 ₽−10%
50 850 ₽
Архитектура облачных приложений
−10%19 октября
Архитектура облачных приложений

Облачные приложения: проектируем с нуля! Курс для тех, кто хочет понимать, как работают облачные технологии и уметь применять их на практике, балансируя стоимость и скорость внедр…

Онлайн3 занятийСредний
Обратная связьПрактические занятия
55 000 ₽−10%
49 500 ₽
Ключевые практики архитектора ПО: проектирование и ИИ-инструменты
−10%14 сентября
Ключевые практики архитектора ПО: проектирование и ИИ-инструменты

Практический курс по основам архитектуры ПО. Тренинг предлагает глубокое понимание системной архитектуры и её роли в разработке ПО. Участники освоят выявление требований, проектир…

Онлайн6 занятийСредний
Обратная связьПрактические занятия
68 900 ₽−10%
62 010 ₽
Data Analyst с нуля
−65%9 месяцев
Data Analyst с нуля

Вы научитесь решать задачи бизнеса с помощью данных. Сначала получите необходимую подготовку — подтянете математику и статистику, а затем изучите SQL, Python, Power BI и через год…

Онлайн
197 143 ₽−65%
69 000 ₽от 3 833 ₽/мес на 18 мес.
Разработка через тестирование (TDD) на Java
−10%10 ноября
Разработка через тестирование (TDD) на Java

Погрузитесь в мир TDD на Java! Узнайте, как модульное тестирование и разработка через тестирование могут повысить качество вашего кода и ускорить процесс разработки. В ходе тренин…

Онлайн5 занятийСредний
Практические занятия
24 200 ₽−10%
21 780 ₽
Начать без затрат

Бесплатные курсы

"Поколение Python": курс для начинающих
Бесплатно
"Поколение Python": курс для начинающих

"Поколение Python: курс для начинающих" знакомит с основными типами данных, конструкциями и принципами структурного программирования языка Python. Целевая аудитория – школьники, с…

Онлайн16 занятий
Бесплатно
Claude Code с нуля до реальных задач
Бесплатно1 месяц
Claude Code с нуля до реальных задач

Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT. Программа курс…

Онлайн
Бесплатноот 11 647 ₽/мес
Структуры данных предметной области
Бесплатно
Структуры данных предметной области

Основные задачи дисциплины: − Дальнейшее развитие и углубление навыков алгоритмизации и программирования при решении прикладных задач предметной области. − Знакомство с реализацие…

Онлайн5 занятий
Бесплатно