Необходимо было разработать учебный мини-курс по C++ для студентов школы XYZ с акцентом на разработку игр. Задача включала в себя:
- Разработку карты компетенций выпускника и крупноблочной программы курса
- Создание поурочных планов, сценариев, сопроводительных материалов
- Запись лекций
- Проверка домашних заданий
- Проведение дополнительных вебинаров по курсу
Для создания увлекательного и цельного повествования был выбран практикоориентированный подход, при котором студент получал бы необходимые знания в процессе разработки игровых проектов. При этом более сложные концепции программирования должны были возникать как необходимое улучшение полученных ранее решений, тем самым давая студенту практическое обоснование их применения.
Для облегчения практики была применена библиотека SFML.
В результате получился курс из 4 блоков и 4-х проектов, каждый из которых основывался на результатах предыдущего. В ходе курса студент получал компетенции:
- Знание основных языковых конструкций C++ и умение их применять
- Обзорные знания базы Computer Science, в частности основные алгоритмы и структуры данных, и умение их применять с помощью стандартной библиотеки языка
- Знание и умение применять объектно-ориентированное программирование, а также основные архитектурные паттерны
- Владение инструментами и методиками командной разработки: git, code review, continuous integration
- Базовые концепции разработки игр и игровых движков
- Навыки clean code, профайлинга и оптимизации, владение IDE Visual Studio и понимание процесса сборки C++ программ
Помимо этого я разработал учебный проект для первого блока и записал половину его лекций, а также курировал разработку остальных блоков и их учебных проектов.
Вместе со мной над проектом работали методист и продюсер курса, а также коллектив программистов - авторов отдельных уроков.
www.school-xyz.com/c-dlya-razrabotki-igr github.com/Polterageist/xyz-cpp-course