На этом курсе начинают с понимания, что такое алгоритм и как оценивать его эффективность. Изучают O-нотацию - это способ описывать скорость работы алгоритмов. Рассматривают различные типы структур данных и операции, которые они поддерживают.
Далее курс показывает массив как одну из основных структур данных. Разбирают три способа поиска в массиве: линейный, бинарный и интерполяционный. Каждый метод имеет разную скорость работы - это важно понимать при выборе алгоритма.
Здесь переходят к алгоритмам сортировки. Сначала рассматривают простые методы: пузырьковую сортировку, сортировку выбором и вставками. Затем переходят к более сложным логарифмическим алгоритмам: сортировку слиянием и быструю сортировку. Каждый метод имеет свои преимущества в разных ситуациях.
На этом этапе курс учит работать с рекурсией - когда функция вызывает саму себя. Рассматривают различные виды рекурсии и способы ее реализации. Показывают, как ускорить рекурсивные алгоритмы с помощью мемоизации - это техника сохранения промежуточных результатов.
Этот блок посвящен основным линейным структурам данных. Рассматривают односвязные и двусвязные списки, их методы реализации и основные операции. Также изучают стек и очередь - структуры, которые работают по принципу "первым пришел - первым ушел" и "последним пришел - первым ушел".
Здесь курс объясняет, как работают хеш-функции и хеш-таблицы. Это структуры, которые позволяют быстро находить данные по ключу. Ассоциативные массивы на основе хеш-таблиц - это мощный инструмент для эффективного хранения информации.
На этом этапе курс вводит понятие графов - структур, состоящих из вершин и ребер. Рассматривают типы графов и основную терминологию. Показывают три способа представления графов в компьютере: матрица смежности, матрица инцидентности и список смежности. Изучают два ключевых алгоритма поиска: в глубину и в ширину.
Этот блок посвящен специальным видам графов. Деревья - это графы без циклов, а бинарные деревья поиска позволяют быстро находить элементы. Пирамиды - это особые деревья, которые используют для пирамидальной сортировки. Обе структуры имеют практическое применение в реальных задачах.
В конце курса рассматривают элементы динамического программирования. Это метод решения сложных задач путем разбиения их на более простые подзадачи. Техника особенно полезна для оптимизационных задач, где нужно найти наилучшее решение.
Курс включает 16 онлайн занятий в группе с возможностью просмотра записей. Участники имеют доступ к чату с тренером и группой, получают проверку домашних заданий. Дополнительно проводятся 4 занятия IT English Speaking Club для развития профессиональных языковых навыков.
Доступен пакет Plus, который содержит все из стандартного пакета, а также авторский курс с основ программирования на Java в записи, 60 минут индивидуальных консультаций с преподавателем и безлимитный доступ к IT English Speaking Club в течение обучения.