На курсі починають з асимптотичної складності алгоритмів. Тут пояснюють, чому звичайний час виконання - поганий критерій для оцінки алгоритмів. Студенти вчаться аналізувати ефективність різних підходів. Потім переходять до основних структур даних: масивів, списків, стеків, черг, хеш-таблиць і дерев. Кожну структуру розглядають з точки зору практичного застосування.
Детально вивчають алгоритми сортування. Особливу увагу приділяють швидкому сортуванню - від вибору опорного елемента до різних схем розбиття. Розбирають heap-sort та сортування підрахунком. Далі переходять до основ теорії чисел: дільники, прості числа, факторизація. Практикують алгоритм Евкліда та решето Ератосфена для роботи з простими числами.
Курс охоплює дві частини роботи з графами. Спочатку студенти знайомляться з структурою даних графа та сферами застосування. Вчаться реалізовувати пошук у глибину і ширину, знаходити компоненти зв'язності. У другій частині переходять до складніших алгоритмів: Дейкстри для пошуку найкоротших шляхів та Прима для побудови мінімального кістяка. Також розглядають знаходження мостів і точок зчленування.
Геометричний блок присвячений розв'язанню практичних задач: знаходження площі багатокутників та побудові опуклих оболонок за алгоритмом Грехема. У модулі по пошуку в тексті вивчають поліноміальне хешування рядків. Детально розбирають алгоритми Рабіна-Карпа та Кнута-Морріса-Пратта для ефективного пошуку підрядків.
У заключній частині курсу розглядають принципи балансування AVL-дерев. Студенти вирішують кілька популярних задач для закріплення матеріалу. Знання перевіряють через вікторину, що допомагає оцінити засвоєння пройдених тем.