Code Course Credits
CMPT 113 CMPT 113 - Introduction to Information Systems and Web Technologies

An introductory level of understanding of information systems with an emphasis on web technologies. Students learn about authoring static and client-sided dynamic web pages and sites. Information systems and web technology studies, including the development of database aware server-sided web pages and sites in later courses, are also examined. NB: Not offered every year. See department chair. Prerequisite(s): None. (3-3 or 3-3)

3.00
CMPT 123 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. Prerequisite(s): CMPT 113 or CMPT 140, or equivalent. (3-1-3 or 3-1-3)

3.00
CMPT 140 CMPT 140 - Introduction to Computing Science & Programming I

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

NB: CMPT 140, 166 is the normal sequence for most programming students.

Prerequisite(s): None, but students must be familiar with using a computer. (3-1-3 or 3-1-3)

3.00
CMPT 150 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. NB: Not offered every year. See department chair. Cross-listed: MATH 150. Prerequisite(s): Mathematics 12, MATH 101 or the equivalent. (3-1-0 or 0-0-0)

3.00
CMPT 166 CMPT 166 - Introduction to Computing Science and Programming II

A rigorous introduction to computing science and computer programming. Students will learn indepth 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++. Prerequisite(s): CMPT 140 with a minimum grade of C+. (0-0; 3-3)

3.00
CMPT 200 CMPT 200 - Computing Projects

In this course, students choose to work on a particular computing project. Possible projects include: a second or third computer language, computer applications in the arts and sciences, ethical issues, computer security, networking, or a major software project. Enrolment is strictly limited, and instructor’s consent is required. NB: Not offered every year. See coordinator of academic computing for permission to take this course. Prerequisite(s): CMPT 166. (3-3 or 3-3)

3.00
CMPT 211 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. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 166. (3-3 or 3-3)

3.00
CMPT 231 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. Prerequisite(s): CMPT 150 and 166. (3-3 or 3-3)

3.00
CMPT 242 CMPT 242 - Computing Machine Organization

An introduction to assembly language, machine architecture, low-level components of the operating system, and other low-level issues. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 140 or equivalent. (3-3 or 3-3)

3.00
CMPT 325 CMPT 325 - Computer Networking

This course looks at network protocols, network operating systems, and the construction and maintenance of server sites. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 150, 231 and MATH 123. (3-0-3 or 3-0-3)

3.00
CMPT 330 CMPT 330 - Numerical Analysis

Numerical techniques for solving problems in applied mathematics. Error analysis, roots of equations, interpolation, numerical differentiation and integration, ordinary differential equations, matrix methods are considered. NB: Not offered every year. See department chair. Cross-listed: MATH 330. Prerequisite(s): MATH 2

4.00
CMPT 334 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. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 150 and 231. (3-0-3 or 3- 0-3)

3.00
CMPT 339 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). NB: Not offered every year. See department chair. Prerequisite(s): CMPT 166, 231. (3-2 or 3-2)

3.00
CMPT 340 CMPT 340 - Discrete Structure 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. NB: Not offered every year. See department chair. Cross-listed: MATH 340. Prerequisite(s): CMPT 150 or MATH 150. (0-0; 3-0)

3.00
CMPT 360 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. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 140, 166 and 231. (3-0-3 or 3-0-3)

3.00
CMPT 370 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. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 150, 166, 231; MATH 250. (3-3 or 3-3)

3.00
CMPT 380 CMPT 380 - Artificial Intelligence

Artificial Intelligence: knowledge representation, logic programming, knowledge inference. Application domains within the dicisipline of Artificial Intelligence include logical and probabilistic reasoning, natural language understanding, vision and expert systems. NB: Not offered every year. See Department Chair. Prerequisite(s): CMPT 150, 166, 231

3.00
CMPT 385 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. NB: Not offered every year. See department chair. Prerequisite(s): CMPT 150, 166, and 231. (3-3; 0-0)

3.00
CMPT 386 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. NB: Not offered every year. Prerequisite(s): CMPT 385. (0-0; 1-6)

3.00
CMPT 387 CMPT 387 - Software Engineering Project II

The projects designed in CMPT 385/386 are carried through to completion and tested. This course permits students to do a second project. NB: Not offered every year. See department chair. Prerequisite(s): Grade of B- in CMPT 385 and 386 and the ability to work on a team. (0-0; 1- 6)178

3.00
CMPT 400 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. 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. Prerequisite(s): Advanced standing in computing science.

3.00
CMPT 401 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. NB: Not offered every year. Course may be repeated. Prerequisite(s): Advanced standing in computing science or instructor’s permission.

3.00
CMPT 409 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. NB: A student is allowed credit for only one of CMPT 409 or 419. Prerequisite(s): Advanced standing in computing science or instructor’s consent.

1.00
CMPT 410 CMPT 410 - Senior Thesis

Students research a chosen area of computing science and provide a final written report. NB: Normally 2 sem. hrs. are assigned unless prior arrangement is made with the department chair and registrar. Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor’s consent. CMPT 411 Senior Thesis (3 sem. hrs.) Students research a chosen area of computing science and provide a final written report. NB: Normally 2 sem. hrs. are assigned for a senior thesis unless prior arrangement is made with the department chair. Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor’s consent.

2.00
CMPT 411 CMPT 411 - Senior Thesis

Students research a chosen area of computing science and provide a final written report. NB: Normally 2 sem. hrs. are assigned for a senior thesis unless prior arrangement is made with the department chair. Prerequisite(s): CMPT 409, a related directed study in preparation, or instructor’s consent.

3.00
CMPT 419 CMPT 419 - Project Preparation

Students are required to choose a topic for their senior group project (CMPT 420 or 421) in consultation with the instructor. Selected readings and references pertinent to the topic are assigned. A final written report (software requirements document) is produced giving a detailed specification of the proposed software project. NB: A student is allowed credit for only one of CMPT 409 or 419. Prerequisite(s): Advanced standing in computing science or instructor’s consent.

1.00
CMPT 420 CMPT 420 - Special Topics - Senior Collaborative Project

Students work on a major collaborative software project in a chosen area of computing science and provide a final report and presentation. At least two, and normally not more than five people, work as a team to design, code, debug, test, and document the software. Prerequisite(s): CMPT 419, a related directed study, or instructor’s consent.

(1-6 sem. hrs.)

6.00
CMPT 421 CMPT 421 - Special Topics - Senior Collaborative Project

Students work on a major collaborative software project in a chosen area of computing science and provide a final report and presentation. At least two, and normally not more than five people, work as a team to design, code, debug, test, and document the software.NB: The choice of CMPT 420 or both 420 and 421 depends on the instructor’s assessment of the proposed project’s size and complexity. Prerequisite(s): CMPT 420.

(1–6 sem. hrs.)

6.00
CMPT 470 CMPT 470 - Introduction to Bioinformatics

An overview of the interdisciplinary science of genomics, proteomics, and bioinformatics which applies the tools of information technology (computer hardware and software) to analyze biological data such as gene or protein sequences. This course examines the theory of bioinformatics as well as its practical application to biological problems using approaches such as BLAST searches, phylogenetics, and protein structure function analysis. Cross-listed: BIOT 470 or BIOL 470 Prerequisite(s): CMPT 150, 166, and 231.

3.00