Areas of Concentration

Table I – Computing Science Concentrations

Artificial Intelligence

CMPT310

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

Biomedical Computing

CMPT411

Knowledge Representation

CMPT412

Computational Vision

CMPT413

Computational Linguistics

CMPT414

Model-Based Computer Vision

CMPT417

Intelligent Systems

CMPT418

Computational Cognitive Architecture

CMPT419

Special Topics in Artificial Intelligence

Computer Graphics and Multimedia

CMPT361

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

User Interface Design

CMPT365

Multimedia Systems

CMPT461

Image Synthesis

CMPT464

Geometric Modeling in Computer Graphics

CMPT466

Animation

CMPT467

Visualization

CMPT468

Introduction to Computer Music Theory and Sound Synthesis

CMPT469

Special Topics in Computer Graphics

Computing Systems

CMPT300

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

Computer Simulation and Modeling

CMPT371

Data Communications and Networking

CMPT379

Principles of Compiler Design

CMPT401

Operating Systems II

CMPT431

Distributed Systems

CMPT432

Real-time Systems

CMPT433

Embedded Systems

CMPT471

Networking II

CMPT479

Special Topics in Computing Systems

CMPT499

Special Topics in Computer Hardware

Information Systems

CMPT301

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

Database Systems I

CMPT370

Information System Design

CMPT441

Computational Biology

CMPT454

Database Systems II

CMPT456

Information Retrieval and Web Search

CMPT459

Special Topics in Database Systems

CMPT470

Web-based Information Systems

CMPT474

Web Systems Architecture

Programming Languages and Software

CMPT373

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

Mathematical Foundations in Software Technology

CMPT383

Comparative Programming Languages

CMPT384

Symbolic Computing

CMPT473

Software Quality Assurance

CMPT475

Software Engineering II

CMPT477

Introduction to Formal Verification

CMPT480

Foundations of Programming Languages

CMPT481

Functional Programming

CMPT489

Special Topics in Programming Languages

Theoretical Computer Science

CMPT307

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

Computability and Complexity

CMPT404

Cryptography and Cryptographic Protocols

CMPT405

Design and Analysis of Computing Algorithms

CMPT406

Computational Geometry

CMPT407

Computational Complexity

CMPT408

Theory of Computing Networks/Communications

CMPT409

Special Topics in Theoretical Computing Science

MACM300

Introduction to Formal Languages and Automata with Applications

Elective Courses

Table II – Currently no courses.

Table III – Computing Mathematics Courses

MACM316

Numerical Analysis I

MACM401

Introduction to Computer Algebra

MACM442

Cryptography

MATH308

Linear Optimization

MATH340 Algebra II: Rings and Fields
MATH343 Applied Discrete Mathematics