Courses by Research Area for the Comprehensive Course Requirement

Computational Intelligence (Faculty contact:  Dr. Giuseppe Carenini)
422:  Intelligent Systems
502:  Artificial Intelligence I
503:  Computational Linguistics I
515:  Computational Robotics
522:  Artificial Intelligence II
532:  Topics in Artificial Intelligence

Data Management and Analysis (Faculty contact:  Dr. Rachel Pottinger)

340:  Machine Learning and Data Mining
504:  Data Management
534:  Topics in Data Management
540:  Machine Learning
550:  Machine Learning II
564:  Data Mining

Graphics and Vision (Faculty contact for Graphics:  Dr. Michiel van Panne; Faculty contact for Vision:  Dr. Leonid Sigal)
314:  Computer Graphics (previously numbered as 414)
424:  Geometric Modeling
425:  Computer Vision
426:  Computer Animation
505:  Image Understanding I: Image Analysis
514:  Computer Graphics: Rendering
524:  Computer Graphics: Modeling
525:  Image Understanding II: Scene Analysis 
526:  Computer Animation
533:  Topics in Computer Graphics 
535:  Topics in Simulation and Optimization (subject to topics)

HCI (Faculty contact:  Dr. Karon MacLean)
344:  Introduction to Human Computer Interaction Methods
543:  Physical User Interface Design and Evaluation
544:  Human-Computer Interaction
554: Topics in HCI (as indicated on the graduate course schedule)
444:  Advanced Methods for Human Computer Interaction (may be counted on an individual case-by-case basis. Students should obtain permission from the Faculty Contact in HCI)

Scientific Computing (Faculty contact:  Dr. Chen Greif)
402:  Numerical Linear Algebra
403:  Numerical Solution of Ordinary Differential Equations
406:  Computational Optimization
517:  Sparse Matrix Computation
520:  Numerical Solution of Differential Equations
542:  Topics in Numerical Computation
546:  Numerical Optimization

Software Engineering and Programming Languages (Faculty contact:  Dr. Ron Garcia)
507:  Software Engineering
509:  Programming Language Principles
511:  Implementation of Programming Languages
519:  Logic Programming and Functional Programming
529:  Definition of Programming Languages
539:  Topics in Programming Languages

Systems (Faculty contact:  Dr. Thomas Pasquier)
415:  Advanced Operating Systems
416:  Distributed System
417:  Computer Networking
418:  Parallel Computation
508:  Operating Systems
521:  Parallel Algorithms and Architectures
527:  Computer Communication Protocols
538:  Topics in Computer Systems

Theory (Faculty contact:  Dr. Will Evans)
420:  Advanced Algorithm Design & Analysis
421:  Introduction to Theory of Computing
500:  Fundamentals of Algorithm Design and Analysis
501:  Theory of Automata, Formal Languages and Computability
506:  Complexity of Computation
516:  Computational Geometry 
531:  Topics in Theory of Computation 
536:  Topics in Algorithms and Complexity
537:  Topics in Coding and Information Theory

Interdisciplinary
405:  Modelling and Simulation (Faculty contact:  Dr. Dinesh Pai)
445:  Algorithms in Bioinformatics  (Faculty contact for Bioinformatics:  Dr. Anne Condon)
513:  Integrated Systems Design (Faculty contact:  Dr. Alan Hu)
530: Topics in Information Processing (subject to topic)
532:  Topics in AI:  Multi-Agent Systems  (Faculty contact:  Dr. Kevin Leyton-Brown)
545:  Algorithms for Bioinformatics  (Faculty contact for Bioinformatics:  Dr. Anne Condon)
547:  Information Visualization (Faculty contact: Dr. Tamara Munzner)
*Besides the courses listed above, graduate courses from other departments that have relevance to computer science or the student’s research area can be counted in the interdisciplinary area. If a student wishes to count such as course towards their Comprehensive Course Requirement, then their research supervisor adjudicates on whether it should qualify; if so, the supervisor should write a short (typically 2-3 sentence) rationale to be sent along with the CCR.