ПРОГРАММИРОВАНИЕ
Теоретический минимум по Computer Science. Все, что нужно знать инженеру и разработчику.
![Сomputer Science](../assets/images/computer_science/computer-science.jpg)
ОСНОВЫ
1.1. Идеи
1.2. Логика
1.3. Комбинаторика
1.4. Вероятность
ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ
2.1. Оценка затрат времени
2.2. Нотация «О большое»
2.3. Экспоненциальное время
2.4. Оценка затрат памяти
СТРАТЕГИЯ
3.1. Итерация
3.2. Рекурсия
3.3. Полный перебор
3.4. Поиск (перебор) с возвратом
3.5. Эвристические алгоритмы
3.6. Разделяй и властвуй
3.7. Динамическое программирование
3.8. Ветви и границы
ДАННЫЕ
Абстракции
4.1. Абстрактные типы данных
4.2. Общие абстракции
4.3. Структуры
Двоичное дерево поиска
АЛГОРИТМЫ
5.1. Сортировка
5.2. Поиск
5.3. Графы
5.4. Исследование операций
БАЗЫ ДАННЫХ
6.1. Реляционная модель
6.2. Нереляционная модель
6.3. Распределенная модель
6.4. Географическая модель
6.5. Форматы сериализации
КОМПЬЮТЕРЫ
7.1. Архитектура
7.2. Компиляторы
7.3. Иерархия памяти
ПРОГРАММИРОВАНИЕ
8.1. Лингвистика
8.2. Переменные
8.3. Парадигмы