Computer Science

Faculty List

(As of March, 2023. For an up-to-date list of faculty and administrative roles, please see

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 

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 (University of Toronto Mississauga) 
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 
A. Nikolov, PhD 
B. Rossman, PhD 
S. Saraf, 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. Garg, PhD (University of Toronto Mississauga) 
I. Gilitschenski, PhD (University of Toronto Mississauga) 
R. G. Krishnan, 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 
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 
M. Badr, PhD 
J. Calver, PhD 
S. Coyne, PhD (CLTA) 
A. Gao, PhD 
A. Lee, PhD (CLTA) 
S. Sharmin, PhD 
L. Shorser (CLTA) 
J. Sun 

Cross Appointed 
C. Amza, PhD 
B. Armstrong, PhD 
G. Bader, PhD 
T. Barfoot, PhD 
C. Beck, PhD 
B. Beekhuizen, 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 
A. Johnson, PhD 
I. Jurisica, PhD 
L. Kahrs, PhD 
J. Kelly, PhD 
F. Khalvati, PhD 
P. Kim, PhD 
B. Li, MSc, PhD 
D. Lie, PhD 
J. Liebeherr, PhD 
K. Lyons, MSc, 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 
H. Rost, PhD 
F. Roth, PhD 
D. Roy, PhD 
S. Sanner, PhD 
J. Simpson, 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 
D. Yuan, PhD 
Z. Zhang, PhD 
S. Zhou, PhD 

Adjunct and Status Only 
O. Balmau, PhD 
D. Berry, PhD 
M. Brubaker, PhD 
A. Butscher, PhD 
B. Buxton, MSc 
P. Dietz, PhD 
A. Farahmand, PhD 
L. Frermann 
M. Gabel, PhD 
M. Ghassemi, PhD 
G. Gibson, PhD 
M. Grech, MBA 
H. Huang, PhD 
D. Kaufmann, PhD 
C. Kemp, PhD 
H. Kontozopoulos 
A. Kreinen, PhD 
G. Lakemeyer, PhD 
C. Landreth 
F. Rudzicz, PhD 
B. Taati, PhD 
A. Tagliasaachi, PhD 
M. Tremaine, PhD (Emerita) 
J. Tsotsos, PhD 
R. Valenzano, PhD 
H. Yuen, PhD 


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

You can pursue Specialist programs in Computer Science or Data Science, or a Major or Minor in Computer Science. 

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:


Arts & Science Internship Program (ASIP)

Starting Fall 2021, the new 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


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: Website: