Computer Science


Faculty List

(As of April, 2024. For an up-to-date list of faculty and administrative roles, please see https://web.cs.toronto.edu/people/faculty-directory)

University Professors Emeriti 
S. Cook, SM, PhD, FRS, FRSC 
G. Hinton, PhD, FRS, FRSC 

Professors Emeriti 
R. Baecker, MSc, PhD 
D. Corneil, MA, PhD 
J. Danahy, MScUrb & DesPl 
W. Enright, MSc, PhD (University of Toronto Scarborough) 
E. Fiume, PhD, FRSC 
E. Hehner, MSc, PhD 
G. Hirst, MSc, PhD (University of Toronto Scarborough) 
K. Jackson, MSc, PhD 
A. Jepson, PhD 
H. Levesque, MSc, PhD, FRSC 
R. Miller, MSc, PhD, FRSC 
J. Mylopoulos, MSc, PhD, FRSC 
R. Neal, PhD 
C. Rackoff, PhD (University of Toronto Mississauga) 
D. Wortman, MSc, PhD 

Associate Professor, Teaching Stream Emeritus 
D. Heap, MSc 

Senior Lecturer Emeritus 
J. Clarke, MSc, PhD 

University Professor 
A. Borodin, MSc, PhD, FRSC 

Professor and Chair of the Department 
E. de Lara, MSc, PhD 

Professors 
T. Abdelrahman, MSc, PhD 
A. Aspuru-Guzik, PhD 
R. Balakrishnan, MSc, PhD 
A. Brown, MSc, PhD 
M. Brudno, MSc, PhD 
M. Chechik, MSc, PhD 
C. Christara, MSc, PhD 
E. de Lara, MSc, PhD 
S. Dickinson, MSc, PhD 
S. Easterbrook, PhD 
F. Ellen, MMath, PhD 
A. Farzan, PhD 
D. Fleet, MSc, PhD (University of Toronto Scarborough) 
Y. Ganjali, MSc, PhD 
A. Goldenberg, MSc, PhD 
E. Grinspun, PhD 
A. Gupta, PhD 
V. Hadzilacos, PhD (University of Toronto Scarborough) 
N. Koudas, MSc, PhD (University of Toronto Scarborough) 
K. Kutulakos, MSc, PhD 
P. Marbach, MSc, PhD 
S. McIlraith, MMath, PhD 
M. Molloy, MMath, PhD (University of Toronto Scarborough) 
G. Penn, MSc, PhD 
T. Pitassi, MSc, PhD 
B. Schroeder, MSc, PhD (University of Toronto Scarborough) 
K. Singh, MSc, PhD 
S. Stevenson, MSc, PhD 
L. Strug, PhD 
S. Toueg, MA, PhD 
K. Truong, PhD 
R. Urtasun, PhD 
D. Wigdor, MSc, PhD
R. Zemel, MSc, PhD 

Associate Professors 
A. Bonner, MSc, PhD (University of Toronto Mississauga) 
J. Burgner-Kahrs, PhD (University of Toronto Mississauga) 
D. Duvenaud, PhD 
S. Fidler, PhD (University of Toronto Mississauga) 
R. Grosse, PhD 
T. Grossman, PhD 
A. Jacobson, PhD 
S. Kopparty, PhD 
D. Levin, PhD 
M. Mehri Dehnavi, PhD 
K. Meel, PhD
A. Nikolov, PhD 
G. Pekhimenko, PhD (University of Toronto Scarborough)  
C.Raffel, PhD
S. Sachdeva, PhD (University of Toronto Mississauga) 
S. Saraf, PhD 
N. Shah, PhD 
Y. Xu, PhD 

Assistant Professors 
I. Ahmed, PhD 
A. Anderson, PhD (University of Toronto Scarborough) 
J. Ba, PhD 
F. Chevalier, PhD 
N. Dayan, PhD 
M. Erdogdu, PhD 
A. Farahmand, PhD (CLTA)
I. Gilitschenski, PhD (University of Toronto Mississauga) 
R. G. Krishnan, PhD 
A. Levis, PhD
D. Lindell, PhD 
F. Long, PhD 
C. Maddison, PhD 
A. Mariakakis, PhD 
C. Nobre, PhD 
G. Pekhimenko, PhD (University of Toronto Scarborough) 
S. Sachdeva, PhD (University of Toronto Mississauga) 
G. Saileshwar, PhD (University of Toronto Mississauga) 
K. Serkh, PhD 
N. Shah, PhD 
F. Shkurti, PhD (University of Toronto Mississauga) 
X. Si, PhD 
R. Soden, PhD 
A. Srinivasan, PhD (University of Toronto Mississauga) 
R. Tell, PhD (University of Toronto Scarborough)
N. Vijaykumar, PhD (University of Toronto Scarborough) 
B. Wang, PhD 
N. Wiebe, PhD 
J. Williams, PhD 
N. Xie, PhD 
Y. Xu, PhD 
Q. Zhang, PhD (University of Toronto Scarborough) 

Professors, Teaching Stream 
J. Campbell, MMath 
M. Craig, MSc 
S. Engels, MMath, PhD 
P. Gries, MEng 
D. Horton, MSc 
K. Reid, MSc 

Associate Professors, Teaching Stream 
G. Baumgartner, MSc 
T. Fairgrieve, MSc, PhD 
D. Liu, MSc 
F. Pitt, MSc, PhD 
J. Smith, MSc 

Assistant Professors, Teaching Stream 
B. Aameri, PhD (CLTA)
M. Badr, PhD 
J. Calver, PhD 
S. Coyne, PhD (CLTA) 
A. Gao, PhD 
S. Sharmin, PhD 
L. Shorser (P/T) 
J. Sun (CLTA)

Cross Appointed 
G. Bader, PhD 
T. Barfoot, PhD 
C. Beck, PhD 
J. Cafazzo, PhD 
K. Campbell, PhD 
M. Chignell, PhD 
E. Cohen, PhD 
N. Enright-Jerger, PhD 
M. Fox, PhD 
B. Frey, PhD 
A. Goel, PhD 
M. Gruninger, PhD 
S. Guha, PhD 
B. Haibe-Kains, PhD 
M. Hoffman, PhD 
H.A. Jacobsen, MSc, PhD 
M. Jeffrey, PhD 
I. Jurisica, PhD 
L. Kahrs, PhD 
J. Kelly, PhD 
F. Khalvati, PhD 
P. Kim, PhD 
A. Kuzminykh, PhD
B. Li, MSc, PhD
S.Li, PhD
D. Lie, PhD 
M. Luit, PhD
K. Lyons, MSc, PhD
A. Madani, PhD 
T. Maharaj, PhD 
R. McEwen, PhD 
C. McIntosh, PhD 
A. Mihailidis, PhD 
Q. Morris, PhD 
A. Moses, PhD 
A. Moshovos, PhD 
C. Munteanu, PhD 
N. Papernot, PhD 
V. Papyan, PhD 
A.Petersen, PhD
H. Rost, PhD 
D. Roy, PhD 
S. Sanner, PhD 
D. Singh, PhD 
M. Stumm, MSc (Math), PhD 
Y. Sun, PhD 
T. Tang, PhD 
A. Veneris, MSc, PhD 
E. Yu, MSc, PhD (Professor Emeritus) 
W. Yu, PhD 
Z. Zhang, PhD 
S. Zhou, PhD 

Adjunct and Status Only 
O. Balmau, PhD 
D. Berry, PhD 
M. Brubaker, PhD 
B. Buxton, MSc 
P. Dietz, PhD 
L. Frermann 
M. Gabel, PhD 
M. Ghassemi, PhD 
G. Gibson, PhD 
H. Huang, PhD 
D. Kaufmann, PhD 
C. Kemp, PhD 
H. Kontozopoulos 
A. Kreinen, PhD 
K. Kluchnikov
K. Kuber
G. Lakemeyer, PhD 
M. McCarthy
M. Medland
F. Rudzicz, PhD 
B. Taati, PhD 
A. Tagliasaachi, PhD 
R. Valenzano, PhD 
H. Yuen, PhD 

Introduction

What is Computer Science?

Despite the name, Computer Science is not really a science of computers at all. Computers are quite remarkable electronic devices, but even more remarkable is what they can be made to do: simulate the flow of air over a wing, manage communication over the Internet, control the actions of a robot, synthesize realistic images, play grandmaster-level chess, learn how to automatically translate between languages, and on and on. Indeed, the application of computers in activities like these has affected most areas of modern life. What these tasks have in common has little to do with the physics or electronics of computers; what matters is that they can be formulated as some sort of computation. This is the real subject matter of Computer Science: computation, and what can or cannot be done computationally.

In trying to make sense of what we can get a computer to do, a wide variety of topics come up. There are, however, two recurring themes. The first is the issue of scale: how big a system can we specify without getting lost in the design, or how big a task can a computer handle within reasonable bounds of time, memory, and accuracy? A large part of Computer Science deals with these questions in one form or another. In the area of programming languages and methodology, for example, we look for notations for describing computations, and programming methodologies that facilitate the production of manageable and efficient software. In the theory of computation area, we study resource requirements in time and memory of many basic computational tasks.

The second theme concerns the scope of computation. Computers were originally conceived as purely numerical calculators, but today, we tend to view them much more broadly. Part of Computer Science is concerned with understanding just how far computational ideas can be applied. In the area of artificial intelligence, for example, we ask how the function of the human brain can be expressed in computational terms. In the area of human-computer interaction, we ask what sorts of normal day-to-day activities of people might be supported and augmented using computers.

 

Computer Science Programs

Current students registered in the Faculty of Arts & Science interested in Computer Science (CS) can pursue the following programs:  

  • CS Major (ASMAJ1689)  
  • CS Minor (ASMIN1689)  
  • Data Science Specialist (ASSPE1687)  

Current students in the first-year Computer Science admission category (CMP1) may also apply to:  

  • CS Specialist (ASSPE1689)  

A Minor in Computer Science provides an introduction to theoretical and applied computer science as a complement to your studies in other areas, and allows you to take up to three 300+ level computer science courses.

A Major in Computer Science builds on the content of the Minor, preparing you for upper-year computer science study with options to explore a few topics more deeply. Students enrolled in the Computer Science Major can integrate their studies with another discipline.

A Specialist in Computer Science goes beyond the Major, providing a broad and deep foundation to computer science, and exposes you to a broad range of upper-year computer science topics.

Students enrolled in the Major or Specialist can choose to complete a Focus in a particular area of computer science, such as: Artificial Intelligence, Human-Computer Interaction, or the Theory of Computation, among others. See below for a full list of focuses and their respective courses.

 

Applying to Computer Science Programs

For enrolment requirements please refer to the individual program requirements. There are separate admission requirements and introductory courses for students admitted to the Computer Science admission stream (CMP1) and students admitted to other admissions categories. More information, including information about the supplemental application form, is available on the Department of Computer Science website at: https://web.cs.toronto.edu/undergraduate/how-to-apply

 

Arts & Science Internship Program (ASIP)

The Arts & Science Internship Program (ASIP) stream is available to students who are entering Year 2 or Year 3 of study and enrolled in the Data Science Specialist, Computer Science Specialist, or Computer Science Major. 

  • Enrolment is limited and requires a supplemental application. Students enrolled in the ASIP stream will be required to complete mandatory Professional Development programming plus a minimum of 12 and maximum of 20 months (Year 2 entry) or a minimum of 12 and maximum of 16 months (Year 3 entry) of paid, full-time work experience. The time to degree completion for students enrolled in ASIP will normally be 5 years. There is an additional cost to participate in the ASIP stream.
     
  • Students will typically be admitted to the ASIP stream for the Fall term of Year 2 of study, however in exceptional circumstances students, including transfer students, who enrolled in an eligible program in the Summer after Year 2 can be admitted to the ASIP stream for the Fall of Year 3. Acceptance into an ASIP stream in Year 3 is dependent on space and requires approval of the student’s academic unit and the Faculty of Arts & Science Experiential Learning & Outreach Support (ELOS) Office. Please refer to the ASIP eligibility page for further details.
     
  • Further details about ASIP, including eligibility requirements and application procedures, can be found here. Students may also visit the ASIP webpage or contact the ELOS office at asip@utoronto.ca

 

Contact Information

The Department of Computer Science is committed to providing academic support to our students throughout the duration of their undergraduate studies. Our undergraduate program office can provide St. George Computer Science students with advice on course selection, program admission, research and experiential learning opportunities, and ways to get involved in the CS community.

Contact us at Bahen Building, Room 4207, 40 St. George Street. Email: cs.undergrad@utoronto.ca. Website: web.cs.toronto.edu

 

Computer Science Programs


Regarding Computer Science Courses

Courses Equivalent to CSC148H1 and CSC165H1/CSC240H1

Only grades from CSC148H1 and CSC165H1/ CSC240H1 (completed on the St. George campus) will be accepted for purposes of application to the Computer Science Specialist, Major and Minor and the Data Science Specialist. However, equivalent courses will be accepted for purposes of prerequisites for course enrolment.

 

Enrolment Notes

  1. Priority enrolment: Most CSC courses at the 200-level and above offer priority enrolment to students in Computer Science programs. Consult the Timetable for details.
  2. Limits to upper-level courses: Students not enrolled in Computer Science Major or Specialist programs are limited to a maximum of three 300+ level CSC/ECE half-credit courses (1.5 credits). Students enrolled in the Engineering Science Robotics Engineering, Electrical and Computer Engineering, or Machine Intelligence Majors may take a maximum of four 300+ level courses in the Department of Computer Science (CSC). Students enrolled in the Arts & Science Bioinformatics and Computational Biology Specialist may take a maximum of five 300+ level CSC/ECE half-credit courses (2.5 credits).
  3. Completion of CS Minor without program enrolment: Students who complete the requirements of CS Minor and are not enrolled in the CS Minor program may request to be enrolled in the CS Minor during their final term of studies. Please contact cs.undergrad@utoronto.ca for more information.
  4. Prerequisites: For Arts & Science students, no requests to waive prerequisites are considered in 200-level courses except for CSC240H1 and CSC265H1, where appropriate, and students without prerequisites will be removed from the course. For upper-level courses, students without prerequisites must obtain permission to remain enrolled in the course through the department's prerequisite waiver process. Please contact cs.undergrad@utoronto.ca for information about the prerequisite waiver process.
  5. Students with transfer credits: If you have transfer credits in Computer Science, or a similar subject, for courses done at another university or college, contact our Undergraduate Office (cs.undergrad@utoronto.ca) for advice on choosing courses. Also ask for advice even if you don’t have transfer credits yet but are considering degree study at the University of Toronto.
  6. First-Year Foundations Seminars: First-Year Foundations Seminars are open only to newly-admitted, Faculty of Arts & Science students (3.5 credits or less). They are full-credit or half-credit courses that focus on discussion of issues, questions and controversies surrounding a particular discipline (or several disciplines) in a small-group setting that encourages the development of critical thinking, writing skills, oral presentation and research methods. FYF seminars are as rigorous and demanding as any other first-year course and require in addition the acquisition of those skills expected of successful undergraduate students. With a maximum enrolment of 30 students each, they are an ideal way to have an enjoyable and challenging small-class experience in your first year. First-Year Foundations Seminars count as 0.5 or 1.0 of the 20.0 credits required for an HBA, HBSc or BCom and can be counted towards the breadth requirement.

 

Advice on choosing courses towards a Major in Computer Science

A Major program in any discipline may form part (but not the whole) of your degree requirements. The Major program in Computer Science is designed to include a solid grounding in the essentials of Computer Science, followed by options that let you explore one or a few topics more deeply. You will also realize what areas you have not studied and be ready to explore them if your interests change after completing the Major.

To give you freedom to choose your path through Computer Science, we have designed the Major to include a minimal set of required courses. There are some courses that we think you ought to consider carefully as you make those choices. CSC373H1 is fundamental to many more advanced Computer Science topics, where designing appropriate algorithms is central. CSC209H1 is a prerequisite to effective work in many application areas. Additionally, you may wish to select a Focus as part of your Major program.

A significant role of the Major is to allow you to integrate your studies in Computer Science and another discipline. For example, many Computer Science students are also interested in statistics, economics, physics or mathematics. In those cases, it makes sense to enrol in a Major in one discipline and either a Major or a Specialist in the other. If your interests are evenly balanced, the obvious choice is to do two Majors, and that is what we assume here. Explore some more suggestions from the department about combining Computer Science with other programs.

If you are doing two Majors in related disciplines, you might want to consult your college registrar’s office for advice on satisfying the degree requirements with overlapping Majors.

A Major program may not be enough to prepare you for graduate study in Computer Science, though a complete Specialist is not typically required. Consult the undergraduate office (cs.undergrad@utoronto.ca) for advice and referrals if you are a student in the Major considering graduate study in Computer Science.

 

Computer Science Courses

Printer-friendly Version