CMPUT 201 - Practical Programming Methodology


Like the best carpenters and artists, the best programmers combine both a solid theoretical foundation with "best practices" and tools refined by years of experience. Instead of stress loads on walls and hammers, or colour theory and paint brushes, programmers work with abstract data types and software libraries.

It takes an understanding of practical programming methodology, and a diverse set of tools, to translate a creative idea into a working implementation. The programmer cares about choosing the right tool for the right problem, and is not simply interested in collecting the most tools.

CMPUT 201 is a "doing art" and not an "art appreciation" course; it requires hands-on, active learning. For a programmer, the end product is a complete, working program.


  • Be able to handle any intermediate programming problem by using C and C++ under Linux
  • Have the skills to combine your knowledge of program design and data structures (174/175), with useful algorithms and mathematics (204/272) and application-specific knowledge (291/379) to design and implement non-trivial software

Course Work

  • Reading Assignments and In-Class Quizzes
  • Lab Exercises
  • Final Exam