Programming 1 and 2 Course Notes

All of your programming 1 and 2 course notes can be found on this site. A list of all available modules is shown on the left (or via the menu for smaller screens).

You can use the search bar at the top to search the notes for specific topics.

Programming 1

Programming 1 Description

This is the first course in a two-part introduction to object-oriented programming in the context of graphics and sound programming. Students will learn to design, write, compile, and debug procedural and object-oriented programs that make use of 3rd-party graphic and sound libraries. Assignments will pull from real-world game development problems with an emphasis on modern tooling and coding best practices.

Programming 1 Course Outcomes

By the end of this course, using the C++ programming language, the student should be able to:

  • Write and compile procedural and object-oriented programs.
  • Design programs that make use of:
    • User defined functions and lambda expressions.
    • User defined types.
    • Standard library container classes.
    • I/O Streams and text formatting.
  • Debug complex error situations involving logical, compile-time, link-time, and run-time errors.
  • Make use of 3rd party object-oriented graphics and sound libraries to solve game development problems.
  • Verbally explain to their instructor, and peers, the algorithms and design decisions used in the software they have written.

Programming 2

Programming 2 Description

This is the second course in a two-part introduction to object-oriented programming and design in the context of graphics and sound programming. The fundamentals of object-oriented programming are reinforced through applied design, implementation, troubleshooting, maintenance, and testing. Learners will move beyond the basics of OO programming to explore advanced topics such pointers, files, and lambda functions.

Programming 2 Course Outcomes

By the end of this course, using the C++ programming language, learners should be able to:

  • Extend and troubleshoot existing complex object-oriented programs.
  • Design programs that make use of:
    • Custom object hierarchies using classes, inheritance, and polymorphism.
    • Pointers and references.
    • Data files and the file system.
    • Lambda functions.
  • Correctly and efficiently handle resource management within their programs.
  • Write stable and debug-friendly OO programs using logging and error handling mechanisms.
  • Use the language of study for scripting within a game engine.
  • Verbally explain to their instructor and peers the algorithms and design decisions used in the software they have written.

News, Challenges, Assignment, and Projects

Please visit our course on Learn for all course news, as well as the course challenges, assignments, and projects. This site only hosts the course notes.