22. Game Programming

Learning to design and program simple games provides a good context for learning many fundamental computing concepts such as user interaction, collision detection, conditional branching, boolean logic, object oriented design, and state machines.