
Course Offerings
Course offerings within the department vary from introductory courses to courses for non-CS Majors, Co-op students and more. Below is a listing.
Full descriptions and pre-requisites can be found in the UBC Calendar.
When choosing electives, be careful to meet Faculty requirements for your chosen degree. In the Faculty of Science, these include but are not limited to Communications, Arts and Breadth requirements. There is also the requirement of having a sufficient number of upper-level (3rd or 4th year) elective courses. Similarly, the Faculty of Arts has requirements for graduating with a BA.
Please see the Faculty of Science and Faculty of Arts webpages for details. Be sure to pay attention to promotion requirements, including the minimum and maximum number of credits.
Introductory Courses:
CPSC 100 (3) Computational Thinking
CPSC 103 (3) Introduction to Systematic Program Design
CPSC 107 (3) Systematic Program Design
CPSC 110 (4) Computation, Programs, and Programming
CPSC 121 (4) Models of Computation
Courses for APSC students:
CPSC 259 (4) Data Structures and Algorithms for Electrical Engineers
CPSC 261 (4) Basics of Computer Systems
Work Placement sections for students in co-op:
CPSC 298 (3) Co-operative Work Placement I
CPSC 299 (3) Co-operative Work Placement II
CPSC 398 (3) Co-operative Work Placement III
CPSC 399 (3) Co-operative Work Placement IV
Courses accessible to non-majors:
CPSC 203 (3) Programming, Problem Solving, and Algorithms
CPSC 330 (3) Applied Machine Learning
CPSC 430 (3) Computers and Society
Other courses:
CPSC 210 (4) Models of Computation
CPSC 213 (4) Introduction to Computer Systems
CPSC 221 (4) Basic Algorithms and Data Structures
CPSC 302 (3) Numerical Computation for Algebraic Problems
CPSC 303 (3) Numerical Approximation and Discretization
CPSC 304 (3) Introduction to Relational Databases
CPSC 310 (4) Introduction to Software Engineering
CPSC 311 (3) Definition of Programming Languages
CPSC 312 (3) Functional and Logic Programming
CPSC 313 (3) Computer Hardware and Operating Systems
CPSC 314 (3) Computer Graphics
CPSC 317 (3) Internet Computing
CPSC 319 (4) Software Engineering Project
CPSC 320 (3) Intermediate Algorithm Design and Analysis
CPSC 322 (3) Introduction to Artificial Intelligence
CPSC 340 (3) Machine Learning and Data Mining
CPSC 344 (3) Introduction to Human Computer Interaction Methods
CPSC 349 (0) Honours Research Seminar
CPSC 402 (3) Numerical Linear Algebra
CPSC 404 (3) Advanced Relational Databases
CPSC 406 (3) Computational Optimization
CPSC 410 (3) Advanced Software Engineering
CPSC 411 (3) Introduction to Compiler Construction
CPSC 415 (3) Advanced Operating Systems
CPSC 416 (3) Distributed Systems
CPSC 417 (3) Computer Networking
CPSC 418 (3) Parallel Computation
CPSC 420 (3) Advanced Algorithms Design and Analysis
CPSC 421 (3) Introduction to Theory of Computing
CPSC 422 (3) Intelligent Systems
CPSC 424 (3) Geometric Modelling
CPSC 425 (3) Computer Vision
CPSC 426 (3) Computer Animation
CPSC 427 (3) Video Game Programming
CPSC 436 (1-6) d Topics in Computer Science
CPSC 440 (3) Advanced Machine Learning
CPSC 444 (3) Advanced Methods for Human Computer Interaction
CPSC 445 (3) Algorithms in Bioinformatics
CPSC 448 (3/6) c Directed Studies in Computer Science
CPSC 449 (6) Honours Thesis
CPSC 490 (3) Student Directed Seminars
CPSC 491 (6) Interactive Digital Media Practicum
CPSC 499 (3) Co-operative Work Placement V
Note: In case of disagreement between these CPSC department web pages and the official UBC Calendar, the Calendar takes precedence. Please let us know about any errors. It remains the responsibility of the student to select a program and courses that meets all Department and Faculty requirements for graduation.