Студенты знакомятся с теоретическими основами построения и анализа алгоритмов, с такими характеристикам алгоритмов как вычислительная и объемная сложность, изучают некоторые базовые алгоритмы (задачи сортировки и поиска) и базовые структуры данных (множества, графы, очереди, списки, стеки, деревья, хэш-таблицы и т.д.), методологической основой выбора и создания структур данных, необходимых для эффективных алгоритмов.