# education

### 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.