CMPM 123: Advanced Programming
Tuesday and Thursday 11:40am - 1:15pm in Thim Lecture Hall 1.
CMPM 123, titled "Advanced Programming", is introduced as a revamped version of the previously offered CSE 111: Advanced Programming. Unlike its predecessor, this course is now an elective rather than a mandatory subject and welcomes students beyond the domain of CS:GD. The prerequisites for this course are either CSE 101 or CMPM 35.
CMPM 123 covers an a more advanced introduction to C++ programming, specifically tailored for the gaming industry. Key subjects that will be covered include understanding the core classes used in making a game viable. Here's a tentative outline for the initial weeks:
- Introduction to the code framework for the course.
- Exploring image loading and data formats.
- Looking at class structures and building an efficient base class.
- Deciphering when to utilize the standard library and when to abstain.
- Strategies for scaling a build process.
The course will delve into intricate topics like assembly code, debugging techniques, and profiling, ensuring that students grasp not just the theoretical, but also the practical aspects of the programming world.
The course is led by Mr. Graeme Devine, a renowned figure in the gaming industry with a prolific background spanning over four decades. Some of his accolades include:
- Co-founder of Trilobyte in the 1990s.
- Former Chairman of the International Game Developers Association (IGDA).
- Pioneer in early gaming with works dating back to the 1970s.
- Key contributor to iconic games such as 'The 7th Guest', 'Quake III Arena', and 'Halo Wars'.
- Founder of GRL Games, Santa Cruz, emphasizing innovative game titles for iOS and Mac platforms.
- One of the initial members at the mixed reality startup, Magic Leap.
The teaching methodology prioritizes real-world applications, drawing from Mr. Devine's extensive industry experience. Students will engage in detailed case studies, such as the challenges faced during the building process of "Age of Empires 3". Such examples bring forth the complex decisions developers often encounter, such as the choice between revamping an existing system and adhering to impending deadlines.
Interested to know how these challenges were overcome? Join CMPM 123 to discover the intricacies of the gaming industry!