1. Развитие языков программирования.
  2. Понятие ЖЦ ПО. Развитие стандартов.
  3. Каскадная модель ЖЦ.
  4. Спиральная модель ЖЦ.
  5. V-образная модель ЖЦ.
  6. Динамические структуры данных. Списки. Реализация списков в ядре Linux.
  7. Динамические структуры данных. Стеки, очереди.
  8. Динамические структуры данных. Деревья. Бинарные деревья поиска.
  9. Квадратичные сортировки: пузырьком, выбором, вставками. Сортировка подсчётом.
  10. Быстрая сотировка. Сортировка слиянием. Сортировка двоичным деревом.
  11. Радикс сортировки. Прямая радикс, радикс обменом.
  12. Поиск подстроки в строке. Наивный алгоритм. Создание конечного автомата для поиска шаблона.
  13. Поиск подстроки в строке. Алгоритм Кнута-Морриса-Пратта.
  14. Поиск подстроки в строке. Алгоритм Бойера-Мура-Хорспула.
  15. Поиск подстроки в строке. Алгоритм Рабина.
  16. Поиск подстроки в строке. Двоичный bitap алгоритм.
  17. Сжатие без потерь. RLE.
  18. Сжатие без потерь. LZ77.
  19. Сжатие без потерь. Статический код Хаффмана.
  20. Сжатие без потерь. Динамический код Хаффмана - алгоритм Виттера.
  21. Предварительная обработка данных. Move-to-Front.
  22. Предварительная обработка данных. Burrows-Wheeler Transform.
  23. Работа с системой контроля версий git и репозиториями github.
  24. Методологии работы с git.
  25. Качество ПО. Стандарты, характеристики, атрибуты.
  26. Основы тестирования ПО согласно ISTQB.