1. Алгоритм
1.1. Исполнитель
1.1.1. Формальный
1.1.1.1. Система команд
1.1.1.2. ГРИС
1.1.2. Неформальный
1.2. Свойства
1.2.1. Результативность (конечность), детерминированность (определенность), понятность и дискретность (ввод и вывод), эффективность + массовость.
1.3. Способы записи алгоритмов
1.3.1. На естественном языке, на псевдокоде, в виде блок-схемы, в виде программы.
1.4. Сложность алгоритма
1.4.1. Классы сложности
1.4.2. Критерии сложности
1.4.2.1. Объёмная сложность
1.4.2.2. Временная сложность
1.5. Машины Тьюринга
1.5.1. Вычислимая функция
1.6. Задачи теории алгоритмов
1.6.1. Выявление и обоснование существования алгоритмически неразрешимых проблем, сравнение и оценка алгоритмов.
2. Программирование
2.1. Язык программирования
2.1.1. Уровень
2.1.1.1. Высокий
2.1.1.2. Низкий
2.1.2. Транслятор
2.1.2.1. Интерпретатор
2.1.2.2. Компилятор
2.1.3. Величина
2.1.3.1. Постоянные и переменные + табличные величины: одномерный и двумерный массивы
2.1.3.1.1. Массив
2.1.3.2. Имя, тип, значение
2.1.3.2.1. Тип данных: числовой тип, целый и вещественный, символьный, логический, литерный (строковый).
2.1.4. Структура данных
2.1.4.1. Типы хранения данных
2.1.4.1.1. Статический
2.1.4.1.2. Динамический
2.1.4.2. Типы структур данных
2.1.4.2.1. Стек, очередь, список, деревья, двоичное дерево поиска, хэш-таблица.
2.1.5. Система команд
2.1.5.1. Присваивание
2.1.5.2. Ввод/Вывод
2.1.5.3. Обращение к вспомогательному алгоритму
2.1.5.3.1. Процедура
2.1.5.3.2. Функция
2.1.5.3.3. Рекурсия
2.1.5.4. Цикл
2.1.5.4.1. цикл-ПОКА
2.1.5.4.2. цикл-ДО
2.1.5.4.3. цикл с параметром
2.1.5.5. Ветвление
2.1.5.5.1. Полное, неполное
2.1.5.5.2. Условный оператор
2.1.5.5.3. Составной оператор
2.1.5.5.4. Вложенные ветвления
2.1.6. Автокод; Паскаль; Си; школьный алгоритмический язык
2.2. Технология решения задачи на компьютере
2.2.1. Постановка задачи, математическая формализация, построение алгоритма, составление программы на языке программирования, отладка и тестирование программы, проведение расчетов и анализ полученных результатов.
2.3. Жизненный цикл программного продукта
2.3.1. Этапы: анализ, проектирование, сборку, тестирование, испытание, внедрение, сопровождение.