Return to Academic Calendar
Year Course ID Course
2025-2026 CMPT 113

Computational Thinking and Information Systems

The student will gain a broad introductory understanding of information systems including how modern computers interact with networks. The student will gain problem solving skills by employing computational thinking, testing, and debugging techniques. No prior computing experience is required. Not for students with existing credit for or exemption from CMPT 140 or 166. This course may not be counted toward a minor, concentration or major in computing science.

Course Credits: 3
Prerequisite(s): None. (3-0)
NB: Not offered every year. See department chair.
2024-2025 CMPT 123

Data Analysis for Information Systems

An introduction to spreadsheets and databases. Cell formulas, charts, macro programming are examined. Database design, decomposition; basic SQL. Tools such as Excel, Access, and MS-SQL may be used, but the focus is on concepts and design rather than skills with specific tools.

Course Credits: 3
Prerequisite(s): CMPT 113 or 140. (3-0)
2025-2026 CMPT 123

Data Analysis for Information Systems

An introduction to spreadsheets and databases. Cell formulas, charts, macro programming are examined. Database design, decomposition; basic SQL. Tools such as Excel, Access, and MS-SQL may be used, but the focus is on concepts and design rather than skills with specific tools.

Course Credits: 3
Prerequisite(s): CMPT 113 or 140. (3-0)
2024-2025 CMPT 140

Introduction to Computing Science & Programming I

An elementary introduction to computing science and programming as a problem-solving tool. Fundamental concepts and terminology of computing science will be introduced. Programming skill will be obtained by using a high-level language. Topics will include: abstraction, data types and control structures, fundamental algorithms and pseudocode, computability and complexity, and computer architecture.

Course Credits: 3
Prerequisite(s): None. (3-0)
2025-2026 CMPT 140

Introduction to Computing Science & Programming I

An elementary introduction to computing science and programming as a problem-solving tool. Fundamental concepts and terminology of computing science will be introduced. Programming skill will be obtained by using a high-level language. Topics will include: abstraction, data types and control structures, fundamental algorithms and pseudocode, computability and complexity, and computer architecture.

Course Credits: 3
Prerequisite(s): None. (3-0)
2024-2025 CMPT 150

Introduction to Discrete Math

An introduction to those branches of pure mathematics which are most commonly used in the study of Computing Science and/or have other practical applications. Topics include logic, proofs, switching circuits, set theory, induction, functions, languages, finite automata, combinatorics, and algebraic structures.

Course Credits: 3
Prerequisite(s): BC high school Mathematics 12, or Pre-Calculus 12, or MATH 105, or the equivalent. (4-0)
Cross-listed: MATH 150
2025-2026 CMPT 150

Introduction to Discrete Math

An introduction to those branches of pure mathematics which are most commonly used in the study of Computing Science and/or have other practical applications. Topics include logic, proofs, switching circuits, set theory, induction, functions, languages, finite automata, combinatorics, and algebraic structures.

Course Credits: 3
Prerequisite(s): BC high school Mathematics 12, or Pre-Calculus 12, or MATH 105, or the equivalent. (4-0)
Cross-listed: MATH 150
2024-2025 CMPT 166

Introduction to Computing Science and Programming II

A rigorous introduction to computing science and computer programming. Students will learn in- depth programming concepts by seeing how object oriented (OO) concepts are employed in the design and writing of code in a variety of notations. The emphasis is on the theory of OO programming and design of solutions, as well as implementation using an OO language such as Java or C++.

Course Credits: 3
Prerequisite(s): CMPT 140 with a minimum grade of C+. (3-0)
2025-2026 CMPT 166

Introduction to Computing Science and Programming II

A rigorous introduction to computing science and computer programming. Students will learn in- depth programming concepts by seeing how object oriented (OO) concepts are employed in the design and writing of code in a variety of notations. The emphasis is on the theory of OO programming and design of solutions, as well as implementation using an OO language such as Java or C++.

Course Credits: 3
Prerequisite(s): CMPT 140 with a minimum grade of C+. (3-0)
2024-2025 CMPT 211

Web Technologies I

An introduction to web application development using current web technologies, best practices, and standards. The modern web application framework will be studied.

Course Credits: 3
Prerequisite(s): CMPT 166. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 211

Web Technologies I

An introduction to web application development using current web technologies, best practices, and standards. The modern web application framework will be studied.

Course Credits: 3
Prerequisite(s): CMPT 166. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 231

Data Structures and Algorithms

Basic organization of programs, optimizing program structure, modularization, data structures, search and sorting algorithms, handling large data sets, analysis of algorithms.

Course Credits: 3
Prerequisite(s): CMPT 150 and 166. (3-0)
2025-2026 CMPT 231

Data Structures and Algorithms

Basic organization of programs, optimizing program structure, modularization, data structures, search and sorting algorithms, handling large data sets, analysis of algorithms.

Course Credits: 3
Prerequisite(s): CMPT 150 and 166. (3-0)
2024-2025 CMPT 242

Computing Machine Organization

An introduction to assembly language, machine architecture, low-level components of the operating system, and other low-level issues.

Course Credits: 3
Prerequisite(s): CMPT 140. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 242

Computing Machine Organization

An introduction to assembly language, machine architecture, low-level components of the operating system, and other low-level issues.

Course Credits: 3
Prerequisite(s): CMPT 140. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 325

Computer Networking

This course looks at network protocols, network operating systems, and the construction and maintenance of server sites.

Course Credits: 3
Prerequisite(s): CMPT 150, 231 and MATH 123. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 325

Computer Networking

This course looks at network protocols, network operating systems, and the construction and maintenance of server sites.

Course Credits: 3
Prerequisite(s): CMPT 150, 231 and MATH 123. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 330

Numerical Analysis

This course covers numerical techniques for solving problems in applied mathematics, including error analysis, roots of equations, interpolation, numerical differentiation and integration, ordinary differential equations, matrix methods and selected topics from among: eigenvalues, approximation theory, non-linear systems, boundary-value problems, numerical solution of partial differential equations.

Course Credits: 4
Prerequisite(s): MATH 223, 250; CMPT 140. (4-0)
NB: Not offered every year. See department chair
Cross-listed: MATH 330
2025-2026 CMPT 330

Numerical Analysis

This course covers numerical techniques for solving problems in applied mathematics, including error analysis, roots of equations, interpolation, numerical differentiation and integration, ordinary differential equations, matrix methods and selected topics from among: eigenvalues, approximation theory, non-linear systems, boundary-value problems, numerical solution of partial differential equations.

Course Credits: 4
Prerequisite(s): MATH 223, 250; CMPT 140. (4-0)
NB: Not offered every year. See department chair
Cross-listed: MATH 330
2024-2025 CMPT 334

Principles of Operating Systems

Operating system and control software at a low level, memory management, processor management, storage management, and system architecture are among the topics considered.

Course Credits: 3
Prerequisite(s): CMPT 150 and 231. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 334

Principles of Operating Systems

Operating system and control software at a low level, memory management, processor management, storage management, and system architecture are among the topics considered.

Course Credits: 3
Prerequisite(s): CMPT 150 and 231. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 339

Introduction to Database Management Systems

An introduction to database management systems, overviewing issues related to the design, organization, and management of databases. Topics include logical database design, entity relationship (ER) models, and formal relational query languages such as the Structured Query Language (SQL).

Course Credits: 3
Prerequisite(s): CMPT 166, 231. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 339

Introduction to Database Management Systems

An introduction to database management systems, overviewing issues related to the design, organization, and management of databases. Topics include logical database design, entity relationship (ER) models, and formal relational query languages such as the Structured Query Language (SQL).

Course Credits: 3
Prerequisite(s): CMPT 166, 231. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 340

Discrete Structures and Computing

This is a second course in the topics of pure mathematics, particularly those most commonly used in the study of computing science and related applications. It includes proof techniques, models of computation, formal languages, analysis of algorithms, trees and advanced general graph theory with applications, finite state and automata theory, encryption, and an elementary introduction to mathematical structures such as groups, rings, and fields.

Course Credits: 3
Prerequisite(s): CMPT 150 or MATH 150.
NB: Not offered every year. See department chair
Cross-listed: MATH 340
2025-2026 CMPT 340

Discrete Structures and Computing

This is a second course in the topics of pure mathematics, particularly those most commonly used in the study of computing science and related applications. It includes proof techniques, models of computation, formal languages, analysis of algorithms, trees and advanced general graph theory with applications, finite state and automata theory, encryption, and an elementary introduction to mathematical structures such as groups, rings, and fields.

Course Credits: 3
Prerequisite(s): CMPT 150 or MATH 150.
NB: Not offered every year. See department chair
Cross-listed: MATH 340
2024-2025 CMPT 345

Simulation and Modeling

This course is designed to give students the ability to analyze, formulate, and program problems related to discrete simulation methods. The course introduces students to queuing theory and some commonly used continuous and discrete statistical distributions. By the end of the course, students are able to simulate real world computer systems and industrial manufacturing systems.

Course Credits: 3
Prerequisite(s): CMPT 166 and 231.
2025-2026 CMPT 345

Simulation and Modeling

This course is designed to give students the ability to analyze, formulate, and program problems related to discrete simulation methods. The course introduces students to queuing theory and some commonly used continuous and discrete statistical distributions. By the end of the course, students are able to simulate real world computer systems and industrial manufacturing systems.

Course Credits: 3
Prerequisite(s): CMPT 166 and 231.
2024-2025 CMPT 360

Comparative Programming Languages

The history, development, and design principles for programming notations. The design and internal operations of the major notational categories are examined in detail. Students are expected to become proficient in at least four languages they have not previously learned, typically chosen from historical, modern working, and cutting edge languages and from among such (non-exclusive) categories as Algol-descended, functional, scripting, Web-based, modular, application-specific, visual, and object oriented. They will also learn how to select appropriate programming notations for a given project. Programming will be undertaken in at least three OS environments.

Course Credits: 3
Prerequisite(s): CMPT 140, 166 and 231. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 360

Comparative Programming Languages

The history, development, and design principles for programming notations. The design and internal operations of the major notational categories are examined in detail. Students are expected to become proficient in at least four languages they have not previously learned, typically chosen from historical, modern working, and cutting edge languages and from among such (non-exclusive) categories as Algol-descended, functional, scripting, Web-based, modular, application-specific, visual, and object oriented. They will also learn how to select appropriate programming notations for a given project. Programming will be undertaken in at least three OS environments.

Course Credits: 3
Prerequisite(s): CMPT 140, 166 and 231. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 370

Computer Graphics

This course introduces the fundamentals of computer graphics and principles of raster image generation. Topics include: graphics primitives, coordinate systems, transformations, rendering techniques, and geometric modelling.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, 231; MATH 250. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 370

Computer Graphics

This course introduces the fundamentals of computer graphics and principles of raster image generation. Topics include: graphics primitives, coordinate systems, transformations, rendering techniques, and geometric modelling.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, 231; MATH 250. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 375

Human-Computer Interaction Design

This course provides a general introduction to interaction design from a human-computer interaction perspective. Students will learn both theoretical and practical concepts of human-computer interaction which will help them discover requirements, design/prototype and evaluate interactive products with usability and user experience (UX) goals. The course covers human capabilities, design principles, prototyping techniques, implementation, and evaluation techniques for interactive products. Students will apply what they learn from lectures to actual challenges of interactive product design, prototyping, implementation, and evaluation.

Course Credits: 3
Prerequisite(s): CMPT 166, 231 (3,0)
2025-2026 CMPT 375

Human-Computer Interaction Design

This course provides a general introduction to interaction design from a human-computer interaction perspective. Students will learn both theoretical and practical concepts of human-computer interaction which will help them discover requirements, design/prototype and evaluate interactive products with usability and user experience (UX) goals. The course covers human capabilities, design principles, prototyping techniques, implementation, and evaluation techniques for interactive products. Students will apply what they learn from lectures to actual challenges of interactive product design, prototyping, implementation, and evaluation.

Course Credits: 3
Prerequisite(s): CMPT 166, 231 (3,0)
2024-2025 CMPT 380

Artificial Intelligence

Artificial Intelligence: knowledge representation, logic programming, knowledge inference. Application domains within the discipline of Artificial Intelligence include logical and probabilistic reasoning, natural language understanding, vision and expert systems.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, 231 (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 380

Artificial Intelligence

Artificial Intelligence: knowledge representation, logic programming, knowledge inference. Application domains within the discipline of Artificial Intelligence include logical and probabilistic reasoning, natural language understanding, vision and expert systems.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, 231 (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 382

Machine Learning

An overview of core machine learning technologies with motivating applications from a variety of disciplines and real‐world data sets. Students will learn how to implement, evaluate, and improve machine learning algorithms. While studying best practice in machine learning, students are introduced to data mining and statistical pattern recognition and learn how to build automatic analytical models. Topics include identification and extraction of useful features that best represent available data, some of the most important machine learning algorithms, and the evaluation of algorithm performance.

Course Credits: 3
Prerequisite(s): CMPT 166, 231; or with permission of instructor. (3-0)
2025-2026 CMPT 382

Machine Learning

An overview of core machine learning technologies with motivating applications from a variety of disciplines and real‐world data sets. Students will learn how to implement, evaluate, and improve machine learning algorithms. While studying best practice in machine learning, students are introduced to data mining and statistical pattern recognition and learn how to build automatic analytical models. Topics include identification and extraction of useful features that best represent available data, some of the most important machine learning algorithms, and the evaluation of algorithm performance.

Course Credits: 3
Prerequisite(s): CMPT 166, 231; or with permission of instructor. (3-0)
2024-2025 CMPT 385

Introduction to Software Engineering

An introduction to the theory of designing and carrying out large software projects. All stages of the software engineering cycle, including requirement analysis, design, implementation, testing, and maintenance will be examined. The student will complete a semester-long team based project.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, and 231. (3-0)
NB: Not offered every year. See department chair
2025-2026 CMPT 385

Introduction to Software Engineering

An introduction to the theory of designing and carrying out large software projects. All stages of the software engineering cycle, including requirement analysis, design, implementation, testing, and maintenance will be examined. The student will complete a semester-long team based project.

Course Credits: 3
Prerequisite(s): CMPT 150, 166, and 231. (3-0)
NB: Not offered every year. See department chair
2024-2025 CMPT 386

Software Engineering II

This course will study advanced techniques, tools, and standards in software engineering. The student will complete a semester-long team based project

Course Credits: 3
Prerequisite(s): CMPT 385. (3-0)
NB: Not offered every year.
2025-2026 CMPT 386

Software Engineering II

This course will study advanced techniques, tools, and standards in software engineering. The student will complete a semester-long team based project

Course Credits: 3
Prerequisite(s): CMPT 385. (3-0)
NB: Not offered every year.
2024-2025 CMPT 400

Directed Studies in Computing Science

Students are required to produce an outline of the topic studied in consultation with the instructor. A course of reading and/or experimentation is pursued according to the approved outline. Assessment may be via examination and/or a final written report.

Course Credits: 1, 3
Prerequisite(s): Advanced standing in computing science.
NB: This course with the appropriate choice of topics can be used as a preparation for the senior thesis (CMPT 410) or senior project (CMPT 420). This course can only be taken with the consent of the academic computing coordinator.
2025-2026 CMPT 400

Directed Studies in Computing Science

Students are required to produce an outline of the topic studied in consultation with the instructor. A course of reading and/or experimentation is pursued according to the approved outline. Assessment may be via examination and/or a final written report.

Course Credits: 1, 3
Prerequisite(s): Advanced standing in computing science.
NB: This course with the appropriate choice of topics can be used as a preparation for the senior thesis (CMPT 410) or senior project (CMPT 420). This course can only be taken with the consent of the academic computing coordinator.
2024-2025 CMPT 401

Special Topics in Computing Science

A study of special topics or issues in computing science that are not considered in-depth in other courses.

Course Credits: 3
Prerequisite(s): Advanced standing in computing science or instructor's permission.
NB: Not offered every year. Course may be repeated.
2025-2026 CMPT 401

Special Topics in Computing Science

A study of special topics or issues in computing science that are not considered in-depth in other courses.

Course Credits: 3
Prerequisite(s): Advanced standing in computing science or instructor's permission.
NB: Not offered every year. Course may be repeated.
2024-2025 CMPT 409

Thesis Preparation

Students are required to choose a topic for their senior thesis (CMPT 410 or 411) in consultation with an instructor. Selected readings and references pertinent to the topic are assigned. A final written report is presented, consisting of a detailed thesis proposal and a literature review.

Course Credits: 1
Prerequisite(s): Advanced standing in computing science or instructor's consent.
NB: A student is allowed credit for only one of CMPT 409 or 419.
2025-2026 CMPT 409

Thesis Preparation

Students are required to choose a topic for their senior thesis (CMPT 410 or 411) in consultation with an instructor. Selected readings and references pertinent to the topic are assigned. A final written report is presented, consisting of a detailed thesis proposal and a literature review.

Course Credits: 1
Prerequisite(s): Advanced standing in computing science or instructor's consent.
NB: A student is allowed credit for only one of CMPT 409 or 419.
2024-2025 CMPT 410

Senior Thesis

Students research a chosen area of computing science and provide a final written report.

Course Credits: 2
Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor's consent.
NB: Normally 2 sem. hrs. are assigned unless prior arrangement is made with the department chair and registrar.
2025-2026 CMPT 410

Senior Thesis

Students research a chosen area of computing science and provide a final written report.

Course Credits: 2
Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor's consent.
NB: Normally 2 sem. hrs. are assigned unless prior arrangement is made with the department chair and registrar.
2024-2025 CMPT 411

Senior Thesis

Students research a chosen area of computing science and provide a final written report.

Course Credits: 3
Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor's consent.
NB: Normally 2 sem. hrs. are assigned for a senior thesis unless prior arrangement is made with the department chair and registrar.