You are reading the 2024/25 Academic Calendar. The 2023/24 version remains in effect until August 31, 2024 and is available here.

Computer Science, Faculty of Science

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 https://www.cs.ubc.ca/students/undergrad/courses/choose-your-first-cour… 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: http://www.cs.ubc.ca/students/undergrad). For information on credit exclusion between CPSC and other courses, please consult the Faculty of Science Credit Exclusion List.


  1. CPSC 100 (3) Computational Thinking

    Meaning and impact of computational thinking. Solving problems using computational thinking, testing, debugging. How computers work. No prior computing experience required. Not for students with existing credit for or exemption from CPSC 107, CPSC 110 or APSC 160. [3-1-0]

  2. CPSC 103 (3) Introduction to Systematic Program Design

    Computation as a tool for systematic problem solving in non-computer-science disciplines. Introductory programming skills. Not for credit for students who have credit for, or exemption from, or are concurrently taking CPSC 110 or APSC 160. No programming experience expected. [3-0-1]

  3. CPSC 107 (3) Systematic Program Design

    Fundamental computation and program structures. Continuing systematic program design from CPSC 103. [3-2-0]

    Prerequisite: CPSC 103.

  4. CPSC 110 (4) Computation, Programs, and Programming

    Fundamental program and computation structures. Introductory programming skills. Computation as a tool for information processing, simulation and modelling, and interacting with the world. [3-3-0]

  5. CPSC 121 (4) Models of Computation

    Physical and mathematical structures of computation. Boolean algebra and combinations logic circuits; proof techniques; functions and sequential circuits; sets and relations; finite state machines; sequential instruction execution. [3-2-1]

    Prerequisite: Principles of Mathematics 12 or Pre-calculus 12.

    Corequisite: One of CPSC 107, CPSC 110.

  6. CPSC 203 (3) Programming, Problem Solving, and Algorithms

    Analysis of increasingly complex algorithmic problems, using a modern programming language and a variety of approaches. Problem decomposition and abstraction guide explorations of topics from applied algorithms, for example Voronoi Diagrams, Markov Chains, Bin Packing, and Graph Search. Not for students with credit for, or currently enrolled in, CPSC 210 or CPEN 221. [3-0-1]

    Prerequisite: One of CPSC 103, CPSC 110, APSC 160, EOSC 211, MATH 210, PHYS 210, COMM 337.

  7. CPSC 210 (4) Software Construction

    Design, development, and analysis of robust software components. Topics such as software design, computational models, data structures, debugging, and testing. [3-2-0]

    Prerequisite: One of CPSC 107, CPSC 110.

  8. CPSC 213 (4) Introduction to Computer Systems

    Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks. [3-3-0]

    Prerequisite: All of CPSC 121, CPSC 210.

  9. CPSC 221 (4) Basic Algorithms and Data Structures

    Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency. [3-2-0]

    Prerequisite: One of CPSC 210, CPEN 221 and either (a) one of CPSC 121, MATH 220 or (b) a score of 68% or higher in MATH 226.

  10. CPSC 259 (4) Data Structures and Algorithms for Electrical Engineers

    Advanced procedural programming. Fundamental algorithms for sorting and searching. Data structures including lists, trees, and hash tables. Introduction to scripting languages and file input/output. [3-2-0]

    Prerequisite: APSC 160.

  11. CPSC 261 (4) Basics of Computer Systems

    Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks. [3-2-1]

    Prerequisite: One of EECE 259, CPEN 211 and one of EECE 210, CPEN 221.

  12. CPSC 298 (3) Co-operative Work Placement I

    Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during Winter Session of second year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. This course is not eligible for Credit/D/Fail grading.

  13. CPSC 299 (3) Co-operative Work Placement II

    Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the second year. Technical report required. Restricted to students admitted to the Co-operative Education. This course is not eligible for Credit/D/Fail grading.

    Prerequisite: CPSC 298.

  14. CPSC 302 (3) Numerical Computation for Algebraic Problems

    Numerical techniques for basic mathematical processes involving no discretization, and their analysis. Solution of linear systems, including analysis of round-off errors; norms and condition number; introduction to iterative techniques in linear algebra, including eigenvalue problems; solution to nonlinear equations. [3-0-0]

    Prerequisite: One of CPSC 103, CPSC 110, CPEN 221, EOSC 211, PHYS 210 and one of MATH 101, MATH 103, MATH 105, MATH 121, SCIE 001 and one of MATH 152, MATH 221, MATH 223.

  15. CPSC 303 (3) Numerical Approximation and Discretization

    Numerical techniques for basic mathematical processes involving discretization, and their analysis. Interpolation and approximation, including splines and least squares data fitting; numerical differentiation and integration; introduction to numerical initial value ordinary differential equations. [3-0-0]

    Prerequisite: One of CPSC 103, CPSC 110, CPEN 221, EOSC 211, PHYS 210 and one of MATH 101, MATH 103, MATH 105, MATH 121, SCIE 001 and one of MATH 152, MATH 221, MATH 223.

  16. CPSC 304 (3) Introduction to Relational Databases

    Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages,data warehouses, special topics. [3-0-1]

    Prerequisite: CPSC 221.

  17. CPSC 310 (4) Introduction to Software Engineering

    Specification, design, validation, evolution and construction of modern software systems, within the context of socially and professionally relevant domains such as ethics, intellectual property, and information security. [3-2-0]

    Prerequisite: All of CPSC 213, CPSC 221.

  18. CPSC 311 (3) Definition of Programming Languages

    Comparative study of advanced programming language features. Statement types, data types, variable binding, parameter passing mechanisms. Methods for syntactic and semantic description of programming languages. [3-0-1]

    Prerequisite: CPSC 210.

  19. CPSC 312 (3) Functional and Logic Programming

    Principles of symbolic computing, using languages based upon first-order logic and the lambda calculus. Algorithms for implementing such languages. Applications to artificial intelligence and knowledge representation. [3-0-0]

    Prerequisite: One of CPSC 210, CPEN 221.

  20. CPSC 313 (3) Computer Hardware and Operating Systems

    Instruction sets, pipelining, code optimization, caching, virtual memory management, dynamically linked libraries, exception processing, execution time of programs. [3-0-1]

    Prerequisite: All of CPSC 213, CPSC 221.

  21. CPSC 314 (3) Computer Graphics

    Human vision and colour; geometric transformations; algorithms for 2-D and 3-D graphics; hardware and system architectures; shading and lighting; animation. [3-1-0]

    Prerequisite: CPSC 221 and one of MATH 200, MATH 217, MATH 226, MATH 253 and one of MATH 152, MATH 221, MATH 223.

  22. CPSC 317 (3) Introduction to Computer Networking

    Computer networking, basic communication protocols, network infrastructure and routing. Common application-level protocols and principles associated with developing distributed applications. [3-0-1]

    Prerequisite: All of CPSC 213, CPSC 221.

  23. CPSC 319 (4) Software Engineering Project

    The design, implementation, and test of a large software system, using a team approach. [3-0-2]

    Prerequisite: CPSC 310.

  24. CPSC 320 (3) Intermediate Algorithm Design and Analysis

    Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, and text processing algorithms. [3-0-1]

    Prerequisite: CPSC 221 and at least 3 credits from COMM 291, BIOL 300, MATH or STAT at 200 level or above.

  25. CPSC 322 (3) Introduction to Artificial Intelligence

    Problem-solving and planning; state/action models and graph searching. Natural language understanding Computational vision. Applications of artificial intelligence. [3-0-0]

    Prerequisite: CPSC 221.

  26. CPSC 330 (3) Applied Machine Learning

    Application of machine learning tools, with an emphasis on solving practical problems. Data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. [3-0-1]

    Prerequisite: Either (a) one of CPSC 203, CPSC 210, CPEN 221 or (b) MATH 210 and one of CPSC 107, CPSC 110.

  27. CPSC 340 (3) Machine Learning and Data Mining

    Models of algorithms for dimensionality reduction, nonlinear regression, classification, clustering and unsupervised learning; applications to computer graphics, computer games, bio-informatics, information retrieval, e-commerce, databases, computer vision and artificial intelligence. [3-0-1]

    Prerequisite: CPSC 221 and one of MATH 152, MATH 221, MATH 223 and one of MATH 200, MATH 217, MATH 226, MATH 253, MATH 254 and one of STAT 241, STAT 251, ECON 325, ECON 327, MATH 302, STAT 302, MATH 318.

  28. CPSC 344 (3) Introduction to Human Computer Interaction Methods

    Basic tools and techniques, teaching a systematic approach to interface design, task analysis, analytic and empirical evaluation methods. [2-2-2]

    Prerequisite: One of CPSC 210, CPEN 221.

  29. CPSC 349 (0) Honours Research Seminar

    Students will attend a series of research seminars presented by faculty members, produce a thesis proposal, and choose their honours thesis supervisor. Available to Honours students. Majors students with satisfactory standing may also be permitted to enrol. This course is not eligible for Credit/D/Fail grading. [1-0-0]

  30. CPSC 368 (3) Databases in Data Science

    Overview of relational and non-relational database systems, role and usage of a database when querying data, data modelling, query languages, and query optimization. [3-0-1]

    Prerequisite: One of CPSC 203, CPSC 210, CPEN 221.

  31. CPSC 398 (3) Co-operative Work Placement III

    Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the third year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. This course is not eligible for Credit/D/Fail grading.

  32. CPSC 399 (3) Co-operative Work Placement IV

    Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the fall term of the fourth year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. This course is not eligible for Credit/D/Fail grading.

  33. CPSC 402 (3) Numerical Linear Algebra

    Investigation of the practical techniques of computational linear algebra. Orthogonal transformations and their application to the solution of linear equations, the eigenproblem, and linear least squares. Complete solution of the symmetric eigenproblem, including bisection and the QR method. Refinements of these techniques for sparse matrices. [3-0-0]

    Prerequisite: One of CPSC 302, CPSC 303, MATH 307.

  34. CPSC 404 (3) Advanced Relational Databases

    Physical database design, indexing, external mergesort, relational query processing and optimization, transaction processing, concurrency control, crash recovery, special topics. [3-0-0]

    Prerequisite: CPSC 304 and one of CPSC 213, CPSC 261, CPEN 212.

  35. CPSC 406 (3) Computational Optimization

    Formulation and analysis of algorithms for continuous and discrete optimization problems; linear, nonlinear, network, dynamic, and integer optimization; large-scale problems; software packages and their implementation; duality theory and sensitivity. [3-0]

    Prerequisite: One of CPSC 302, CPSC 303, MATH 307.

  36. CPSC 410 (3) Advanced Software Engineering

    Specification, design, construction and validation of multi-version software systems. [3-0-0]

    Prerequisite: Either (a) CPSC 310 or (b) all of CPEN 321, CPEN 331.

  37. CPSC 411 (3) Introduction to Compiler Construction

    A practical introduction to lexical analysis, syntactic analysis, type-checking, code generation and optimization. This will be used to design and implement a compiler for a small language. [3-0-0]

    Prerequisite: All of CPSC 213, CPSC 221, CPSC 311.

  38. CPSC 415 (3) Advanced Operating Systems

    Process synchronization and communication schemes, including message-passing and concepts of monitor and serializer. Virtual memory systems management and the problem of information sharing in such systems. The working set principle. Traps and interrupt handling. Elementary queuing theory and its application such as process scheduling, system balancing and load control. File systems and operating system design methodologies. [3-0-0]

    Prerequisite: One of CPSC 313, CPEN 331.

  39. CPSC 416 (3) Distributed Systems

    Concepts and design of distributed systems. Communication architecture and models for interprocess communication. Process migration, naming, distributed file systems, fault tolerance, and concurrency control. [3-0-0]

    Prerequisite: One of CPSC 313, CPEN 331 and one of CPSC 317, ELEC 331.

  40. CPSC 417 (3) Computer Networking

    Network protocols and architecture including internetworking, the Internet, layered communication protocols, routing, flow and congestion control, network performance, wired and wireless data communication. [3-0]

    Prerequisite: All of CPSC 313, CPSC 317 and one of STAT 200, STAT 201, STAT 241, STAT 251.

  41. CPSC 418 (3) Parallel Computation

    Algorithms, architectures, and programming paradigms for parallel computation. Shared memory, message passing, and data parallel architectures and programming models. Parallel algorithms including reduce, scan, and sorting networks. Reasoning about the correctness of parallel programs. Performance analysis and measurement for parallel programs. [3-0-0]

    Prerequisite: CPSC 320 and one of CPSC 261, CPSC 313, CPEN 212, CPEN 411.

  42. CPSC 420 (3) Advanced Algorithms Design and Analysis

    The study of advanced topics in the design and analysis of algorithms and associated data structures. Topics include algorithms for graph-theoretic; algebraic and geometric problems; algorithms on nonsequential models; complexity issues; approximation algorithms. [3-0-0]

    Prerequisite: CPSC 320.

  43. CPSC 421 (3) Introduction to Theory of Computing

    Characterizations of computability (using machines, languages and functions). Universality, equivalence and Church's thesis. Unsolvable problems. Restricted models of computation. Finite automata, grammars and formal languages. [3-0-0]

    Prerequisite: CPSC 221. CPSC 320 is recommended.

  44. CPSC 422 (3) Intelligent Systems

    Principles and techniques underlying the design, implementation and evaluation of intelligent computational systems. Applications of artificial intelligence to natural language understanding, image understanding and computer-based expert and advisor systems. Advanced symbolic programming methodology. [3-0-0]

    Prerequisite: CPSC 322.

  45. CPSC 424 (3) Geometric Modelling

    Digital representation of curves and surfaces, including splines, subdivision surfaces and meshes. Principles, algorithms and mathematical foundations for geometry representation in computer graphics, computer vision, fabrication, CAD/CAM, and medical imaging. Algorithms for acquisition, creation, representation, and processing of 3D shapes. [3-0-1]

    Prerequisite: CPSC 320 and one of MATH 152, MATH 221, MATH 223 and one of MATH 200, MATH 217, MATH 226, MATH 253.

  46. CPSC 425 (3) Computer Vision

    Introduction to the processing and interpretation of images. Image sensing, sampling, and filtering. Algorithms for colour analysis, texture description, stereo imaging, motion interpretation, 3D shape recovery, and recognition. [3-0-0]

    Prerequisite: All of CPSC 221, MATH 200, MATH 221.

  47. CPSC 426 (3) Computer Animation

    Motion in computer graphics for characters and their environments. Keyframing, inverse kinematics, particle systems, rigid body dynamics, contact and collision, controller-based active motion, motion capture. [3-0-0]

    Prerequisite: CPSC 314.

  48. CPSC 427 (3) Video Game Programming

    Video game programming techniques and technologies, including rendering, animation, interaction, game AI, real-time software development for games; start-to-finish simple video-game design and implementation. [3-0-1]

    Prerequisite: CPSC 221 and one of MATH 200, MATH 217, MATH 226, MATH 253 and one of MATH 152, MATH 221, MATH 223.

  49. CPSC 430 (3) Computers and Society

    Impact of computer technology on society; historical perspectives; social and economic consequences of large-scale information processing systems and automatic control; legal and ethical problems in computer applications. Computers and the individual: machine versus human capabilities, fact and fancy; problematic interface between man and machine. [3-0-0]

    Prerequisite: 3 credits of Computer Science and at least third-year standing.

  50. CPSC 436 (1-6) d Topics in Computer Science

    Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.

    Prerequisite: Third-year standing in a Computer Science or Computer Engineering specialization, and permission of the department.

  51. CPSC 440 (3) Advanced Machine Learning

    Advanced machine learning techniques focusing on probabilistic models. Deep learning and differentiable programming, exponential families and Bayesian inference, probabilistic graphical models and other generative models, Monte Carlo and variational inference methods. [3-0-1]

    Prerequisite: All of CPSC 320, CPSC 340.

  52. CPSC 444 (3) Advanced Methods for Human Computer Interaction

    Design and evaluation methodologies and theories; formal models of the user including visual, motor, and information processing; advanced evaluation methods including laboratory experiments and field studies; HCI research frontiers. [2-2-2]

    Prerequisite: CPSC 344 and one of STAT 200, STAT 201, STAT 203, STAT 241, STAT 251, BIOL 300, COMM 291, ECON 325, ECON 327, FRST 231, GEOG 374, KIN 206, KIN 371, POLI 380, PSYC 218, PSYC 278, PSYC 366, SOCI 328.

  53. CPSC 445 (3) Algorithms in Bioinformatics

    Sequence alignment, phylogenetic tree reconstruction, prediction of RNA and protein structure, gene finding and sequence annotation, gene expression, and biomolecular computing. [3-0-0]

    Prerequisite: CPSC 320 and either BMEG 250 or six credits of BIOL beyond BIOL 111.

  54. CPSC 447 (3) Introduction to Visualization

    Design and implementation of static and interactive visualizations. Selection of appropriate visualization methods for given combinations of data type and intended analysis task. Assessment of visual representations according to design and perceptual principles. [3-0-0]

    Prerequisite: One of CPSC 310, CPEN 321.

  55. CPSC 448 (3/6) c Directed Studies in Computer Science

    Open ordinarily to students in Computer Science with at least a 72% average and permission of the department. The course may consist of supervised reading, participation in a seminar, and one or more programming projects.

  56. CPSC 449 (6) Honours Thesis

    Under supervision of a faculty member, students investigate a research topic and prepare a thesis.

    Prerequisite: CPSC 349.

  57. CPSC 455 (3) Applied Industry Practices

    Hands-on project, mentored by industry experts, integrating skills relevant to early career in the computing industry: technical skills, communication, teamwork, networking and portfolio building. [2.5-2-0]

    Prerequisite: One of CPSC 310, CPEN 321.

  58. CPSC 490 (3) Student Directed Seminars

    Self-directed, collaborative studies, in a group-learning environment, initiated and coordinated by senior undergraduate students with the supervision of a faculty advisor. Course structure, enrolment and delivery methods will comply with the "Handbook for Student Directed Seminars". [3-0-0]

  59. CPSC 491 (6) Interactive Digital Media Practicum

    Design and implementation of interactive digital media systems using modern processes and tools. Projects provided by external clients or vetted entrepreneurial pitches are developed by interdisciplinary teams composed of one CPSC 491 student and multiple Master of Digital Media students. This course is not eligible for Credit/D/Fail grading.

    Prerequisite: All of CPSC 221, CPSC 310, CPSC 344 and Third-year standing.

  60. CPSC 499 (3) Co-operative Work Placement V

    Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the fourth year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. This course is not eligible for Credit/D/Fail grading.

  61. CPSC 500 (3) Fundamentals of Algorithm Design and Analysis

    This course is not eligible for Credit/D/Fail grading.

  62. CPSC 501 (3) Theory of Automata, Formal Languages and Computability

    This course is not eligible for Credit/D/Fail grading.

  63. CPSC 502 (3) Artificial Intelligence I

    This course is not eligible for Credit/D/Fail grading.

  64. CPSC 503 (3) Computational Linguistics I

    This course is not eligible for Credit/D/Fail grading.

  65. CPSC 504 (3) Data Management

    This course is not eligible for Credit/D/Fail grading.

  66. CPSC 505 (3) Image Understanding I: Image Analysis

    This course is not eligible for Credit/D/Fail grading.

  67. CPSC 506 (3) Complexity of Computation

    This course is not eligible for Credit/D/Fail grading.

  68. CPSC 507 (3) Software Engineering

    This course is not eligible for Credit/D/Fail grading.

  69. CPSC 508 (3) Operating Systems

    This course is not eligible for Credit/D/Fail grading.

  70. CPSC 509 (3) Programming Language Principles

    This course is not eligible for Credit/D/Fail grading.

  71. CPSC 511 (3) Implementation of Programming Languages

    This course is not eligible for Credit/D/Fail grading.

  72. CPSC 513 (3) Introduction to Formal Verification and Analysis

    This course is not eligible for Credit/D/Fail grading.

  73. CPSC 514 (3) Computer Graphics: Rendering

    This course is not eligible for Credit/D/Fail grading.

  74. CPSC 515 (3) Computational Robotics

    This course is not eligible for Credit/D/Fail grading.

  75. CPSC 516 (3) Computational Geometry

    This course is not eligible for Credit/D/Fail grading.

  76. CPSC 517 (3) Sparse Matrix Computation

    This course is not eligible for Credit/D/Fail grading.

  77. CPSC 519 (3) Logic Programming and Functional Programming

    This course is not eligible for Credit/D/Fail grading.

  78. CPSC 520 (3) Numerical Solution of Differential Equations

    This course is not eligible for Credit/D/Fail grading.

  79. CPSC 521 (3) Parallel Algorithms and Architectures

    This course is not eligible for Credit/D/Fail grading.

  80. CPSC 522 (3) Artificial Intelligence II

    This course is not eligible for Credit/D/Fail grading.

  81. CPSC 524 (3) Computer Graphics: Modelling

    This course is not eligible for Credit/D/Fail grading.

  82. CPSC 525 (3) Image Understanding II: Scene Analysis

    This course is not eligible for Credit/D/Fail grading.

  83. CPSC 526 (3) Computer Animation

    This course is not eligible for Credit/D/Fail grading.

  84. CPSC 527 (3) Computer Communication Protocols

    This course is not eligible for Credit/D/Fail grading.

  85. CPSC 529 (3) Definition of Programming Languages

    This course is not eligible for Credit/D/Fail grading.

  86. CPSC 530 (3-12) d Topics in Information Processing

    This course is not eligible for Credit/D/Fail grading.

  87. CPSC 531 (3-12) d Topics in Theory of Computation

    This course is not eligible for Credit/D/Fail grading.

  88. CPSC 532 (3-12) d Topics in Artificial Intelligence

    This course is not eligible for Credit/D/Fail grading.

  89. CPSC 533 (3-12) d Topics in Computer Graphics

    This course is not eligible for Credit/D/Fail grading.

  90. CPSC 534 (3-12) d Topics in Data Management

    This course is not eligible for Credit/D/Fail grading.

  91. CPSC 535 (3-12) d Topics in Simulation and Optimization

    This course is not eligible for Credit/D/Fail grading.

  92. CPSC 536 (3-12) d Topics in Algorithms and Complexity

    This course is not eligible for Credit/D/Fail grading.

  93. CPSC 537 (3-12) d Topics in Coding and Information Theory

    This course is not eligible for Credit/D/Fail grading.

  94. CPSC 538 (3-12) d Topics in Computer Systems

    This course is not eligible for Credit/D/Fail grading.

  95. CPSC 539 (3-12) d Topics in Programming Languages

    This course is not eligible for Credit/D/Fail grading.

  96. CPSC 540 (3) Machine Learning

    This course is not eligible for Credit/D/Fail grading.

  97. CPSC 542 (3-12) d Topics in Numerical Computation

    This course is not eligible for Credit/D/Fail grading.

  98. CPSC 543 (3) Physical User Interface Design and Evaluation

    This course is not eligible for Credit/D/Fail grading.

  99. CPSC 544 (3) Human Computer Interaction

    This course is not eligible for Credit/D/Fail grading.

  100. CPSC 545 (3) Algorithms for Bioinformatics

    This course is not eligible for Credit/D/Fail grading.

  101. CPSC 546 (3) Numerical Optimization

    This course is not eligible for Credit/D/Fail grading.

  102. CPSC 547 (3) Information Visualization

    This course is not eligible for Credit/D/Fail grading.

  103. CPSC 548 (3) Directed Study

    This course is not eligible for Credit/D/Fail grading.

  104. CPSC 549 (6/12) c Master's Thesis

    This course is not eligible for Credit/D/Fail grading.

  105. CPSC 550 (3) Machine Learning II

    This course is not eligible for Credit/D/Fail grading.

  106. CPSC 554 (3-12) d Topics in Human-Computer Interaction

    This course is not eligible for Credit/D/Fail grading.

  107. CPSC 564 (3) Data Mining

    This course is not eligible for Credit/D/Fail grading.

  108. CPSC 589 (3) M.Sc. Major Essay

    This course is not eligible for Credit/D/Fail grading.

  109. CPSC 590 (3) Research Methods in Computer Science

    This course is not eligible for Credit/D/Fail grading.

  110. CPSC 649 (0) Doctoral Dissertation

    This course is not eligible for Credit/D/Fail grading.


UBC Crest The official logo of the University of British Columbia. Urgent Message An exclamation mark in a speech bubble. Caret An arrowhead indicating direction. Arrow An arrow indicating direction. Arrow in Circle An arrow indicating direction. Arrow in Circle An arrow indicating direction. Chats Two speech clouds. Facebook The logo for the Facebook social media service. Information The letter 'i' in a circle. Instagram The logo for the Instagram social media service. Linkedin The logo for the LinkedIn social media service. Location Pin A map location pin. Mail An envelope. Menu Three horizontal lines indicating a menu. Minus A minus sign. Pencil A pencil indicating that this is editable. Telephone An antique telephone. Plus A plus symbol indicating more or the ability to add. Search A magnifying glass. Twitter The logo for the Twitter social media service. Youtube The logo for the YouTube video sharing service.