Homepage

#### First Year

- MAT157Y Analysis I
**Prof. Edward Bierstone** - MAT240H Algebra I
**Prof. Dror Bar-Natan** - MAT247H Algebra II
**Prof. Stephen Kudla** - MAT301H Groups and Symmetry (Abstract Algebra I)
- MAT099Y First-Year Learning Community for Mathematics
- STA257H Probability
- CSC108H Introduction to Computer Programming (Python I)
**Prof. Tom Fairgrieve** - CSC148H Introduction to Computer Science (Python II)
- CSC165H Mathematical Expression and Reasoning for Computer Science
- CSC240H Enriched Introduction to the Theory of Computation
**Prof. Faith Ellen**

#### Second Year

- MAT237Y Advanced Calculus
- PHL246H Probablity and Inductive logic
- CSC207H Software Design (Java)
- CSC209H Software Tools and Systems Programming (C)
- CSC258H Computer Organization
- CSC265H Enriched Data Structures and Analysis
**Prof. Faith Ellen** - CSC320H Introduction to Visual Computing
- CSC336H Numerical Methods
- CSC369H Operating Systems
- CSC384H Introduction to Artificial Intelligence
**Prof. Sheila McIlraith** - CSC411H Machine Learning and Data Mining
- [CSC165H] Mathematical Expression and Reasoning for Computer Science (I was a TA for 1 semester)

#### Third Year (including the summer semester before graduation)

- MAT244H Ordinary Differential Equations
- MAT315H Introduction to Number Theory
**Prof. Kumar Murty** - APM346H Partial Differential Equations
- MAT327H Introduction to Topology (Audit)
- MAT401H Polynomial Equations and Fields (Abstract Algebra II)
**Dr. Jonathan Korman** - APM462H Nonlinear Optimization
**Dr. Jonathan Korman** - CSC343H Introduction to Databases
**Prof. Diane Horton** - CSC373H Algorithm Design, Analysis and Complexity
- CSC418H Computer Graphics
- CSC448H Formal Languages and Automata
**Prof. Faith Ellen** - CSC485H Computational Linguistics
- CSC486H Knowledge Representation and Reasoning
- CSC494H Computer Science Project: LCG Correctness Proof. Supervised by Gerald Penn
- CSC2503 Foundations of Computer Vision
- CSC2517 Discrete Math Models of Sentence Structure (Audit)
- CSC2542 Topics in Knowledge Representation and Reasoning (Audit)
- [CSC263H] Data Structures and Analysis (I was a TA for 2 semesters)
**Prof. Sam Toueg, Prof. Francois Pitt**

#### Comments

- Like most other Chinese students, I had no programming background before I joined University of Toronto. I actually dropped my Python course (CSC148) once and retook it in my first year since I could not handle the course. So don't worry about your background. You can still do well in Computer Science without any background.
- I particularly admire those people in pure mathematics or applied mathematics. University of Toronto has a large number of pretty good mathematics courses and theoretical computer science courses. I heard that only less than 10 students could survive in the three mathematics specialists every year. Almost every mathematics course has two versions. I only took hard versions for my first 3 mathematics courses, and ended up taking easy versions for all the other mathematics courses I have taken. I am not good at Mathematics and not smart enough to take harder ones, but to some extent, I think Mathematics is important and I enjoy it. I wish I could take more mathematics courses.
- I think the most difficult computer science course at University of Toronto is CSC265H Enriched Data Structures and Analysis. It is extremely time-consuming and challenging. We only needed to solve one question every week, but we normally spent more than half of the week to deal with that question provided that Prof. Faith Ellen gave us a lot of hints. When I took the course, I always doubted whether my IQ is zero. I took 3 courses taught by Prof. Faith Ellen. Among all the 6 tests (midterm/final exams), I failed 5 times. However, the courses taught by Prof. Faith Ellen brought me a lot of good friends and unforgettable experience. Most students in CSC265H became TAs for the easy version of Data Structure CSC263H no matter how terrible they behaved in CSC265H (like me). A magic issue is that I felt that I almost could not understand anything about data structure when I was taking CSC265H, but when I was a TA for CSC263H, I realized that I had already understood almost all the contents. Prof. Faith Ellen is extremely nice and helpful. She is the person that I admire the most at University of Toronto.
- I think I am not shy, but I actually don't dare to go to office hours. I found that I only dare to go to office hours if a instructor talked to me in class first and then I would keep annoying him/her in office hours. Throughout my 3-year undergrad life in Toronto. I have only been to office hours of 2 instructors (Faith Ellen and Jonathan Korman) but kept annoying them for so many times. So when I became a TA, I tried to talk to as many students as I could.
- In the above course list, I marked all the instructors I like and highly recommend.