COSC.497.001, Spring 2005
C++ For Game Developers

Course Syllabus


---Class Links ---
Welcome Page

Wednesdays, 2:00-4:30 PM
Academic Center 224

Instructor:
Yoram Chisik
ychisik at ubalt.edu
iat.ubalt.edu/chisik

Office Hour:

Wednesdays 5:00-6:00 PM, Kids' Team Lab and by appointment

Overview:
There are many facets to the process of designing and developing a game but in the sphere of digital games the art and science of programming reigns supreme as it’s the life blood through which the visions of the designers and the emergent patterns of game play come to life.

This course will introduce you to the (often black) art of programming using the C++ programming language (the most widely used language in the game development arena). The course assumes two things, the first assumptions is that the majority of students will have no prior knowledge in programming and is thus suited to absolute beginners as well as those with some experience in other scripting or programming languages. The second assumption is that students in this course are interested in programming from a gaming perspective and would like to direct their attention to developing games.

Students will be introduced to the realm of C++ through a series of small game development projects. The course will cover all of the basic elements of the C++ language from basic language elements such as variables and control structures through the use of standard code libraries and implementing autonomous mechanisms through the application of simple artificial intelligence rules to the elements of object oriented design and the ways in which classes, inheritance and polymorphic behaviour are implemented. By the end of the course students will not only know what polymorphism means but will have a solid understanding of C++ and object oriented development methodologies and therefore well on their way to becoming professional developers.

Materials for course:

Text: Beginning C++ For Game programming by Michael Dawson. Boston, Premier Press, 2004. (ISBN 1-59200-205-6)

Weekly topics:

  1. 1/26 - Understanding the machine
  2. 2/02 - Programmers, Programming and Programming Languages
  3. 2/9 - Types and variables - a gentle introduction to the care and feeding of your microprocessor
  4. 2/16 - The elements of choice and control
  5. 2/23 - Loops, strings and arrays
  6. 3/02 - The Standard template library
  7. 3/9 - All about functions
  8. 3/16 - A reference by any other name is still a reference
    -- Spring Break --
  9. 3/30 - A point or two on Pointers
  10. 4/06 - Getting oriented in object oriented programming
  11. 4/13 - Another class on classes and some new memory tricks
  12. 4/20 - More on Classes
  13. 4/27 - Inheritance and polymorphism
  14. 5/04 - Location based Games
  15. 5/11 - Final Exam

Deliverables: Grading will consider the following effort

  1. Various assignments 75%
  2. Final Exam 15%
  3. Class participation 10%

Expectations:
All personal noise emitting electronic devices are unwelcome in this class. Should you have a specific reason why you are awaiting an important call such as imminent offspring delivery, please advise instructor in advance of class.

Students are expected to conduct themselves with the civility, honesty, effort and attendance commensurate with upper division standing of a student at a university. For more expansion on this topic consult the UB student handbook.

Update 03/14/05