How I Teach Modern C++ One Pixel at a Time
summary
Semester-long course frames learning around pixel projects: students implement a doom fire effect, image filters, parallax and a falling-sand sandbox, then quadtrees and spline-based games, using the Simple Fast Media (SML) graphics library and live coding on Godbolt/terminal. Teaching emphasizes GDB-first debugging, compiling/linking, STL use, raw pointers before smart pointers, and stepwise modern C++ (ranges, lambdas). Modules run ~100 minutes; assignments scale so most students complete projects and report practical debugging and build skills.
AI-written summary · about
chapters (27)
- 0:00Start
- 0:18Abstract
- 1:40Who Am I
- 12:17How the Language Scales
- 13:12What's the Greatest Weakness for Our Learner
- 14:28Why Do We Need To Think about How We Teach C Plus
- 16:59Focusing on Pixel-Based Effects
- 19:12Color Palette
- 20:21Homework
- 22:55Procedural Textures and Noise
- 25:09Falling Sands Game
- 27:32Quad Trees
- 36:51Findings
- 39:15What Skills Are Students Learning
- 47:56Compiling and Linking
- 52:59Teach Raw Pointers before Smart Pointers
- 57:23Drop Rate
- 1:00:56Functions
- 1:02:00Output
- 1:03:11Module 6
- 1:05:59The Falling Sands Game
- 1:06:27Module 14
- 1:08:50Summary
- 1:09:32Key Ingredient Is Maintaining that Excitement and Enthusiasm
- 1:10:22Teaching Wisdom
- 1:12:40Teaching Notes
- 1:23:11What Goes into an Actual Software Engineering Course
related talks
58mWhat Makes Good C++ Programmers: A Continuous Search For C++ Teaching Recipes
53mMaking C++ Fun, Safe, and Accessible
01h 00m“Stop Teaching C"
04m(Re-)Learn C++ by Example
01h 01mLearning (and teaching) modern C++ - Challenges and Resources
47mLearning (and teaching) modern C++ - Challenges and Resources
01h 03mA C++ journey from old to modern - Modernising ObjectiveFrame
01h 25mWriting games in very modern C++
