Object-Oriented Programming: Computer Game Design
Object-oriented programming is a design paradigm that encapsulates variables and functions into structures called objects. Understanding what objects are, how to use them, and how to write your own objects, is a foundational programming skill. An application area in which objects naturally occur is game design. The computer gaming industry is a multi billion dollar industry that combines art, sound, and computing into one package. In part, it is thanks to the computer game market that we have seen rapid advances in computer graphics and compute speed. Computer games are event-driven programs; meaning the sequence of operations is not predetermined but is controlled by the user’s mouse clicks or text responses to prompts. In this class students will develop a computer game as a means to learn object-oriented and event-driven programming. Students who successfully complete this course will gain: 1)a grounding in object-oriented design, 2) an introduction to finite state machines and event driven programming, and 3) experience transforming an idea into a working computer game prototype.
Students will gain Python coding experience and general skills that leave them better equipped to pursue a wide range of programming tasks. This course is intended for students who have some computer experience and are interested in independently learning new skills. While this course is designed to build on Introduction to Computer Science, adventurous beginners are encouraged to take this class. Students will be evaluated on weekly check-ins and assignments. The main project throughout the class will be to design, develop, and test a computer game prototype which culminates in a final demonstration. This course, or the equivalent, is required for many further courses in CS and related areas.