Save To Worklist
Subject Code - CPSC (Computer Science)

The Department of Computer Science offers several options in first year: CPSC 110 is for students pursuing Computer Science specializations or who plan to take CPSC 210. CPSC 103 targets students desiring an introduction to computing and programming, but with no plans to take further Computer Science courses. CPSC 100 targets students desiring a general introduction to computational thinking with little programming. Consult for more information. Students who have credit for or exemption from APSC 160, CPSC 107 or CPSC 110 may not take CPSC 100 or CPSC 103. Students with other computer science transfer credit must consult the department. Students currently registered in CPSC 110 or with Computer Science credit from another institution may not take APSC 160 for credit. Students with sufficient background in the concepts presented in CPSC 110 and an advisor's approval are encouraged to challenge CPSC 110 for credit by taking an examination. Additional fees are charged for some courses. For more information students are advised to contact the Department of Computer Science or visit its undergraduate website: For information on credit exclusion between CPSC and other courses, please consult the Faculty of Science Credit Exclusion List.

Course Title
CPSC 100Computational Thinking
CPSC 103Introduction to Systematic Program Design
CPSC 107Systematic Program Design
CPSC 110Computation, Programs, and Programming
CPSC 121Models of Computation
CPSC 203Programming, Problem Solving, and Algorithms
CPSC 210Software Construction
CPSC 213Introduction to Computer Systems
CPSC 221Basic Algorithms and Data Structures
CPSC 259Data Structures and Algorithms for Electrical Engineers
CPSC 298Co-operative Work Placement I
CPSC 302Numerical Computation for Algebraic Problems
CPSC 303Numerical Approximation and Discretization
CPSC 304Introduction to Relational Databases
CPSC 310Introduction to Software Engineering
CPSC 311Definition of Programming Languages
CPSC 312Functional and Logic Programming
CPSC 313Computer Hardware and Operating Systems
CPSC 314Computer Graphics
CPSC 317Internet Computing
CPSC 319Software Engineering Project
CPSC 320Intermediate Algorithm Design and Analysis
CPSC 322Introduction to Artificial Intelligence
CPSC 330Applied Machine Learning
CPSC 340Machine Learning and Data Mining
CPSC 344Introduction to Human Computer Interaction Methods
CPSC 349Honours Research Seminar
CPSC 368Databases in Data Science
CPSC 404Advanced Relational Databases
CPSC 406Computational Optimization
CPSC 410Advanced Software Engineering
CPSC 411Introduction to Compiler Construction
CPSC 415Advanced Operating Systems
CPSC 416Distributed Systems
CPSC 417Computer Networking
CPSC 420Advanced Algorithms Design and Analysis
CPSC 421Introduction to Theory of Computing
CPSC 422Intelligent Systems
CPSC 425Computer Vision
CPSC 426Computer Animation
CPSC 427Video Game Programming
CPSC 430Computers and Society
CPSC 436NTopics in Computer Science - NLP
CPSC 436RTopics in Computer Science - RANDOMIZED ALGS
CPSC 436VTopics in Computer Science - INFO VISUALIZATN
CPSC 440Advanced Machine Learning
CPSC 444Advanced Methods for Human Computer Interaction
CPSC 445Algorithms in Bioinformatics
CPSC 448ADirected Studies in Computer Science - DIRECTED STUDIES
CPSC 448BDirected Studies in Computer Science - DIRECTED STUDIES
CPSC 448CDirected Studies in Computer Science - DIRECTED STUDIES
CPSC 449Honours Thesis
CPSC 491Interactive Digital Media Practicum
CPSC 501Theory of Automata, Formal Languages and Computability
CPSC 503Computational Linguistics I
CPSC 509Programming Language Principles
CPSC 524Computer Graphics: Modelling
CPSC 530LTopics in Information Processing - BEHAVIORALMODELS
CPSC 532CTopics in Artificial Intelligence - HUMAN-CENTRED AI
CPSC 532JTopics in Artificial Intelligence - INTRO TO AI
CPSC 532LTopics in Artificial Intelligence - BEHAVIORALMODELS
CPSC 532STopics in Artificial Intelligence - STAT LEARN THRY
CPSC 532TTopics in Artificial Intelligence - COMPUTER SYSTEMS
CPSC 532VTopics in Artificial Intelligence - NLP COMMONSENSE
CPSC 532WTopics in Artificial Intelligence - PROB PROG
CPSC 533RTopics in Computer Graphics - VISUAL AI
CPSC 533VTopics in Computer Graphics - LEARNING TO MOVE
CPSC 533YTopics in Computer Graphics - VISUALGEOMETRYDL
CPSC 536FTopics in Algorithms and Complexity - ALG METHODS
CPSC 536NTopics in Algorithms and Complexity - ALGORITHMS
CPSC 536STopics in Algorithms and Complexity - COMBIN OPTIMIZ
CPSC 538BTopics in Computer Systems - DIST SYS ABST
CPSC 538MTopics in Computer Systems - SEC & PRIV
CPSC 539STopics in Programming Languages - PROGRAMVERIFIERS
CPSC 540Machine Learning
CPSC 544Human Computer Interaction
CPSC 545Algorithms for Bioinformatics
CPSC 547Information Visualization
CPSC 549AMaster's Thesis - MASTERS THESIS
CPSC 549BMaster's Thesis - MASTERS THESIS
CPSC 554CTopics in Human-Computer Interaction - HUMAN-CENTRED AI
CPSC 554KTopics in Human-Computer Interaction - DFP PROJECT
CPSC 554XTopics in Human-Computer Interaction - ML & SIGNALS
CPSC 554YTopics in Human-Computer Interaction - AR/VR INTERCTN
CPSC 589M.Sc. Major Essay
CPSC 649Doctoral Dissertation