Course Prerequisites and Restrictions

The following page does not contain complete program information.  Please consult the Program Information for complete detail on our programs.

The course prerequisite structure for Computer Science courses is quite complex, and no longer makes sense presented on a single page.  The information is subdivided into a number of pages showing relevant information in a limited way.

  • Prerequisites and restrictions for 100-level courses
    This page shows all the 100-level courses offered by the department.  The verbal description of the restrictions on these courses is summarized in a diagram.
  • Prerequisites for 100-and 200-level courses.
    This page contains all the 100-level CMPT courses and some of the 200-level courses that are directly relevant.  It is intended as a simple view for new students and students in first year to see the relationship between the courses.
  • Prerequisites for 200-and 300-level courses.
    This page contains the core 200-level courses of our Computer Science and Computing programs.  The information is subdivided by the 3 distinct groups 300-level courses in our programs.
  • Prerequisites for 300-and 400-level courses.
    All of the 300- and 400-level CMPT courses in our program are shown.  This is the most complex diagram of the series.  For convenience, the 200-level CMPT prerequisites are also given, by means of the small coloured icons.  Courses are grouped roughly into topic areas, but this is to make searching for a particular course a little easier.  There are no implied requirements in these groupings.

How to read the diagrams

  • The colours and shapes are intended to help distinguish between year levels, and are consistent across all diagrams.  
  • Prerequisites are indicated by arrows: if course A points to course B, then A is a prerequisite of B. 
  • Sometimes, arrows represent co-requisites, or recommended preparation, and these have different line styles. 
  • If more than one course points to course B, then all of these courses are prerequisites. 
  • If an arrow points to a circle containing the word "or", then any one of the courses pointing to that circle can be used as a prerequisite for the course that the circle points to. 
  • Similarly, a circle containing the word "and" means that all the courses pointing to the circle are prerequisites for the course that the circle points to. This is used occasionally to reduce the number of long arrows.
  • If you are a student of Computer Science, then you'll recognize these diagrams as directed graphs. But for other visitors to this site: Congratulations: you've just learned some Computer Science.  Diagrams like these are used as organizational diagrams for software and data.  They can be used just as visualizations of complex relationships, or they can be blueprints for the way data is actually organized in software. Without diagrams like these, it would be nearly impossible to build complex software applications.