Skip to content

Courses

Every undergraduate CMPUT course offered since Fall 2024 has a page here. Course facts (title, prerequisites, when it's offered) are synced from the official catalogue; everything under "What Students Say" comes from students who took it.

Took a course? Add a review. It takes five minutes and you don't need git. Courses without reviews are the ones that need you most.

About instructors. This wiki doesn't rank professors. Course pages may describe how specific sections have been run (notes, assessments, pacing) so you can pick a style that suits you. Instructors change every term: check the catalogue for who's teaching before you register.

For how courses fit together, see the prerequisite maps in Degree Planning. For which languages and tools each course uses, see the Curriculum Map.

Difficulty and workload reflect student consensus, on these scales:

  • Difficulty: Easy / Medium / Hard / Brutal
  • Workload: Light / Moderate / Heavy / Overwhelming

All Courses

100-level

Course Title Difficulty Workload Offered Reviews
CMPUT 101 Introduction to Computing Easy Light F26, W27 Yes
CMPUT 174 Introduction to the Foundations of Computation I Easy-Medium Moderate F26, W27 Yes
CMPUT 175 Introduction to the Foundations of Computation II Medium Moderate-Heavy F26, W27 Yes
CMPUT 191 Introduction to Data Science F26
CMPUT 195 Introduction to Principles and Techniques of Data Science W27

200-level

Course Title Difficulty Workload Offered Reviews
CMPUT 200 Responsible Data Science and Artificial Intelligence F26, W27
CMPUT 201 Practical Programming Methodology Hard-Brutal Heavy F26, W27 Yes
CMPUT 204 Algorithms I Medium-Hard Moderate-Heavy F26, W27 Yes
CMPUT 206 Introduction to Digital Image Processing W27
CMPUT 229 Computer Organization and Architecture I Brutal Overwhelming F26, W27 Yes
CMPUT 250 Computers and Games F26, W27
CMPUT 256 Game Artificial Intelligence W27
CMPUT 261 Introduction to Artificial Intelligence F26, W27
CMPUT 267 Machine Learning I Hard Heavy F26, W27 Yes
CMPUT 272 Formal Systems and Logic in Computing Science Medium Moderate F26, W27 Yes
CMPUT 274 Accelerated Introduction to the Foundations of Computation I Hard Heavy-Overwhelming F26 Yes
CMPUT 275 Accelerated Introduction to the Foundations of Computation II Hard Heavy-Overwhelming W27 Yes
CMPUT 291 Introduction to File and Database Management Medium Moderate F26, W27 Yes

300-level

Course Title Difficulty Workload Offered Reviews
CMPUT 300 Computers and Society F26
CMPUT 301 Introduction to Software Engineering Medium Heavy (team-dependent) F26, W27 Yes
CMPUT 302 Introduction to Human Computer Interaction W27
CMPUT 303 Algorithmics in Practice F26
CMPUT 304 Algorithms II F26
CMPUT 307 3D Modeling and Animation W27
CMPUT 312 Introduction to Robotics and Mechatronics F26
CMPUT 313 Computer Networks Medium Moderate W27 Yes
CMPUT 325 Non-Procedural Programming Languages Medium Moderate W27 Yes
CMPUT 328 Visual Recognition F26
CMPUT 331 Computational Cryptography F26
CMPUT 333 Security in a Networked World W27
CMPUT 340 Introduction to Numerical Methods F26
CMPUT 350 Advanced Games Programming F26
CMPUT 355 Games, Puzzles, Algorithms W27
CMPUT 361 Introduction to Information Retrieval W27
CMPUT 365 Introduction to Reinforcement Learning F26, W27
CMPUT 366 Search and Planning in Artificial Intelligence F26, W27
CMPUT 379 Operating System Concepts Medium Light-Heavy (instructor-dependent) F26, W27 Yes
CMPUT 382 Introduction to GPU Programming Medium Moderate Not recently offered Yes
CMPUT 393 Scalable Data-Intensive Analytics W27
CMPUT 399 Topics in Computing Science F26, W27

400-level

Course Title Difficulty Workload Offered Reviews
CMPUT 401 Software Process and Product Management Medium Moderate F26, W27 Yes
CMPUT 402 Software Quality F26, W27
CMPUT 403 Algorithmics in Competitive Programming Hard Heavy F26 Yes
CMPUT 404 Web Applications and Architecture Medium Heavy F26, W27 Yes
CMPUT 411 Introduction to Computer Graphics Last: W25
CMPUT 412 Experimental Mobile Robotics W27
CMPUT 414 Introduction to Multimedia Technology W27
CMPUT 415 Compiler Design Brutal Overwhelming F26 Yes
CMPUT 416 Foundations of Program Analysis W27
CMPUT 428 Computer Vision W27
CMPUT 429 Computer Systems and Architecture W27
CMPUT 455 Search, Knowledge and Simulation F26
CMPUT 461 Introduction to Natural Language Processing F26
CMPUT 463 Probabilistic Graphical Models W27
CMPUT 466 Machine Learning Essentials Hard-Brutal (instructor-dependent) Heavy F26 Yes
CMPUT 467 Machine Learning II W27
CMPUT 469 Artificial Intelligence Capstone W27
CMPUT 474 Formal Languages, Automata, and Computability W27
CMPUT 481 Parallel and Distributed Systems Last: W26
CMPUT 495 Honors Seminar F26, W27
CMPUT 499 Topics in Computing Science F26, W27

Scheduling Advice From Students

  • 201 and 204 pair well in second year: different kinds of difficulty (201 is mechanical and time-consuming, 204 is abstract).
  • Don't stack 229 with other heavy courses. Students consistently rate it the hardest course in the program. 229 + 301 + 350 in one term is described as survivable but brutal.
  • 415's project is close to a full-time commitment. Don't take it alongside other project-heavy courses.
  • 301 and 404 depend heavily on your team. Form or screen your team early.