03.09 (-) Вводное занятие без компьютеров 10.09 (П) Базовые конструкции языка C, дополнительные задачи на короткий код 17.09 (П) Введение в стандартную библиотеку языка C++ 24.09 (П) Представление чисел в памяти: про точность вычислений для геометрии 01.10 (А) Вычислительная геометрия: точки, прямые и окружности на плоскости, выпуклая оболочка 08.10 (А) Теория игр: числа Гранди 15.10 (А) Алгебра и теория чисел: вычисления по модулю, простые числа, матрицы 22.10 (П) Задачи на технику программирования ----- 05.11 (А) Сортировка: Quicksort, Mergesort, Heapsort, и смежные задачи 12.11 (А) Динамическое программирование: одномерные и двумерные задачи, восстановление ответа 19.11 (А) Структуры данных 1: система непересекающихся множеств, дерево отрезков 26.11 (А) Графы 1+2: поиск в ширину и в глубину, TopSort; взвешенные графы, кратчайшие пути 03.12 (А) Структуры данных 2: декартово дерево, по неявному ключу, персистентное 10.12 (А) Строки 1: Кнут-Моррис-Пратт, Z-функция, Рабин-Карп, палиндромы 17.12 (А) Строки 2: суффиксное дерево, алгоритм Укконена ----- 11.02 (П) Случайные числа: линейный конгруэнтный генератор и свойства, хеши строк и множеств 25.02 (А) Параллельные алгоритмы: учебный язык Pr; суммирование, сортировка и другие задачи 10.03 (А) Приближённые алгоритмы: задача коммивояжёра, метод отжига, beam search 24.03 (А) Вероятностные алгоритмы + интерактивность ----- (П) - программирование, (А) - алгоритмы и структуры данных