Чему вы научитесь
- Разбирать условие задачи и выделять важные ограничения
- Оценивать время работы и дополнительную память алгоритма с помощью Big O
- Выбирать подход к задаче и сравнивать несколько решений
- Строить алгоритмы для задач на массивы и последовательности
- Применять динамическое программирование и находить переходы между состояниями
- Проверять решение на крайних случаях
- Объяснять, почему алгоритм работает и укладывается в ограничения
О курсе
Знать синтаксис языка - ещё не значит сразу видеть решение задачи. На курсе мы будем учиться переходить от условия к алгоритму: замечать закономерности, выбирать подход и оценивать, подойдёт ли он под ограничения.
Обучение построено вокруг практики. Сначала вы разбираете идею на понятных примерах, затем отвечаете на вопросы и решаете задачи самостоятельно. Задания идут от простых к более сложным, чтобы каждый новый приём опирался на уже изученное.
В курсе рассматриваются оценка сложности с помощью Big O и классические алгоритмические задачи, в том числе задачи на динамическое программирование. К практическим заданиям предусмотрены подсказки, разборы и авторские решения, а так же ссылки на аналогичную или похожую задачу с LeetCode.
Главная цель курса - научиться самостоятельно находить и проверять решение. Примеры кода показаны на псевдокоде, за счет чего изучаемые алгоритмические идеи применимы в любых языках программирования.
Для кого этот курс
Начальные требования
Нужно знать основы хотя бы одного языка программирования: переменные, условия, циклы, функции и базовые коллекции. Предварительное знание алгоритмов не требуется.
Как проходит обучение
Каждая тема начинается с текстовой теории и примеров. Затем вы отвечаете на вопросы с выбором ответа и решаете задачи с автоматической проверкой. В задачах доступны подсказки; после самостоятельной попытки можно изучить разбор вти аорское решение. Проходить материалы можно в собственном темпе.
Программа курса
В курс входят
- 8 уроков
- 9 тестов
- 10 интерактивных задач
Наши преподаватели
Что вы получаете
- Структурированную теорию по алгоритмизации
- Практику на классических задачах
- Автоматическую проверку ответов
- Подсказки к заданиям
- Авторские разборы и решения
- Приёмы для самостоятельного решения новых задач