Description
This course will be an introduction to computer programming through the lens of old-school, arcade-style video games such as Pong, Adventure, Breakout, Pac-Man, Space Invaders, and Tetris. We will learn programming from the ground up and demonstrate how it can be used as a general-purpose, problem-solving tool. The course will emphasize the power of abstraction and the benefits of clearly written, well-structured code, covering topics such as variables, conditionals, iteration, functions, lists, and objects. We will focus on event-driven programming and interactive game loops. We will consider when it makes sense to build software from scratch and when it might be more prudent to make use of existing libraries and frameworks rather than reinventing the wheel. Some of the early history of video games and their lasting cultural importance will also be discussed. Students will design and implement their own low-res, but fun-to-play, games. No prior experience with programming or web desig