CMPUT 498 TODO- Advanced AlgorithmsA topics course targeted for senior undergraduate and graduate students interested in TCS. Covers classic topics and more recent advances in streaming and sketching algorithms for big data, online and randomized algorithms, and approximation algorithms.
CMPUT 429 TODO- Computer Systems and ArchitectureA discussion of computer system design concepts with stress on modern ideas that have shaped the high-performance architecture of contemporary systems. Instruction sets, pipelining, instruction-level parallelism, register reuse, branch prediction, CPU control, cache- coherence, accelerators, and related concepts. Memory technologies, caches, I/O, high-performance networks.
2026
Fall
CMPUT 415 TODO- Compiler DesignCompilers, interpreters, lexical analysis, syntax analysis, syntax-directed translation, symbol tables, type checking, flow analysis, code generation, and code optimization.
CMPUT 304 TODO- Algorithms IIThe second course of a two-course sequence on algorithm design. Emphasis on principles of algorithm design. Categories of algorithms such as divide-and-conquer, greedy algorithms, dynamic programming; analysis of algorithms; limits of algorithm design; NP-completeness; heuristic algorithms.
Summer
MATH 315 TODO- Calculus IVVector calculus, line and surface integrals, the divergence, Green's, and Stokes' theorems, and differential forms.
Winter
CMPUT 481 Parallel and Distributed SystemsIntroduction to parallel programming, parallel and distributed systems, and high-performance computing, covering both shared-memory parallel computers and distributed-memory multicomputers.
CMPUT 398 Distributed Systems ArchitectureTopics course covering distributed systems architecture, focusing on client-server computing.
ECE 421 Exploring Software Development DomainsAdvanced programming concepts including productivity, components and re-use, object-oriented construction, systems programming, concurrent programming, distributed programming, and GUI programming.
2025
Fall
CMPUT 496 Cryptography and Digital PrivacyTopics course covering cryptographic primitives, public-key cryptography, digital signatures, and privacy-preserving protocols.
CMPUT 267 Machine Learning IIntroduction to the fundamental statistical, mathematical, and computational concepts in analyzing data, providing a solid foundation in the mathematics of machine learning.
Spring
STAT 265 Probability and Statistics ICombinatorial probability, conditional probability, Bayes' Theorem, random variables, discrete and continuous distributions, expected values, moment generating functions, and multivariate distributions.
MATH 322 Graph TheoryGraphs, paths and cycles, trees, planarity and duality, coloring problems, digraphs, matching problems, and matroid theory.
Winter
CMPUT 291 Introduction to Database and File ManagementEntity-relationship model, relational model, SQL and relational query languages, storage architecture, physical organization of data, and access methods for relational data.
CMPUT 229 Computer Organization and ArchitectureNumber representation, instruction-set architecture, assembly-level programming, procedures, stack frames, memory access, exception handling, computer arithmetic, datapath, control logic, pipelining, and memory hierarchy.
CMPUT 204 Algorithms IFundamentals of searching, sorting, and graph algorithms, covering divide and conquer, dynamic programming, greedy methods, backtracking, and local search, with analysis techniques to estimate program efficiency.
2024
Fall
MATH 217 Honors Calculus IIIAxiomatic development of the real number system, topology of Rn, sequences, limits and continuity, multi-variable calculus including differentiation and integration, the chain rule, Taylor's formula, and vector field theory.
MATH 328 Group TheoryGroups, subgroups, homomorphisms, symmetry groups, permutations, Cayley's Theorem, group actions, cosets and Lagrange's Theorem, normal subgroups, quotient groups, isomorphism theorems, and finite Abelian groups.
CMPUT 272 Formal Systems and Logic in Computing ScienceIntroduction to set theory, logic, and induction, and their use in reasoning about algorithms and programs; propositional and predicate logic, proof systems, inductive definitions, and program specification and correctness.
Winter
CMPUT 201 Practical Programming MethodologyPrinciples, methods, tools, and practices of the professional programmer, focusing on abstract data types and their implementations, with an intensive apprenticeship using C and Unix tools.
MATH 118 Honors Calculus IIIntegration and the Fundamental Theorem, techniques and applications of integration, derivatives and integrals of exponential and trigonometric functions, infinite series, and introduction to partial derivatives.
MATH 227 Honors Linear Algebra IIQuotients and direct sums, Cayley-Hamilton, canonical forms, real and complex inner product spaces, orthogonality, singular value decomposition, and introduction to abstract algebra including groups, rings, and modules.
2023
Fall
MATH 117 Honors Calculus IFunctions, continuity, and the derivative; applications of the derivative; extended limits and L'Hospital's rule.
MATH 127 Honors Linear Algebra ILinear equations, Euclidean spaces and matrices, complex numbers and fields, vector spaces, introductions to groups and rings, permutation groups, determinants, and eigenvalues and eigenvectors.
CMPUT 175 Introduction to Foundations of Computation IIContinuation of CMPUT 174 with greater depth and complexity, exploring objects, functional programming, abstract data types, and searching and sorting algorithms studied in terms of time and space efficiency.