Code Course Description
CMPT 1105

Introduction to Computing Science and Programming

This course introduces students to the fundamental concepts of computing science and computer programming. Students will learn the process of program design to solve real-world problems and the fundamental building blocks of a computer program. By the end of this course, students will be able to develop computer programs in a high-level computer programming language (such as Python). This course is intended for students with little or no prior programming experience.

CMPT 1109

Computer Programming I

This course provides an introduction to computing science and programming, intended for students with little or no programming background. Students will learn how to analyze problems and design algorithms as well as implement their solutions using a high-level programming language such as C++. Topics include structured programming fundamentals, control structures, procedural programming, recursion, arrays, basic sorting and searching algorithms, strings, pointers, dynamic memory allocation, files, exceptions, and an introduction to object-oriented programming.

CMPT 1209

Computer Programming II

This is a second course in computing science and programming, presented using an object-oriented perspective and intensive hands-on experience. Students will learn how to apply fundamental object-oriented concepts using a high-level programming language like C++ to efficiently program applications that have an intermediate level of difficulty. Topics include encapsulation, inheritance, aggregation, polymorphism, templates, and virtual functions. Software development lifecycle and modelling, code efficiency analysis, event-driven programming, and exception handling are also introduced in this course.

CMPT 1267

Computer Game Development I

This course introduces students to computer programming methods for game development. Students will use a hands-on approach to learn practical programming concepts for interactive game design as well as coding methods for implementing their designed games using object-oriented programming languages (such as C++). Topics include core concepts underlying computer graphics and games, designing game objects, Open Graphics Library (OpenGL), 2D and 3D graphics, audio, camera models, collision detection, and game user interface design.

CMPT 2200

Designing with Raspberry Pi

This course provides the student with the necessary knowledge of the Raspberry Pi to design and develop practical applications. Initial emphasis will be placed on the embedded Linux OS, configuring, setting up and programming the Pi. In the latter part of the course, students will be able to apply that knowledge to case studies and projects.

CMPT 2276

Introduction to Software Engineering

This course provides an overview of standard paradigms and engineering practices as applied to software development. Topics include major phases incorporated in Systems Development Life Cycle (SDLC), software project management issues, and software development core activities from planning to implementation and deployment. Students will participate in a team project that employs an iterative development process and utilizes modern tools that are vital to the success of software development projects to construct a software solution to a real-world case study.

CMPT 2300

Data Structures and Algorithms

This course introduces students to data structures and algorithms, including their design, analysis and implementation. Topics include: object-oriented design and object-oriented programming with a study of inheritance, encapsulation and polymorphism, techniques for searching and sorting, time and space efficiency of algorithms, and practical data structures, including arrays, lists, stacks, queues, trees, heaps, sets, hash tables and graphs. Programs are written in C++.