Please log in or sign up to continue.
Select up to 3 courses (9 credits) you plan to take. The graph will highlight the prerequisites and corequisites you'll need. The "Courses You'll Need" list below will show the prerequisites and corequisites you'll need.
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.
Prerequisites: CPSC110, MATH101, MATH221
View Historical Averages for CPSC 302Numerical 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.
Prerequisites: CPSC110, MATH101, MATH221
View Historical Averages for CPSC 303Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages, data warehouses, special topics.
Prerequisites: CPSC221
View Historical Averages for CPSC 304Specification, 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.
Prerequisites: CPSC213, CPSC221
View Historical Averages for CPSC 310Principles 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.
Prerequisites: CPSC210
View Historical Averages for CPSC 312Systematic 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; and graph-theoretic, algebraic, and text processing algorithms.
Prerequisites: CPSC221, MATH200
View Historical Averages for CPSC 320Problem-solving and planning. State/action models and graph searching. Natural language understanding. Computational vision. Applications of artificial intelligence.
Prerequisites: CPSC221
View Historical Averages for CPSC 322Application 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.
Prerequisites: CPSC210
View Historical Averages for CPSC 330Models 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.
Prerequisites: CPSC221, MATH200, MATH221, STAT302
View Historical Averages for CPSC 340Basic tools and techniques, teaching a systematic approach to interface design, task analysis, analytic and empirical evaluation methods.
Prerequisites: CPSC210
View Historical Averages for CPSC 344Overview of relational and non-relational database systems, role and usage of a database when querying data, data modelling, query languages, and query optimization.
Prerequisites: CPSC210
View Historical Averages for CPSC 368Investigation 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.
Prerequisites: MATH307
View Historical Averages for CPSC 402Physical database design, indexing, external mergesort, relational query processing and optimization, transaction processing, concurrency control, crash recovery, special topics.
Prerequisites: CPSC213, CPSC304
View Historical Averages for CPSC 404Formulation 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.
Prerequisites: MATH307
View Historical Averages for CPSC 406The 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.
Prerequisites: CPSC320
View Historical Averages for CPSC 420Principles and techniques underlying the design, implementation and evaluation of intelligent computational systems. (Historically numbered CPSC 422; now offered as AI_V 422.)
Prerequisites: CPSC322
View Historical Averages for CPSC 422Introduction 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.
Prerequisites: CPSC221, MATH200
View Historical Averages for CPSC 425Advanced 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.
Prerequisites: CPSC340
View Historical Averages for CPSC 440Design 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.
Prerequisites: CPSC344, STAT200
View Historical Averages for CPSC 444Sequence alignment, phylogenetic tree reconstruction, prediction of RNA and protein structure, gene finding and sequence annotation, gene expression, and biomolecular computing.
Prerequisites: BIOL112, BIOL121, CPSC320
View Historical Averages for CPSC 445Introduction to representation and reasoning via topics such as search, problem-solving and planning, logic, and probabilistic graphical models.
Prerequisites: CPSC340
View Historical Averages for AI 322Advanced machine learning focused on deep learning in practice: mathematical foundations, models for unstructured, sequential, spatial, and graph data.
Prerequisites: CPSC340
View Historical Averages for AI 360Principles and techniques underlying the design, implementation and evaluation of intelligent computational systems.
Prerequisites: CPSC322
View Historical Averages for AI 422Fundamental program and computation structures. Introductory programming skills. Computation as a tool for information processing, simulation and modelling, and interacting with the world.
No prerequisites or corequisites.
View Historical Averages for CPSC 110Physical 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.
Corequisites: CPSC110
View Historical Averages for CPSC 121Design, development, and analysis of robust software components. Topics such as software design, computational models, data structures, debugging, and testing.
Prerequisites: CPSC110
View Historical Averages for CPSC 210Software 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.
Prerequisites: CPSC121, CPSC210
View Historical Averages for CPSC 213Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency.
Prerequisites: CPSC210, MATH220
View Historical Averages for CPSC 221Derivatives of elementary functions. Applications and modelling: graphing, optimization.
No prerequisites or corequisites.
View Historical Averages for MATH 100The definite integral, integration techniques, applications, modelling, infinite series.
Prerequisites: MATH100
View Historical Averages for MATH 101Analytic geometry in 2 and 3 dimensions, partial and directional derivatives, chain rule, maxima and minima, second derivative test, Lagrange multipliers, multiple integrals with applications.
Prerequisites: MATH101
View Historical Averages for MATH 200Sets and functions; induction; cardinality; properties of the real numbers; sequences, series, and limits. Logic, structure, style, and clarity of proofs emphasized throughout.
Prerequisites: MATH200
View Historical Averages for MATH 220Systems of linear equations, operations on matrices, determinants, eigenvalues and eigenvectors, diagonalization of symmetric matrices.
Prerequisites: MATH100
View Historical Averages for MATH 221Applications of linear algebra to scientific and engineering problems using computer algebra systems.
Prerequisites: MATH200, MATH221
View Historical Averages for MATH 307Classical, nonparametric, and robust inferences about means, variances, and analysis of variance, using computers. Emphasis on problem formulation, assumptions, and interpretation.
Prerequisites: MATH100
View Historical Averages for STAT 200Basic notions of probability, random variables, expectation and conditional expectation, limit theorems.
Prerequisites: MATH200
View Historical Averages for STAT 302The principles of cellular and molecular biology using bacterial and eukaryotic examples.
No prerequisites or corequisites.
View Historical Averages for BIOL 112Principles of storage and transmission of genetic variation; origin and evolution of species and their ecological interactions.
No prerequisites or corequisites.
View Historical Averages for BIOL 121