Apply
Graduate

Courses

Below are the currect course descriptions of graduate courses in CS from the university calendar.

To view the course offerings for current and future semesters for graduate CS courses, view the Course Timetable page. 

CS 700 - Software Development Fundamentals

Modern software development principles and practices. Topics include modern software development fundamentals and methodologies, unit testing, source code control, teamwork, and modern programming languages, frameworks, software development tools, and environments.

CS 710 - Python & Data Fundamentals

Data-centred programming in Python. Topics include Python fundamentals, object-oriented design, data modelling, advanced data structures, extract, transform, and load (ETL) philosophy, data-centred libraries (e.g., Pandas, NumPy, SciPy, scikit-learn), SQL databases, No-SQL databases, statistical analysis tools.

CS 711 - Foundations of Data Science

Broad overview of the data science process lifecycle and methods. Topics include data ethics, data discovery, data preparation, model planning, machine learning model implementation, and evaluation, visualization, and delivery.

CS 712 - Foundations of Statistics & Machine Learning

Statistical basis for machine learning. Topics include distributions, probabilities, sampling, hypothesis testing, Bayes’ theorem, maximum likelihood, machine learning theory, classes of machine learning, linear regression, kernel methods, dimensional reduction, gradient descent, ensemble techniques, and neural networks.

CS 713 - Applied Machine Learning

Machine learning approaches applied to real-world problems. Topics include classification, regression, clustering, decision trees and random forests, Bayesian networks, deep learning, face and object recognition, time-series forecasting, anomaly detection, natural language processing, and machine translation.

CS 714 - Big Data Analytics & Cloud Computing

Techniques for performing big data analytics within a cloud environment. Topics include foundations of cloud computing, containers, micro-services, distributed file systems, MapReduce, real-time data processing, scale-up, scale-out, and cloud-based machine learning. Students will undertake a milestone-based project using Microsoft Azure, Amazon Web Services, Google Cloud, or some other cloud platform.

CS 715 - Advanced Data Science & Machine Learning

State-of-the-art in data science and machine learning. Topics may include the latest advancements in reinforcement learning, deep learning, spatio-temporal forecasting, and natural language processing. Students will pursue real-world data science project that employs the latest machine learning methods and techniques.

CS 716 - Communication in Data Science

Mechanisms for communication within Data Science projects. Topics include communication fundamentals, visualization fundamentals, data science notebooks, and visualization libraries. Students will be expected to communicate information about a data science project in four different modes: structured abstract, poster, project notebook, and oral presentation.

CS 718 - Data Science Seminar

Students will attend a professionally focused seminar series with topics including entrepreneurship, ethics, intellectual property, innovation, start-up culture, and EDI.

CS 719 - Data Science Project

A milestone-based project will be pursued, serving as a capstone for the Data Science Stream. Final projects will be demonstrated and presented in a public venue.

CS 730 - Human-Computer Interaction Fundamentals

Theory related to the design of usable software. Topics include contexts for human computer interaction, foundations of usability, cognitive models, perceptual models, social models, physical capabilities, accessibility, interface standards, user experience, principles of good design.

CS 731 - Human-Centered Interface Design & Implementation

Practice of designing and implementing usable software. Topics include processes for human-centered interface development, task analysis, usability requirements, user-centred design, design patterns, prototyping, and modern graphical user interface libraries, builders, and environments. Students will undertake a milestone-based project leading to the design and implementation of a web-based application.

CS 732 - Foundations of Human-Centred Evaluation Methods

Methods for evaluating human-centred software. Topics include usability testing, cognitive walkthroughs, heuristic evaluations, controlled laboratory studies, naturalistic studies, and Research Ethics Board applications. Students will design and conduct a comprehensive study of a user interface.

CS 733 - Computer Graphics & Animation

Techniques and software for generating computer graphics and animations. Topics include geometric and mathematical modelling, image rendering and synthesis, principles of animation, and graphics and animation frameworks.

CS 734 - Mobile Computing

Design and implementation of software for a networked mobile environment. Topics include the benefits and limitations of modern mobile devices, network programming, sensor programming, interface design for small screens, touch-based interaction, voice-based interaction, hybrid mobile application development practices.

CS 735 - Virtual and Augmented Reality

Design and implementation of software in virtual and augmented reality environments. Topics include virtual reality (VR) and augmented reality (AR) technology, 3D modelling, locomotion, interaction, audio, psychological and physical effects, and telepresence. Students will undertake a milestone-based project leading to the design and implementation of a VR or AR application.

CS 736 - Information Visualization

Design and development of interactive visualization techniques for the analysis, comprehension, exploration, and explanation of large collections of abstract information. Topics include principles of visual perception, information data types, visual encodings of data, representations of complex data types, and interaction methods.

CS 738 - Human Centred Computing Seminar

Students will attend a professionally focused seminar series with topics including entrepreneurship, ethics, intellectual property, innovation, start-up culture, and EDI.

CS 739 - Human-Centred Computing Project

A milestone-based project will be pursued, serving as a capstone for the Human-Centred Computing Stream. Final projects will be demonstrated and presented in a public venue.

CS 802 - Parallel Algorithm

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

CS 805 - Computer Graphics

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

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 - Adv Animation Software Design

Principles of animation. Current research areas in animation software design. Features and architecture of animation software. Timelines, motion pathways, parameteric keyframing kinematics, gaseous phenomena, and facial animation.

CS 809 - Interactive Entertainment SW

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

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

Sensing techniques; sensing data pre-processing; higher level scene description; 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

Logics; natural language processing; knowledge representation; uncertainty reasoning; machine learning; expert systems; neutral networks. Prior to registering for this course, students should have a background in artificial intelligence comparable to the senior undergraduate level.

CS 824 - Informational Retrieval

Content analysis; types of storage and retrieval systems; retrieval models; information theory; multimedia retrieval; hypertext; information network and inference. Prior to registering for 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

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

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

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

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

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. * Note: Prior to registering in this course, students should have a background in Data Communications and Network comparable to the senior undergraduate level. *

CS 830 - Machine Learning

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 for this course, students should have a background in artificial intelligence comparable to the senior undergraduate level.

CS 831 - Knowledge Discov in Databases

Knowledge discovery from databases in 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 for this course, students should have a background in database and information retrieval, and artificial intelligence comparable to the senior undergraduate level.

CS 834 - Fundamentals of Computer Systems Security

This course presents the objectives and the fundamentals of computer and network system security: confidentiality, integrity, availability, authentication, and authorization. Common security concepts are detailed, such as cryptography, symmetric/asymmetric encryption, digital signature, certificate authority, hashing, communication protocol security, and audit. Mathematical foundations and applications of these methods will be explained.

CS 835 - Pattern Recognition

Statistical pattern recognition; parameter estimation and supervised learning; nonparametric techniques; linear discriminant funcitons; unsupervised learning and clustering; syntactic pattern recognition; applications. Prior to registering for this course, students should have a background in algorithms and data structures comparable to the senior undergraduate level.

CS 836 - Rough Sets & Applications

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 the methodology and will include the study of the above applications of rough sets. Prior to registering for 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

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 Al

Advances in using uncertain knowledge to make decisions rationally and effectively (for prediction, classification, diagnosis, etc.). Focus is placed on modelling with Bayesian networks and various methods for inference therein. Deep learning probabilistic circuits, including arithmetic circuits and sum-product networks, will be extensively studied, emphasizing construction, learning, semantics, and inference.
*Note: Before registering for 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 & E-commerce

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 842 - Introduction to Data Science

This course provides a broad overview of the data science process lifecycle which includes data discovery, data preparation, model planning, machine learning model implementation and evaluation, visualization, and delivery. The course provides hands-on data science experience via a real-world project.

CS 855 - Mobile Computing

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 858 - Virtual and Augmented Reality

Design and implementation of software in virtual and augmented reality environments. Development practices, assets and avatars, interaction, locomotion, psychological effects, audio, multiplayer considerations, applications. Limitations and future developments.
*Additional Fee: $10.*

CS 872 - Software Engineering

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. * Note: 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

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. * Note: 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 - Advanced Database Systems

A course in special topics in which the student makes an independent study in computer science under the supervision of a faculty member in the department. This course focuses on advanced database systems from theory to implementation.

CS 890AC - DataAnalysis from the Internet

Data Analysis from the Internet: Language, indexing and classification; extracting and abstracting by computer; stylistic analysis, statistical models and the entropy of English; hidden Markov models; probablistic context-free grammars; data analysis via data mining and rule induction; ELEM2.

CS 890AG - Natural Language Processing

Grammars, semantics of language, NLP systems, existing systems.
*Note: Students may receive credit for one of CS 890AG or CS 490BH.*

CS 890AI - Parallel & Distributed Process

A course in special topics in which the student makes an independent study in computer science under the supervision of a faculty member in the department. * Note: The student and the supervisor must present a detailed outline of the proposed study to the head of the department for approval before registration. *

CS 890AJ - Directed Readings in Bayesian Methodologies

Students should understand basic principles of Bayesian networks, including representation (Bayesian and Markov networks) and inference (variable elimination and join tree propagation).
A comprehensive project, including a functioning system and extending the field in a new direction, is required.

CS 890AK - Computability and Complexity

Finite automata. Context-free grammars and push-down automata. Turing machine. The universal Turing machine. Nondeterministic Turing machine. The halting problem and unsolvability. Post correspondence problem. Time complexity. Space complexity.

CS 890AQ - Mgmt Intelligent Info System

Strategic and tactical rewards resulting from the effective use of corporate information systems will be presented. Topics include techniques and tools for developing management support systems. Case studies on development and use of the systems will be discussed.

CS 890AU - Adv Artifical Intelligence

Advanced artificial intelligence: advanced issues in artificial intelligence.

CS 890AW - Web Mining

Overview of basic issues of Web Mining in the context of Web Intelligence (WI). Investigations of adaptive personal web page design based on results from mining web log data.

CS 890AY - Adv.Topics in Geometric Model

Advanced Topics in Geometric Modelling: Milti resolutions polygon, mesh structures, polygon mesh optimization, interactive design.

CS 890BA - Secure Computers and Networks

Secure Computers and Networks: Fundamentals of Computer Security, Cryptography and Security Standards, Fire walls and Web Security and Case studies.

CS 890BD - Adv. Topics in Visualization

Advanced Topics in Visualization: volume rendering techniques, visualization of high dimensional data, animation of dynamic simulation results.

CS 890BE - Spec. Topics in Comp. Graphics

Special Topics in Computer Graphics: 3D Toon rendering, hair modeling and rendering, volume rendering techniques.

CS 890BI - Advanced Web Browser Interface

Topics in Advanced Web Browser Interfaces.

CS 890BK - Data Cleaning

Introduction to data cleaning. Missing values. Noisy Data. Inconsistent data, Syntactiv transformation techniques. Integrity checking. Semantic transformation techniques. Software for data cleaning. Project.

CS 890BN - Cryptography and Data Security

Mathematical background of Cryptography, cryptographic protocols and techniques, symmetric-key cryptography algorithms and securtiy analysis. One-way hash functions and public-key algorithms. Examples of cryptographic systems.

CS 890BP - Computer Graphics Topics

Multi-resolution surface representations; rendering techniques for continuous levels of detail; virtual reality.

CS 890BR - Constraint Programming

Constraint satisfaction, stochastic search, CLP, TSLP.

CS 890BV - Model-Based Data Mining

Survey of statistical models. XML specification of domain knowledge. Data summarization. Anomaly detection. Java-based implementation of data mining procedures. Project.

CS 890BY - Agent Based Systems

Agent-oriented Software; Agent-oriented Software lifecycle; a real application; development in UML; Rational Rose.

CS 890CA - Foundation of Data Mining

This course investigates research topics in data mining.

CS 890CB - Research Methods in CS

Review of the major consideration and tasks involved in conducting scientific research, with emphasis on Computer Science. Research Methodology. Technical writing.

CS 890CE - Constraint-Based Agents

Agents Search paradigms and frameworks Global constraint for local search Structural constraint satisfaction Applications

CS 890CF - Human Computer Communication

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; design and methods of evaluation.

CS 890CG - Computer Audio Topics

Representation of audio, compression, spatialization and surround sound, analysis and synthesis, speech, music, temporal and spectral processing. ** Written permission of the instructor is required to register. **

CS 890CI - Topics in Software Security

Research topics on security of mobile code-language environments, extensible software, and operating systems.

CS 890CJ - Specification Implementation

Algebraic Specifications Object Orientated Refinement C++ Java

CS 890CO - Heuristic Algorithms in Optim

In this course, we will study state-of-the-art heuristic algorithms for finding approximation solutions, including simulated annealing, genetic algorithms, ant colony algorithms, tabu search and others.

CS 890CP - Searching Networks

In this course, we will study state-of-the-art methods for computing the optimal search stragegies for networks under different models, including basic pursuit-evasion (BPE), combinatorial sweep, monotomic sweep, connected sweep and others.

CS 890CQ - Advanced Probabilistic Systems

State-of-the-art models for probabilistic reasoning, including hierarchical Markov networks, nested jointrees, multiply-sectioned Bayesien networks, and the maximal prime decomposition of Bayesian networks. State-of-the-art probability propagation algorithms for inference such as LAZY propagation in the HUGIN expert system

CS 890CR - Data Mining

The course involves studying classical approaches to data mining such as rule searching, rough sets, decision trees, neural networks and statistical approaches.

CS 890CS - Time Series Forecasting

The course focuses on a study of methods for the time series forecasting, with applications such as forecasting stock prices and retail prices, Traditional statistical methods and data mining methods will be examined and compared with respect to their efficiency and effectiveness for the time series forecasting. A system will be developed for forecasting retail prices for a product.

CS 890CU - DVD Design and Implementation

This course explores the technical and aesthetic skills requires to design and implement a DVD. Topics include criteria for evaluating DVDs, digital editing techniques, encoding audio and video, scripting DVDs, creation of interface components, testing techniques for navigational capabilities, and evaluation of a DVD.

CS 890CV - Automated Update of Databases

Automating the update and retrieval process for databases. Uses for automation. Wrappers and other techniques of automation. Limits of wrapper design. Implementation and analysis of wrapper design techniques.

CS 890CW - Information Visualization

Theoretic models of information visualization. Techniques, algorithms, and systems. Visual representation of complex information space and high-dimensional data sets.

CS 890CX - Rough Set Theory Adv Topics

The course involves studying advanced approaches based on rough set theory, including variable precision rough set model, bayesian rough set model and applications. This is a research-oriented course requiring the student to study a number of research papers on the subject of the class.

CS 890CY - Text Classification Algorithms

Survey of Text Classification Algorithms. Use of Ontologies in text Classification. Evaluation of wordnet as an ontology in text classification. Detailed comparison of recent text classification methods. Implementation and experimental evaluation of text classification algorithms using benchmark datasets.

CS 890CZ - Text Classification Algorithms

It extends the fundamental material related to data mining, machine learning, Bayesian networks and rough set graduate courses towards dealing with more complex knowledge representation models, encoding knowledge in various, possibly graphical forms dedicated to the application domain needs. Algorithmic approaches to learning such models from real-life data are extensively studied.

CS 890DA - Topics on Grid Computing

Research topics in grid computing: grid architecture; networking; security; resource management.

CS 890DB - Text Classification Algorithms

The course will explore methods used in computer vision and recognition (classification) of images.

CS 890DC - Implementing Probabilistic Expert Systems

This course examines the effects on computational efficiency in practice by implementing various techniques for constructing probability distributions in probabilistic expert systems. Topics include Bayesian networks, join tree propagation, and direct computation techniques.

CS 890DD - Information Theory and Applications

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.

CS 890DE - Advanced Topics in Robotics

Motion planning, configuration space, cell decomposition methods (exact vs approximate), roadmap methods (visibility graphs, Voronoi graph), potential field-based methods, planning with uncertainty, robot control using vision, multiple robots, nonholonomic robots, computational issues in planning, control, and sensing.

CS 890DF - Advanced Intrusion Detection

Investigating intrusion detection systems, particularly on Support Vector Machine and Rough Set. Developing a novel hybrid model combining SUM and Rough Set in order to improve the speed and accuracy. Apply the new model on different data sets.

CS 890DG - Agent-Oriented Distributed Systems

This course will explore distributed systems using agent technology.

CS 890DH - Topics on Communications

Communication network modeling, Multicast problem, Steiner tree problem, Network coding, Rateless codes, P2P file sharing systems, performance evaluation.

CS 890DI - Topics in Programming Languages

Topics in programming paradigms, language design, semantics, and static analysis.

CS 890DJ - Assessing Roles of Variables

The objective is to investigate the body of knowledge available on the role of variables in programs. The project will focus on the role of variables in programs written by IPSCO information specialists.

CS 890DK - Advanced Topics in Interface Personalization

Advanced topics in computer software user interface personalization will deal with one or more of areas such as: user preference modelling, temporal demand models. Filtering, interface cost models, evaluative indices, decision analysis, navigational pattern analysis, and content semantics.

CS 890DL - Special Topics in Computer Vision

Image feature extraction, segmentation, and 3D object recognition techniques.

CS 890DM - Topics in Performance Evaluation

This course covers various topics on performance evaluation of computation and communication systems. Examples include system security, privacy and communication effciency.

CS 890DN - Web Engineering

Design and implementation of web software systems and also web service based applications. Study of web architectures, design patterns and frameworks using the UML

CS 890DO - Topics in Compiler Design

Design and implementation of compilers. Topics include lexical analysis, parsing, context-sensitive analysis, intermediate representation, optimization, and code generation.

CS 890DP - Service Oriented Architecture

A study of service oriented architecture (SOA) concepts and their advantages. XML (eXtensive Markup Language) and its associated family of standards will be discussed and used in student projects.

CS 890DQ - Granular Computing

This course covers a new research field called granular computing (GrC). Topics include fundamentals of GrC and its applications in different research fields, such as rough set and formal concept analysis, current research and development, and future directions of GrC.

CS 890DR - Pattern Classification

Decision Theory, Discriminant Functions, Maximum Likelihood, Parametric and Non-Parametric Methods, Gaussian Mixture Models, Stochastic Methods, Machine Learning and Clustering.

CS 890DS - Visual Analytics

Visual analytics is a multi-disciplinary field that facilitates analytical reasoning through interactive visual interfaces. Topics of study will include aspects of visualization, human factors, and data analysis in aid of conducting an analysis of available data.

CS 890DT - End User Computing for Interaction

End user computing can be applied to a broad spectrum of approaches, with which the student will be acquainted. In particular, this class will examine and explore the means by which end-user computing can empower users and support their efforts when dealing with new situations, allowing new means of interaction with existing applications.

CS 890DU - Web Based Learning Support Systems

This course will provide a comprehensive coverage of various topics in Web mining, including Web usage mining, Web content mining, Web structure mining, Web data management, and Web personalization. The primary focus of this course is on Web usage mining and its applications to e-learning and web intelligence. Specifically, this course will consider techniques from machine learning, data mining, statistics, information retrieval, and databases to extract useful knowledge from Web data which could be used for e-learning, personalization, and user profiling.

CS 890DV - Wireless Mobile Applications

Development and deployment of software for wireless mobile applications; use of state-of-the-art development tools and integrated development environments; development strategies for performance and reliability; methods for testing and debugging; methods for experimental evaluation; use of hardware simulators.

CS 890DW - The Internet and Social Participation

The internet has the potential to enliven social participation even as traditional social structures may be in retreat. Powerful new technologies can support this potential, but only so far as they serve the people who would use them. This class will consider the growing variety of online communiities, what technology supports them, and what opportunities exist.

CS 890DX - Matchmaking Services for Auctions

Matchmaking Algorithm Design; Interest-based Matchmaking; Multi-Attribute Auctions; Reverse Auctions; Purchasing Computers with Several Attributes; Data Clustering; Interest Model Simulation; Interest Learning. 8

CS 890DY - Special Topics in Image Processing

Selected topics in one or more areas from image/video segmentation, analysis, quality measurement, transformation, encoding, compression, and other emerging areas. Reading materials include 3 to 5 book chapters and 10 to 15 recent journal/conference proceeding articles. A term project is required.

CS 890DZ - Implementing Probabilistic Expert Systems

This course examines the effects on computational efficiency in practice by implementing various techniques for constructing probability distributions in probabilistic expert systems. Topics include Bayesian networks, join tree propagation and direct computation techniques.

CS 890EA - Run Time Monitoring of Online Auctions

The objective is to monitor shills in online auctions. The student has to identify shills for reverse auctions. He will develop an architecture for monitoring shills at run-time. Performance and security are major concerns to take into account. He will develop an aggregation algorithm based on the Dempster-Shafer.

CS 890EB - Topics in Computer Animation

In this course a student makes a detailed independent study of topics in Computer Animation under the supervision of a faculty member. The student and supervisor must present a detailed outline of the proposed study to the head of the department for approval before registration.

CS 890EC - Computational Learning Theory

Selected topics in computational learning theory and applications, e.g., models of interactive machine learning, privacy-preserving learning, statistical learning, recursion-theoretic models of learning, complexity analysis of learning algorithms. Reading materials include 2 book chapters and 10-15 research articles. A term project is required.

CS 890ED - Logic Programming for Artificial Intelligence

This course considers the use of logic programming in Artificial Intelligence. Topics include using logic programming for traditonal tasks such as search, learning and game playing. A major component of the course will be the creation of a logic program to solve a nontrivial artificial intelligence task.

CS 890EE - Advanced Topics in Granular Computing

Granular computing and soft computing have begun to play important roles in bioinformatics, e-business, security, machine learning, and data mining. This course will focus on theory and applications of granular computing.

CS 890EF - Advanced Topics in Data Mining

Data Mining uses machine learning, statistical and visualization techniques to discover and present knowledge in a form which is easily comprehensible to humans. This course will focus on the theory and applications of Data Mining particulary on email systems .

CS 890EG - Topics in Mobile Computing

The student will undertake an individual research project related to Mobile Computing under the direction of a faculty member.

CS 890EH - Interactive Hardware for Computing Applications

Embedded and mobile hardware design for physical computing; wireless sensor networks, electronic circuit theory; circuit board design and fabrication and in-circuit programming; robotics, computer vision, audio, sensing and interaction; Software systems such as Processing and OpenFrameworks; hardware systems such as ARM and AVR (Arduino).

CS 890EI - Topics in Interactive Entertainment Software

This course provides an intensive study of one or more topics related to Interactive Entertainment Software. Potential topics include game architectures, virtual worlds, virtual characters, game physics, game artificial intelligence and game audio.

CS 890EJ - Topics in Intelligent Tutoring Systems

This course considers the development and application of Intelligent Tutoring Systems. It explores the relationship between intelligent tutoring, cognitive learning theories, and design. It also reviews the evolution from Computer-Assisted instruction to Intelligent Computer Assisted Instruction to modern Intelligent Tutoring Systems.

CS 890EK - Topics in Software Engineering

This course will focus on two widely used agile software development methodologies: Extreme Programming (XP) and Scrum. XP describes a process which is used to create software in an agile and productive way. It provides guidelines for managing the development process, but its primary focus is on engineering practices for a team approach to groupware style development that have been shown to lead quality software.

CS 890EL - Topics in Software Development

This course provides an intensive study of one or more topics related to Software Development. Potential topics include project planning, requirements analysis, software architecture, programming methodologies, implementation and testing, metrics and cost estimation, software reuse, computer-aided software engineering, configuration management, and current research.

CS 890EM - Topics in Algorithm Analysis

This course provides an intensive study of one or more topics related to Algorithmic Analysis. Potential topics include formal algorithmic languages, measures of complexity, type of analysis, bounds of algorithms, classes of problems, and parallel computational models and algorithms.

CS 890EN - Topics in Machine Learning

This course provides an intensive study of one or more topics related to Machine Learning. Potential topics include inductive inference; concept learning; statistical learning; learning from time series; grammatical inference; knowledge acquisition.

CS 890EO - Topics in Virtual Reality

This course provides an intensive study of one or more topics related to Virtual Reality (VR). Possible topics are VR hardware, VR software, perception quality, interaction, performance, applications, and health and safety issues.

CS 890EP - Topics in Internet of Things & Wireless Sensor Networks

Main concepts and features of the IoT paradigm, architectures, standards, and regulation. Trust, security, and privacy in IoT environments. Overview of theoretical, practical and mathematical concepts related to WSN. Examine applications for WSNs. Overview of RFID radio signals, communication modes and applications. Implementation and coding of WSN and RFID systems.

CS 890EQ - Topics in Geographic Information Systems (GIS): Spatial Analysis and Geoprocessing

An introduction to GIS and spatial analysis, including spatial data models, data visualization and mapping, remote sensing data, geodatabases, raster and vector analysis. GIS automation and programming, including model building, Python fundamentals, and geoprocessing using Python: datasets, geometries, rasters, scripting, building / sharing script tools, introduction to Web GIS.

CS 890ES - Data Science Fundamentals

Introduction to Data Science provides a broad overview of the data science process lifecycle which includes data discovery, data preparation, model planning, machine learning model implementation and evaluation, visualization, and delivery. The course provides hands-on data science experience via a real-world project.

CS 890ET - User Interface Evaluation Methods

Methods for evaluating user interfaces with human subjects. Topics include research ethics, research methods, experimental design, data collection, and data analysis.

CS 890EU - Foundations of Modern Networking

Architectures, algorithmic solutions, and protocols for modern networking technologies such as Software-Defined Networking (SDN), Network Virtualization, Network Functions Virtualization (NFV), 4G and 5G Mobile Networks, Cloud and Data Center Networks, Optical Networks, and Internet of Things (IoT).

CS 890EV - Knowledge Representation and Reasoning

The course examines some of the techniques used to represent knowledge in artificial intelligence, and the associated methods of automated reasoning. The emphasis will be on the compromises involved in providing a useful but tractable representation and reasoning service to a knowledge-based system.

CS 890EW - Reasoning about Rational Agents

Selected topics in reasoning about rational agents. The focus is on various advanced topics in knowledge representation and reasoning and multi-agent systems including but not limited to formalization of actions, knowledge, other mental states and their dynamics in various logics, rational agent programming languages, root cause analysis, abstraction mechanisms etc.

CS 890EX - Recent Developments in Three-way Clustering

Understanding differences of various machine learning techniques such as classification and clustering. Familiarization with hard clustering and soft clustering approaches. Review recent developments of three-way clustering. Summarize and classify different types of three-way clustering techniques.

CS 900 - Computer Science Graduate Seminar

CS Graduate students must complete two semesters of CS 900, with the exception of MSc Course Route students, who must complete one semester of CS 900. When enrolled in CS 900, a student must make one presentation and attend all presentations. In the first semester of CS 900, the student will choose a Computer Science topic within their research area. In the second semester of CS 900 (if required), the student will choose a topic within their own research.

CS 901 - Research

Thesis research.

CS 902 - Project Research

A supervisor approved project requiring an in-depth student investigation of a CS problem.