Honours Bachelor of Science (HBSc)

University of Toronto, St. George (Class of 2021)

Computer Science Specialist
(focusing in Theory of Computation and Artificial Intelligence)
Relevant courses:
  • Software Engineering
  • Basic software development infrastructure; requirements elicitation and tracking; estimation and prioritization; teamwork skills; basic UML; design patterns and refactoring; security, discussion of ethical issues, and professional responsibility.
  • Data Structures and Analysis
  • Algorithm analysis: worst-case, average-case, amortized complexity, expected worst-case complexity. Standard abstract data types, such as graphs, dictionaries, priority queues, and disjoint sets. A variety of data structures for implementing these abstract data types, such as balanced search trees, hashing, heaps, and disjoint forests. Design and comparison of data structures.
  • Advanced Algorithm Design
  • Advanced algorithm design techniques, with emphasis on the role that geometry, approximation, randomization, and parallelism play in modern algorithms. Examples drawn from linear programming and basics of continuous optimization; randomized algorithms for string matching, graph problems, and number theory problems; streaming algorithms and parallel algorithms in the Map-Reduce model.
  • Computational Complexity and Computability
  • Turing machines and other models of computation, Church’s thesis, computable and noncomputable functions, recursive and recursively enumerable sets, many-one reductions. P, NP, polynomial time reducibility, NP-completeness, self-reducibility, space complexity (L, NL, PSPACE and completeness for those classes), hierarchy theorems, and provably intractable problems.
Math Major
Relevant courses:
  • Linear Algebra
  • Fields, complex numbers, vector spaces over a field, linear transformations, matrix of a linear transformation, kernel, range, dimension theorem, isomorphisms, change of basis, eigenvalues, eigenvectors, diagonalizability, real and complex inner products, spectral theorem, adjoint/self-adjoint/normal linear operators, triangular form, nilpotent mappings, Jordan canonical form.
  • Graph Theory
  • Graphs, subgraphs, isomorphism, trees, connectivity, Euler and Hamiltonian properties, matchings, vertex and edge colourings, planarity, network flows and strongly regular graphs. Execute applications to such problems as timetabling, tournament scheduling, experimental design and finite geometries.
  • Nonlinear Optimization
  • First and second order conditions for finite and infinite dimensional optimization problems. Lagrange multipliers, Kuhn-Tucker conditions, convexity and calculus variations. Basic numerical search methods.
  • Ordinary Differential Equations
  • First order ordinary differential equations: Direction fields, integrating factors, separable equations, homogeneous equations, exact equations, autonomous equations, modeling. Existence and uniqueness theorem. Higher order equations: Constant coefficient equations, reduction of order, Wronskian, method of undetermined coefficients, variation of parameters. Solutions by series and integrals. First order linear systems, fundamental matrices. Non-linear equations, phase plane, stability.

Course descriptions adapted from the Faculty of Arts & Science Academic Calendar. Last updated: 2021-03-22.