Graduate Course Descriptions

(Note: Pre-approved non-Computer Science courses are listed at the bottom of this page)

CS 600 Graduate Co-op Report (3)
The student makes a formal presentation of the report.


CS 601 Graduate Co-op Work Term (6)
First work placement.


CS 602 Graduate Co-op Work Term (6)
Second work placement.


CS 802 Analysis and Design of Parallel Algorithms (3)
Theoretical and practical aspects of parallel algorithms; functional descriptions of various parallel models of computations; interconnection networks for multi-computers. Prior to registering in this course, students should have a background in parallel computing comparable to the senior undergraduate level.


CS 805 Computer Graphics (3)
Geometric and other advanced modelling techniques; image rendering and synthesis techniques; interactive graphics; issues in computer animation. Prior to registering in this course, students should have a background in computer graphics comparable to the senior undergraduate level.


CS 807 Interactive Hardware and Embedded Computing (3)
Hardware design for physical and pervasive computing systems. Wired and wireless communication protocols; sensors and actuators; resource constraints; location- and context-awareness. Applications include: wearable computing, wireless sensor networks, robotics and automation, internet of things. Embedded hardware platforms such as ARM (raspberry Pi) and AVR (Arduino).


CS 808 Advanced Animation Software Design (3)
Principles of animation. Current research areas in animation software design. Features and architecture of animation software. Timelines, motion pathways, parametric key framing, kinematics, gaseous phenomena, and facial animation.


CS 809 Interactive Entertainment Software (3)
This course surveys current research on the design and implementation of interactive entertainment software, including computer games. Topics include: interactivity, principles of interactive entertainment, hardware platforms, current software development tools and languages, game loop, design of virtual worlds and virtual characters, real-time requirements, incorporating multimedia resources, aesthetics.


CS 811 Theory of Computing (3)
Study of fundamental concepts of computer science from the theoretical point of view; basic concepts of computational complexity theory, algorithm analysis and their relation to the set of problems which can be programmed; "good" algorithm design. Prior to registering in this course, students should have a background in introductory compiler design, or algorithm analysis comparable to the senior undergraduate level.


CS 815 Computer Vision (3)
Sensing techniques; sensing data pre-processing; higher level scene descriptions; model-based recognition; motion analysis. Prior to registering in this course, students should have a background in image processing comparable to the senior undergraduate level.


CS 820 Artificial Intelligence (3)
Logics; natural language processing; knowledge representation; uncertainty reasoning; machine learning; expert systems; neural networks. Prior to registering in this course, students should have a background in artificial intelligence comparable to the senior undergraduate level.


CS 824 Information Retrieval (3)
Content analysis; types of storage and retrieval systems; retrieval models; information theory; multimedia retrieval; hypertext; information network and inference. Prior to registering in this course, students should have a background in algorithms and data structures, and database and information retrieval comparable to the senior undergraduate level.


CS 825 Image Processing (3)
Image models; image transformations; enhancement and restoration techniques; image segmentation; feature extractions and higher level descriptions. Prior to registering in this course, students should have a background in image processing, and numerical and symbolic computing comparable to the senior undergraduate level.


CS 826 Bioinformatics and Biomedical Applications (3)
This course provides an introduction to research in bioinformatics, which is the analysis of biological and medical data. Topics include sequence and image analysis, modelling of complex processes, biomedical database organization, and biomedical data mining. Selected biomedical data applications are also examined.


CS 827 Computer Audio (3)
Representation of audio, audio compression, spatialization and surround sound. Analysis and synthesis of sound waveforms. Speech and music. Temporal and spectral processing.


CS 828 Human Computer Communication (3)
Theory and practice related to the design and implementation of usable software and easy-to-learn interfaces. Specific topics will include user-centered design and task analysis; prototyping and the iterative design cycle; interface design and methods of evaluation.


CS 829 Information Theory and Applications (3)
This course covers the fundamentals of information theory and its application in content distribution over the Internet. Topics covered include: information theory, channel codes, content distribution network, and peer-to-peer network coding. Prior to registering in this course, students should have a background in data communications and networks comparable to the senior undergraduate level.


CS 830 Machine Learning (3)
Models of learning; inductive inference; constructive and selective induction; learning from examples; explanation-based learning; machine discovery; grammatical inference; knowledge acquisition; applications. Prior to registering in this course, students should have a background in artificial intelligence comparable to the senior undergraduate level.


CS 831 Knowledge Discovery in Databases (3)
Knowledge discovery from databases is the nontrivial extraction of implicit, previously unknown, and potentially useful information from databases. This course focuses on data sources, extraction techniques, efficiency concerns, and measures of novelty and usefulness. Prior to registering in this course, students should have a background in database and information retrieval, and artificial intelligence comparable to the senior undergraduate level.


CS 833 Operating Systems (3)
Multiple processes and scheduling; resource management; storage management; file systems; deadlock problem; queuing models; distributed systems; fault tolerant systems; operating systems for parallel architectures. Prior to registering in this course, students should have a background in an introduction to operating systems, and computer system architecture comparable to the senior undergraduate level.


CS 834 Software Security (3)
This course surveys emerging research directions in software-based protection mechanisms, with an emphasis on approaches that employ programming language technologies to address security challenges. Topics covered include: Java security, stack inspection, inlined reference monitors, proof-carrying code, certifying compilers, type systems for information flow control, characterization of enforceable policies. Prior to registering in this course, students should have a background in operating systems and either programming languages or introductory compiler design comparable to the senior undergraduate level.


CS 835 Pattern Recognition (3)
Statistical pattern recognition; parameter estimation and supervised learning; non-parametric techniques; linear discriminant functions; unsupervised learning and clustering; syntactic pattern recognition; applications. Prior to registering in this course, students should have a background in algorithms and data structures comparable to the senior undergraduate level.


CS 836 Rough Sets and Applications (3)
Theory of rough sets is a fundamental mathematical methodology for modelling classification or decision problems involving imprecise or uncertain information. Its implications include pattern classification , data mining, machine learning, control algorithm acquisition from data, circuit design and others. The course will provide the basics of methodology and will include the study of the above applications of rough sets. Prior to registering in this course, students should have a background in discrete computational structures, artificial intelligence and statistical methods comparable to the senior undergraduate level.


CS 837 Information Visualization (3)
Information Visualization focuses on the design, development, and study of interactive visualization techniques for the analysis, comprehension, exploration, and explanation of large collections of abstract information. Topics to be covered include principles of visual perception, information data types, visual encodings of data, representations of relationships, interaction methods, and evaluation techniques.


CS 838 Uncertain Reasoning in AI (3)
Advances in using uncertain knowledge to make decisions rationally and effectively (for diagnosis, trouble shooting, robot navigation, etc.). Focus on probabilistic approach and graphical modeling to aid inference. Topics include criteria for uncertainty management, comparison of schemes, Bayesian/Markov networks, influence diagrams, chain graphs, inference algorithms, elicitation and learning of belief networks. Prior to registering in this course, students should have a background in discrete computational structures, artificial intelligence and statistical methods comparable to the senior undergraduate level.


CS 839 Web Intelligence and Electronic Commerce (3)
The course investigates research topics related to web intelligence and electronic commerce. The topics include: web technology, network infrastructure, web-based business models, agents, Extended Markup Language, web mining, security, web information filtering and retrieval, and intelligent information systems.


CS 855 Mobile Computing (3) - course anticipated to be approved for Winter 2015
Mobile Computing focuses on conducting research in the design, development, and evaluation of software in a networked mobile environment. The primary topics to be covered in the course include network computing, graphics programming, human-computer interaction, and evaluation methods, all focused on the challenges and opportunities afforded by modern mobile computing devices.


CS 872 Software Engineering (3)
Review of fundamental concepts; project planning; requirements analysis; program design, implementation and testing; object-oriented development; metrics and cost estimation; software reuse; CASE technology; configuration management; software engineering and Ada. Prior to registering in this course, students should have a background in software engineering methodology comparable to the senior undergraduate level.


CS 875 Database Systems (3)
Database management system architecture; relational, network and hierarchical data models; theoretical and practical aspects of database applications; study of data definition and data manipulation facilities and database management systems; security and integrity; distributed database management system architecture. Prior to registering in this course, students should have a background in advanced topics in database systems, and database and information retrieval comparable to the senior undergraduate level.


CS 890AA-ZZ Directed Readings (3)
Readings in programming languages; artificial intelligence; numerical computation; database management systems; graphics and computer vision; architecture; software engineering.

List of Previous Directed Reading Courses


CS 900 Computer Science Graduate Seminar (0)
CS Graduate students must complete two semesters of CS900. A student is required to make one presentation in each semester that they are enrolled in the seminar course and attend all scheduled presentations by their peers. In CS900-001, the student will choose a topic within their research area. In CS 900-002, the student chooses a topic within their own research.

For more information about seminars, see Graduate Program / Graduate Seminars.


CS 901 Research (Variable credit 3-15)
Thesis research.


CS 902 Computer Science Project Research (Variable Credit 3-6)
A supervisor approved project requiring an in-depth student investigation of a CS problem.


CS 903 Computer Science Project Report (3)
Project report, presentation, and defense are compulsory components that members of the examination committee, including the supervisor or co-supervisors and two or more faculty members, must deem acceptable.


Pre-Approved Non-Computer Science Courses

The following courses have been pre-approved and will satisfy the non-CS course requirement in all CS graduate programs listed above. Please note that this is not meant to be an exhaustive list of the non-CS courses that may be taken. Its only purpose is to itemize those courses that have already been examined and approved. Students are encouraged to consider courses not on the list that are relevant to their programs, while being reminded that all non-CS courses not on the list must be approved.

  • Courses in Electronic Systems Engineering: ENEL 489, 492, 495, 811, 812, 813, 850, 857
  • Courses in Software Systems Engineering: ENSE 483, 882, 885AJ
  • Courses in Mathematics and Statistics: MATH 809, 827, 869, STAT 852, 871
  • Courses in Busness Administration: GBUS 866


To Top of Page