Areas of Concentration

Table I – Computing Science Concentrations

Artificial Intelligence

CMPT310-3

Artificial Intelligence Survey

Artificial Intelligence is the study of the design of intelligent agents. The main theoretical goal is to understand the principles underlying intelligent behaviour; the main practical goal is to realize these principles in the design of intelligent artifacts. Artificial Intelligence spans areas such as knowledge representation, natural language understanding, automated reasoning, and machine learning.

CMPT340-3

Biomedical Computing

CMPT411-3

Knowledge Representation

CMPT412-3

Computational Vision

CMPT413-3

Computational Linguistics

CMPT414-3

Model-Based Computer Vision

CMPT417-3

Intelligent Systems

CMPT418-3

Computational Cognitive Architecture

CMPT419-3

Special Topics in Artificial Intelligence

Computer Graphics and Multimedia

CMPT361-3

Introduction to Computer Graphics

Computer Graphics and Multimedia. With the rise in popularity of visual interfaces and particularly multimedia systems, the demand for expertise in this area has greatly increased. Topics include graphical interfaces, modeling, rendering, animation, visualization, and multimedia design.

CMPT363-3

User Interface Design

CMPT365-3

Multimedia Systems

CMPT461-3

Image Synthesis

CMPT464-3

Geometric Modeling in Computer Graphics

CMPT466-3

Animation

CMPT467-3

Visualization

CMPT468-3

Introduction to Computer Music Theory and Sound Synthesis

CMPT469-3

Special Topics in Computer Graphics

Computing Systems

CMPT300-3

Operating Systems I

Computing systems is the foundation of every computing environment--operating systems, data communication, and distributed networks and as such, industry continues to place a priority on knowledge of computing systems. The rapid growth of the Internet has provided new opportunities for graduates with a strong background in systems.

CMPT305-3

Computer Simulation and Modeling

CMPT371-3

Data Communications and Networking

CMPT379-3

Principles of Compiler Design

CMPT401-3

Operating Systems II

CMPT431-3

Distributed Systems

CMPT432-3

Real-time Systems

CMPT433-3

Embedded Systems

CMPT471-3

Networking II

CMPT479-3

Special Topics in Computing Systems

CMPT499-3

Special Topics in Computer Hardware

Information Systems

CMPT301-3

Information Systems Management

This area embraces software engineering and database systems design, and provides the academic preparation necessary for the efficient and effective development of large software products and the design and management of computer information systems.

CMPT354-3

Database Systems I

CMPT370-3

Information System Design

CMPT441-3

Computational Biology

CMPT454-3

Database Systems II

CMPT456-3

Information Retrieval and Web Search

CMPT459-3

Special Topics in Database Systems

CMPT470-3

Web-based Information Systems

CMPT474-3

Web Systems Architecture

Programming Languages and Software

CMPT373-3

Software Development Methods

New languages continue to be developed to provide more effective tools for the implementation of software products. The increased size and complexity of many solutions requires better languages and supporting software to make practical their realization as commercial products.

CMPT375-3

Mathematical Foundations in Software Technology

CMPT383-3

Comparative Programming Languages

CMPT384-3

Symbolic Computing

CMPT473-3

Software Quality Assurance

CMPT475-3

Software Engineering II

CMPT477-3

Introduction to Formal Verification

CMPT480-3

Foundations of Programming Languages

CMPT481-3

Functional Programming

CMPT489-3

Special Topics in Programming Languages

Theoretical Computer Science

CMPT307-3

Data Structures and Algorithms

This area focuses on mathematical tools and techniques for the formal analysis of computer algorithms. It provides the mathematical basis for classifying the difficulty of solving problems and for demonstrating the correctness of solutions.

CMPT308-3

Computability and Complexity

CMPT404-3

Cryptography and Cryptographic Protocols

CMPT405-3

Design and Analysis of Computing Algorithms

CMPT406-3

Computational Geometry

CMPT407-3

Computational Complexity

CMPT408-3

Theory of Computing Networks/Communications

CMPT409-3

Special Topics in Theoretical Computing Science

MACM300-3

Introduction to Formal Languages and Automata with Applications

Elective Courses

Table II – Currently no courses.

Table III – Computing Mathematics Courses

MACM316-3

Numerical Analysis I

MACM401-3

Introduction to Computer Algebra

MACM442-3

Cryptography

MATH308-3

Linear Optimization

MATH340-3 Algebra II: Rings and Fields
MATH343-3 Applied Discrete Mathematics