You are now in the main content area

Computer Science (MSc, PhD)

Overview

This highly applied, practical and useful program concentrates on real-world problems to which students can apply their existing knowledge, discover new techniques and methods, and work on solutions with the guidance of highly qualified, engaged and caring faculty supervisors who work with students for their success.

Degrees awarded: MSc, PhD

Administered by: Faculty of Science

Computer Science graduate program website

 (PDF file) Computer Science graduate program calendar 2024-25

Curriculum

Course Code Degree Requirements: Master of Science Credits
 

Thesis Option

 

 

Master’s Thesis*

(Milestone)

 

Master’s Seminar*

(Milestone)

 

4 Electives *

4

 

Major Research Paper (MRP) Option

 

 

Major Research Paper (MRP)**

(Milestone)

 

Master’s Seminar**

(Milestone)

 

6 Electives **

6

 

Course Only Option

 

 

8 Electives ***

8

Electives

Course code Course name Credits

CP8201

Advanced Algorithms

1

CP8202

Advanced Software Engineering

1

CP8203

Advanced Database Systems

1

CP8204

Advanced Programming Languages

1

CP8205

Adv Human-Computer Interaction

1

CP8206

Soft Computing and Machine Intel

1

CP8207

Special Topics: Core Computer Sci

1

CP8210

Topics in Data Science

1

CP8215

Research Methods in Comp Sci

1

CP8301

Secure Computing

1

CP8302

Software Metrics

1

CP8303

Collaborative Computing

1

CP8304

Distributed Systems

1

CP8305

Knowledge Discovery

1

CP8306

Presence

1

CP8307

Introduction to Computer Vision

1

CP8308

Visualization

1

CP8309

Special Topics: Emerging Comp Sci

1

CP8310

Directed Studies in Computer Sci

1

CP8311

Genetic Programming

1

CP8314

Advanced Artificial Intelligence

1

CP8317

Performance Evaluation

1

CP8318

Machine Learning

1

CP8319

Reinforcement Learning

1

CP8320

Program Analysis for Cyber Security

1

CP8321

Introduction to Deep Learning

1

CP8322

Deep Learning in Computer Vision

1

CP8323

Advanced Natural Language Processing

1

 

CP8324

Computational Geometry

1

 

CP8325

Digital Image Processing

1

 

CP8326

Heuristic Search

1

 

CP8327

Model-Driven Engineering

1

 

CP8328

Theory of Computation

1

 
 

AI specialization Electives

CP8206, CP8210, CP8305, CP8311, CP8314, CP8318, CP8319, CP8321, CP8322

 

* For the AI option a minimum of 2 of the 4 electives must be from the AI electives and the thesis and seminar presentation must be on an AI topic.

 

** For the AI option a minimum of 4 of the 6 electives must be from the AI electives and the MRP and seminar presentation must be on an AI topic.

 

*** For the AI option a minimum of 6 of the 8 electives must be from the AI electives.

Course Code Degree requirements: Doctor of Philosophy Credits

 

Doctoral Candidacy Examination

(Milestone)

 

Doctoral Dissertation

(Milestone)

CP8101

Research Methods: Doctoral

Pass/Fail

CP9101

Method of Instruction

1

CP9102

Doctoral Seminar

Pass/Fail

 

4 courses (minimum) – two courses from each field

4

Course Code Field I: Intelligence and Robotics Credits

CP8206

Soft Computing and Machine Intel

1

CP8210

Topics in Data Science

1

CP8204

Advanced Programming Languages

1

CP8205

Adv Human-Computer Interaction

1

CP8303

Collaborative Computing

1

CP8305

Knowledge Discovery

1

CP8306

Presence Through Robotic Interaction

1

CP8307

Introduction to Computer Vision

1

CP8308

Visualization

1

CP8311

Genetic Programming

1

CP8312

Directed Studies - Intelligence and Robotics

1

CP8314

Advanced Artificial Intelligence

1

CP8315

Special Doctoral Topics: AI & R

1

CP8318

Machine Learning

1

CP8319

Reinforcement Learning

1

CP8321

Introduction to Deep Learning

1

CP8322

Deep Learning in Computer Vision

1

CP8323

Advanced Natural Language Processing

1

CP8324

Computational Geometry

1

CP8325

Digital Image Processing

1

CP8326

Heuristic Search

1

Course Code Field II: Networks Credits

CP8201

Advanced Algorithms

1

CP8202

Advanced Software Engineering

1

CP8203

Advanced Database Systems

1

CP8301

Secure Computing

1

CP8302

Software Metrics

1

CP8304

Distributed Systems

1

CP8313

Directed Studies-Networks

1

CP8316

Special Doctoral Topics: Networks

1

CP8317

Performance Evaluation

1

CP8320

Program Analysis for Cyber Security

1

CP8327

Model-Driven Engineering

1

CP8328

Theory of Computation

1

Doctoral Candidacy Examination
Each student is required to complete a Candidacy Examination. The examination is normally conducted during a candidate’s fourth term of residence, and must be held no later than 20 months from the date of initial registration. The examination consists of two parts: a written examination, the questions to be set by the student’s Supervisory Committee; and an oral defense of the written examination and of the dissertation proposal. This is a “Milestone”.

Doctoral Dissertation
The culmination of each student’s work within the Doctoral program is the Doctoral Dissertation or Thesis. The dissertation is the written record of the student’s original and significant research. The PhD student is required to conduct advanced research related to one (or more) of the following fields: Intelligence and Robotics, or Computer Communication Networks. Other areas may be considered if appropriate expertise exists among the faculty members associated with this program. The research topic is selected in consultation with the student's supervisor(s). The approval process for proposed work on a dissertation involves two steps: the student must present a written research proposal to a Dissertation Supervisory Committee to ensure that the proposal has merit and can be achieved and the student must pass a candidacy exam. The research itself is carried out under the direction of the student's supervisor(s) and monitored by the Supervisory Committee. When the research is complete, the results are submitted in written format in the form of a Thesis as specified by program guidelines. The thesis must receive the approval of the student's supervisor(s) and the members of the Dissertation Supervisory Committee as described by the appropriate policies of the Yeates School of Graduate Studies before the work can undergo examination. When the thesis is approved, the student’s supervisor will convene a public oral examination conducted according to the policies of the Yeates School of Graduate Studies. Through the thesis, and their Oral Defence of it, the student is expected to provide evidence of competence in carrying out original and independent research, a sound understanding of the material associated with it and a broad grasp of the discipline of Computer Science. Each student is required to pass the final Defence Examination of their dissertation. This is a “Milestone”.

Master’s Seminar
The student is required to attend departmental seminars on current research in the specialization fields and emerging areas of computer science. Seminars will run through the Fall and Winter semesters. Presentations will be given by graduate students, faculty members, visiting scholars and guest speakers. Each student is required attend a minimum of ten publicly-announced seminars and to give one oral presentation on his/her research work. This is a “Milestone.”

Major Research Project (MRP)
The student is required to complete a research paper on a topic related to computer science. The research topic is selected in consultation with the student’s supervisor, after which the student must submit a written proposal of the research to be conducted. The research paper will be evaluated by the supervisor and a second reader -- normally also from the same program or a related graduate program. This is a “Milestone”.

Master’s Thesis
The thesis embodies the results of the student's research program and exposes the work to scholarly criticism. It must represent a single body of work, with integrated material, and should not be solely a collection of published articles. This is a “Milestone.”

CP8101 Research Methods for Doctoral Students
This course is designed to assist students in developing skills necessary to design and execute a research protocol for their terminal degree. The course is intended to complement the specific research programs devised by the student and his/her advisors. The course covers the following topics: nature of scientific inquiry, library skills, formulation and testing of hypotheses, experimental design, statistical analysis of data, human subjects, use of humans and animals in research, and professional responsibility in research grants and funding for research. Pass/Fail

CP8201 Advanced Algorithms
This course covers advanced methods of algorithmic design and analysis with focus on efficiency and correctness of algorithms. The course reviews several popular algorithm design techniques and selected well-known algorithms. The final parts of the course include introduction to practical algorithms for computationally challenging problems, using heuristics, approximation algorithms and introduction to randomization algorithms. 1 Credit

CP8202 Advanced Software Engineering
Modern approaches to software development are studied including requirements analysis, system design techniques, formal description techniques, implementation, testing, debugging, metrics, human factors, quality assurance, cost estimation, maintenance, and tools. 1 Credit

CP8203 Advanced Database Systems
Object-Oriented and Object-Relational Database Systems; Distributed and Multi-database Systems; Advanced Database Applications: Web-Based Database Access, Data Warehouses. 1 Credit

CP8204 Advanced Programming Languages
A study of the principles, concepts, and mechanisms of computer programming languages - their syntax, semantics, and pragmatics; the processing and interpretation of computer programs; programming paradigms; and language design. Additional topics will include language design principles and models of language implementation. 1 Credit

CP8205 Advanced Human-Computer Interaction
Current trends in user interface technology; topics include alternative interaction devices, user interface tools, and interface modeling techniques. Usability testing and human factors. 1 Credit

CP8206 Soft Computing and Machine Intelligence
Introduction to basic concepts and techniques of soft computing including: neural, fuzzy, evolutionary computation and their applications. 1 Credit

CP8207 Special Topics: Core of Computer Science
This special topics course examines selected, advanced topics in areas related to the core areas of computer science series that are not covered by existing courses. The topic(s) will vary depending on the need and the instructor. 1 Credit

CP8210 Topics in Data Science
This course presents concepts related to data science research activities including data management and analytics, data modeling, structured and unstructured data, regression models, social data analysis, web and data mining, information retrieval, text analysis and natural language processing. 1 Credit

CP8215 Research Methods in Computer Science
A transition to research-based learning for computer science students designed to assist them in developing a research protocol. The course complements specific research programs devised by the students and their supervisors. Topics may include: the nature of scientific inquiry; information gathering skills; formulation and testing of hypotheses; experimental design; planning; analysis of data; ethical and professional responsibility in research.1 Credit

Not available to Course option students. Only one of CP8310 and CP8215 may be taken for credit toward degree completion.

CP8301 Secure Computing
The importance of security for computer systems: protection, access control, distributed access control, Unix security, applied cryptography, network security, firewalls, secure coding practices, safe languages, mobile code. Computer and network forensics techniques. Computer security techniques. Legal and Ethical issues. Topics may include cryptographic protocols, privacy, anonymity, and/or other topics as time permits. 1 Credit

CP8302 Software Metrics
The theory of measurement, experimental design, software metrics collection, statistics for analyzing measurement data, software size and software structure, resource measurement, prediction of software characteristics, planning software measurement, software quality and reliability. 1 Credit

CP8305 Knowledge Discovery
Steps in the process of knowledge discovery: data preprocessing, data mining, post-processing and knowledge utilization. Preprocessing: data cleaning, integration, transformation and reduction. Data mining methods: association rules, classification and clustering. Post-processing: knowledge evaluation, interpretation, presentation and visualization. Knowledge discovery and data management. Possibly other selected topics in knowledge discovery. 1 Credit

CP8307 Introduction to Computer Vision
This course describes foundational concepts of computer vision. In particular, the course covers the image formation process, image representation, feature extraction, model fitting, motion analysis, 3D parameter estimation and applications. 1 Credit

CP8308 Visualization
Use of computer graphics to understand patterns, relationships and trends in scientific and information systems data. Topics include: historical overview, fundamental concepts, scientific visualization techniques for scalar and vector data, visualization systems, interaction with 2D/3D graphical interfaces, web-based visualization and collaborative visualization over the internet, software visualization, information visualization. 1 Credit

CP8309 Special Topics: Emerging Computer Science
This special topics course examines selected, advanced topics in areas related to emerging areas of computer science that are not covered by existing courses. The topic(s) will vary depending on the need and the instructor. 1 Credit

CP8310 Directed Studies in Computer Science
This course is for Master’s students who wish to gain knowledge in a specific area for which no graduate level classes are offered. Students wishing to take the class would be assigned a suitable class advisor most familiar with the specific area of interest. Students are required to present the work of one term (not less than 90 hours in the form of directed research, tutorials and individual study) in an organized format. 1 Credit

Not available to Course option students. Only one of CP8310 and CP8215 may be taken for credit toward degree completion.

CP8312 Directed Studies: Intelligence and Robotics
This course explores theoretical, practical and experimental (if applicable) problems in great depth in the areas of intelligence and robotics with emphasis on the aspects of Intelligence and Robotics and their application related to the discipline of Computer Science. Doctoral students must present their findings in a formal report. 1 Credit

CP8313 Directed Studies: Networks
This course explores theoretical, practical and experimental (if applicable) problems in great depth in areas of computer and communication networks with emphasis on the aspects of computer networking and its application related to the discipline of Computer Science. Doctoral students must present the findings in a formal report. 1 Credit

CP8314 Advanced Artificial Intelligence
The course will focus on the theory and implementation of dynamical systems from the perspective of artificial intelligence. The emphasis will be on the compromises involved in providing useful logical representations that allow reasoning about actions to remain tractable. The course will show how these research issues are relevant for many applications beyond the traditional area of artificial intelligence. 1 Credit

CP8315 Special Doctoral Topics: AI & Robotics
This special topics course will present material that is not currently part of the regular computer science doctoral program but are of interest to faculty and students in the field of Artificial Intelligence and Robotics. 1 Credit.

CP8316 Special Doctoral Topics: Networks
This special topics course will present material that is not currently part of the regular computer science doctoral program but are of interest to faculty and students in the field of Networking. 1 Credit

CP8317 Performance Evaluation
Probability Theory; Transforms of probability distributions; Branching processes; Discrete time Markov Chains; Continuous time Markov Chains; Birth-Death processes ; Intermediate queuing theory, M/G/1 queues ; Renewal theory; Gated and limited systems; Hidden Markov model. 1 Credit.

CP8318 Machine Learning
Machine learning is the study of algorithms that learn to perform a task from prior experience. Machine learning has a broad range of applicability, including computer vision, robotics, medical diagnosis, bioinformatics and natural language processing. This course will cover the underlying theory and practical applications of machine learning. 1 Credit.

CP8319 Reinforcement Learning
This course focuses on topics related to reinforcement learning. The course will cover making multiple-stage decisions under uncertainty, heuristic search in planning, Markov decision processes, dynamic programming, temporal-difference learning including Q-learning, Monte Carlo reinforcement learning methods, function approximation methods, and the integration of learning and planning. 1 Credit.

CP8320 Program Analysis for Cyber Security
This course will focus on Language-Based Security, an area of research that studies how to enforce application-level security using program analysis techniques. This includes techniques used to automate the detection\prevention of security vulnerabilities caused by coding malpractice or security-policy misconfigurations; the study of the design and implementation of secure programming languages; and techniques used to enforce correct usage of security Application Programming Interfaces. 1 Credit

CP8321 Introduction to Deep Learning
This course is an introduction to deep learning and its applications. The main topics discussed in the course include feedforward/recurrent neural networks, backpropagation learning algorithm, Convolutional Neural Networks (CNN), Long Short Term Memory (LSTM), and Autoencoders. 1 Credit

CP8322 Deep Learning in Computer Vision
Computer vision is broadly defined as the study of recovering useful properties of the world from one or more images. In recent years, deep learning, an expansive term covering trainable, hierarchical network architectures, has emerged as a central tool for addressing computer vision tasks. This course will cover a range of topics at the intersection of deep learning and computer vision, including object recognition, object detection, and video understanding. 1 Credit

CP8323 Advanced Natural Language Processing
This course introduces students to the topics of Advanced Natural Language Processing. Topics include: introduction to NLP, statistics review, information extraction, annotating data, lexical semantics, text clustering, text classification, sentiment analysis, question answering, deep learning models and model interpretability. 1 Credit

CP8324 Computational Geometry
Computational Geometry studies problems which can be described geometrically. Such problems arise from our environment as we deal with geometric objects and their interactions, such as in computer graphics, robotics, and manufacturing. In this course, students learn to design algorithms and data structures for geometric problems. These problems include but are not limited to the following topics: convex hull, Voronoi diagram, triangulation, visibility, and geometric data structures. 1 Credit

CP8325 Digital Image Processing
Digital image processing has been widely used in our daily lives, from entertainment, multimedia, to medicine. This course introduces the fundamentals and principles of digital image processing and its applications. Students will gain hands-on experience in using image processing techniques to solve practical problems. Topics include image acquisition, transformation, filtering, enhancement, and compression, as well as state-of-the-art developments in image processing. 1 Credit

CP8326 Heuristic Search
Heuristic search is a popular Artificial Intelligence method used in a variety of applications including robotics, combinatorial optimization, route pathfinding, and automated planning. In this course, we will investigate algorithms for solving search problems, and consider methods for automatically generating heuristic functions. Topics will include optimal and suboptimal search algorithms, abstraction and graph embedding-based heuristic generation methods, and Monte Carlo Tree Search. 1 Credit

CP8327 Model-Driven Engineering
This course is designed to introduce students to the field of model-driven engineering (MDE). MDE is a software and systems development methodology in which software models are treated as first-class citizens in the engineering process. Topics to be discussed include modelling languages, domain-specific modelling, model transformation, model management, modelling and simulation, and model analysis. Required background: Basic software engineering knowledge is expected. 1 Credit

CP8328 Theory of Computation
This course introduces students to the theory of computation. Topics include: regular expressions and languages, finite state automata, context-free languages, pushdown automata, Turing machines, computability, and NP-completeness. 1 Credit

CP9101 Method of Instruction
Students will learn to select appropriate teaching methods; establish goals and performance objectives and construct lesson plans. Students will be shown classroom management and presentation techniques. In addition, students will be introduced to the principles of learning and instruction. Student will learn to formulate questions and employ good questioning technique. Each student will be given opportunities to prepare and present short lessons. Each student will be required to prepare and present at least two five minutes lessons based on computer science related topics. Student lessons will be evaluated by the student, class members and the instructor. 1 Credit

CP9102 Doctoral Seminar
The purpose of the Doctoral Seminar is to provide students exposure to the latest research, issues and findings related to the discipline of Computer Science. The seminar will consist of invited guests and talks by experts from industry, academia and graduate students themselves. Students will have an opportunity to improve their writing and critical thinking skills through assigned work associated with the seminar topics. All students are required to attend and actively participate in seminars every semester for a total of six semesters. A doctoral candidate must give two publicly announced research seminars on his/her thesis research. The student's supervisor(s) and at least one other member of the student's Dissertation Supervisory Committee must attend this seminar. The quality of the student's presentation will be graded on a Pass/Fail basis. Each student will be required to pass each research seminar presentation. Pass/Fail
+++