Computing Science Courses

Computing Science courses may be used to satisfy core requirements for natural sciences but not for a laboratory science. ISYS one-hour and half-hour modules may not be counted toward any computing requirement for a major, concentration, or minor in Computing Science.

NB: Students studying programming must master very large amounts of technical material and demonstrate their mastery in written form. For this reason, a high level of English reading and writing skills is required before taking the following courses. Students who lack such skills should take courses to develop them before considering enrolment in any programming course.

CMPT courses numbered below 130 do not count towards a Mathematics, Applied Mathematics with Computing Science, or Computing Science major, concentration, or minor.


CMPT 113 Introduction to Information Systems and
Web Technologies (3 sem. hrs.)
An introductory level of understanding of information
systems with an emphasis on web technologies.
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.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 113.
Prerequisite(s): None. (0-0; 3-0)

CMPT 140 Introduction to Programming (Part 1)
(3 sem. hrs.)
A more gradual introduction to programming and
problem solving than CMPT 141. Using systematic
and structured techniques in the context of problem
definition, the determination of input/output
requirements, preparation of problem solving algorithms,
and writing simple code. Debugging programs and
producing internal and external documentation that
specifies how the program can be used and the methods
by which the program achieves its objectives.
NB: CMPT 140, 145 is the normal sequence for most
programming students. This course may be offered in a
six-week format with five classes per week.
Cross-listed: ISYS 140.
Prerequisite(s): None, but students must be familiar with
using a computer. (3-1-3 or 3-1-3)


CMPT 150 Introduction to Discrete Math (3 sem. hrs.)
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, combinatories, and algebraic structures.
This course may be taken by non-majors for non-lab
science credit.
NB: Not offered every year. See Department chair.
Cross-listed: MATH 150.
Prerequisite(s): B.C. high school Mathematics 12, or
MATH 101, or the equivalent. (3-0 or 3-0)

CMPT 166 Intermediate Programming (3 sem. hrs.)
Intermediate programming techniques in one or more
programming notations.
Cross-listed: ISYS 166.
Prerequisite(s): CMPT 141 or 145 or equivalent with a
minimum grade of C+. (2-3; 0-0)

CMPT 200 Computing Projects (1-3 sem. hrs.)
Possible projects include: a second 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): Second year standing in Computing
Science and in the subject area of the proposed project.
(3-3 or 3-3)

CMPT 211 Web Technologies (3 sem. hrs.)
This course provides students with a deeper level of
understanding of web technologies. Students learn how to
author server-sided dynamic web pages and sites utilizing
a web programming language, such as PHP coupled
with a database interface such as MySQL. The course
prepares students to develop database aware server-sided
web pages and sites. This course is specifically designed
to provide the student with instruction in the latest web
technologies; therefore, the exact technology taught from
year to year depends on W3C, programming language,
and database standards development.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 211.
Prerequisite(s): CMPT 113, 140 (or suitable
programming equivalent courses), and 237. (3-0 or 3-0)

CMPT 231 Data Structures and Algorithms
(3 sem. hrs.)
Basic organization of programs, optimizing program
structure, modularization. Data structures, searching
and sorting algorithms, handling large data sets, analysis
of algorithms.
NB: Not offered every year. See Department chair.
Prerequisite(s): CMPT 141 or instructor’s consent.
(3-3 or 3-3)

CMPT 237 Introduction to Database Management
Systems (3 sem. hrs.)
Introduction to the common methods of structuring files
for a variety of applications and to methods of using data
organization techniques in the design and management
of databases.
NB: Not offered every year. See Department chair. Students
with credit for CMPT 337 may not take this course.
Cross-listed: ISYS 237. (3-2 or 3-2)

CMPT 242 Computing Machine Organization
(3 sem. hrs.)
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 141 or equivalent.
(3-0-3 or 3-0-3)

CMPT 320 Digital Electronics and Instrumentation
(3 sem. hrs.)
To provide students with a working knowledge of
basic semiconductor devices and gates and their use for
implementing logic devices and simple measurement
and control functions, and to provide experience in
constructing and using circuit diagrams and test/
measurement equipment.
NB: Not offered every year. See Department chair.
Cross-listed: PHYS 320.
Prerequisite(s): CMPT 141; MATH 123, 124; PHYS
230; or instructor’s consent. (3-0-3 or 3-0-3)

CMPT 325 Distributed Systems and Networking
(3 sem. hrs.)
Network operating systems, physical networks, and the
construction and maintenance of server sites.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 325.
Prerequisite(s): third year standing in Computing Science
or Information Systems. (3-0-3 or 3-0-3)

CMPT 330 Numerical Analysis (3 sem. hrs.)
Numerical techniques for solving problems in applied
mathematics. Error analysis, roots of equations,
interpolation, numerical differentiation and integration,
ordinary differential equations, matrix methods.
NB: Not offered every year. See Department chair.
Cross-listed: MATH 330.
Prerequisite(s): MATH 223, 250; CMPT 141; or
equivalent. (3-0 or 3-0)

CMPT 334 Computer Systems Software (3 sem. hrs.)
Operating system and control software at a low level,
memory management, and system architecture are
among the topics considered.
NB: Not offered every year. See Department chair.
Prerequisite(s): CMPT 242. (3-0-3 or 3-0-3)

CMPT 338 Advanced Topics in Database Management
(3 sem. hrs.)
Advanced topics on implementation, query optimization,
transaction processing, concurrency, control, recovery,
security, distributed data issues, data warehousing, and
data mining are discussed. It concludes with an overview
of new trends in the emerging database applications.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 338.
Prerequisite(s): CMPT/ISYS 237. (3-0 or 3-0)

CMPT 340 Discrete Structures and Computing Theory
(3 sem. hrs.)
This course continues CMPT 150. It also includes
models of computation, formal languages, and
algorithms. It may include topics such as advanced
graph theory and applications, optimization problems,
autonoma theory, and encryption.
NB: Not offered every year. See Department chair.
Cross-listed: MATH 340.
Prerequisite(s): CMPT 150 or MATH 150. (0-0; 3-0)

CMPT 345 Simulation and Modeling (3 sem. hrs.)
This course is designed to give Computing Science/
Applied Mathematics students the ability to analyze,
formulate, and program problems related to discrete
simulation methods. Students learn and use simulation
languages. The course concentrates on the language
GPSS-V; however, an introduction is also provided
to other languages such as SIMSCRIPT II.5. 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.
NB: Not offered every year. See Department chair.
Prerequisite(s): Third year standing in Computing
Science, Applied Mathematics, or Physics, or permission
of the instructor. (3-0-3 or 3-0-3)

CMPT 350 Operations Research (3 sem. hrs.)
Linear programming, duality, network analysis, queuing
theory, inventory theory, dynamic programming, nonlinear
programming.
NB: Not offered every year. See Department chair.
Cross-listed: MATH 350.
Prerequisite(s): Knowledge of a programming language
and MATH 223, 250. (3-0 or 3-0)

CMPT 360 Comparative Programming Languages
(3 sem. hrs.)
The history and development of modern programming
languages. The user interfaces and internal operations
of the major notations are examined in detail. Students
are expected to become proficient in at least four
languages they have not previously learned, typically
chosen from Oberon, Java, Pascal, Ada, Smalltalk,
Prolog, Scheme, APL (or J), C (or C++), and one or
more scripting languages.
NB: Not offered every year. See Department chair.
Prerequisite(s): CMPT 141, 143, or 145; and at least one
second year Computing Science course. (3-0-3 or 3-0-3)

CMPT 370 Advanced Programming Paradigms
(3 sem. hrs.)
This course is designed to provide already experienced
students with some of the advanced tools that they
need to take their places as competent professional
programmers. The principal paradigms considered are:
exception handling, advanced algorithms, event driven
programming, the graphics user interface, generic
programming, generic programming, and objectoriented
programming.
NB: Not offered every year. See Department chair.
Prerequisite(s): CMPT 141 (or 143 or 145) and
either CMPT 165; 231, 285, or second year transfer
from another school of computing with instructor’s
permission. (3-3 or 3-3)

CMPT 380 Logic Programming and Artificial
Intelligence (3 sem. hrs.)
Artificial Intelligence: knowledge representation, logic
programming, knowledge inference. Application domains
within the discipline of Artificial Intelligence include
logical and probabilistic reasoning, learning, natural
language understanding, vision, and expert systems.
NB: Not offered every year. See Department chair.
Prerequisite(s): CMPT 141, 143 or 145, or equivalent
and at least 12 sem. hrs. of Computing Science.
(3-3 or 3-3)

CMPT 385 Software Engineering (3 sem. hrs.)
An introduction to the theory of designing and carrying
out large software projects. All stages of the software
engineering cycle are examined and experienced, and
planning for at least one project is undertaken.
NB: Not offered every year. See Department chair. Students
with credit for CMPT 285 may not take this course.
Cross-listed: ISYS 385.
Prerequisite(s): Proficiency in C, C++, Java, Pascal,
Modula-2 or Ada; CMPT 141, 143, or 145; CMPT 231,
and 237. (3-3; 0-0)

CMPT 386 Software Engineering Project (3 sem. hrs.)
The project designed in CMPT 385 are carried
through to completion and tested. Students may
count a maximum of 7 sem. hrs. toward their minor,
concentration, or major from among CMPT 387; 400,
409, 410, 411, 419, 420, 421, or other CMPT or ISYS
offerings designated as a project course. Any additional
credits earned from such courses must be counted as
electives. Students may do either a thesis (410/411) or a
collaborative project (420/421), but not both.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 386.
Prerequisite(s): Grade of B- in CMPT/ISYS 385 and the
ability to work on a team. (0-0; 1-6)

CMPT 387 Software Engineering Project II
(3 sem. hrs.)
The project designed in CMPT 385/386 are carried
through to completion and tested. Students may
count a maximum of 7 sem. hrs. toward their minor,
concentration, or major from among CMPT 387; 400,
409, 410, 411, 419, 420, 421, or other CMPT or ISYS
offerings designated as a project course. Any additional
credits earned from such courses must be counted as
electives. Students may do either a thesis (410/411) or a
collaborative project (420/421), but not both.
NB: Not offered every year. See Department chair.
Cross-listed: ISYS 387.
Prerequisite(s): Grade of B- in CMPT/ISYS 385 and the
ability to work on a team. (0-0; 1-6)

CMPT 400 Directed Studies in Computing Science
(1-3 sem. hrs.)
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.

CMPT 409 Thesis Preparation (1 sem. hr.)
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.
Cross-listed: ISYS 409.
Prerequisite(s): Advanced standing in Computing Science
or instructor’s consent.

CMPT 410 Senior Thesis (2 sem. hrs.)
Research in a chosen area of Computing Science with a
final written report.
NB: Normally 2 sem. hrs. are assigned unless by prior
arrangement with the Department chair and Registrar.
Cross-listed: ISYS 410.
Prerequisite(s): CMPT 409, a related directed study in
preparation, or instructor’s consent.

CMPT 411 Senior Thesis (3 sem. hrs.)
Research in a chosen area of Computing Science with a
final written report.
NB: Normally 2 sem. hrs. are assigned for a senior
thesis unless prior arrangement is made with the
Department chair.
Cross-listed: ISYS 411.
Prerequisite(s): CMPT 409, a related directed study in
preparation, or instructor’s consent.

CMPT 419 Project Preparation (1 sem. hr.)
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/
ISYS 409 or 419.
Cross-listed: ISYS 419
Prerequisite(s): Advanced standing in Computing Science
or instructor’s consent.

CMPT 420 Senior Collaborative Project (1-6 sem. hrs.)
A major collaborative software project in a chosen area of
Computing Science with 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 421 depends on the
instructor’s assessment of the size and complexity of the
proposed project.
Prerequisite(s): CMPT 419, a related directed study, or
instructor’s consent.

CMPT 421 Senior Collaborative Project (1-6 sem. hrs.)
A major collaborative software project in a chosen area of
Computing Science with 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 421 depends on the
instructor’s assessment of the proposed project’s size
and complexity.
Prerequisite(s): CMPT 419, a related directed study, or
instructor’s consent.

CMPT 480 Ethical and Social Issues in High
Technology (3 sem. hrs.)
A study from a Christian context of some historical,
social, and ethical issues relating to the development
and use of scientific ideas and techniques. Science and
technology are examined in their total social, historical,
and intellectual contexts, with a view to tracing, in
possible new developments, what the key issues are today.
Students are challenged to think through the issues
from more than one point of view and to learn how to
determine appropriate Christian responses to them.
NB: Not offered every year. Offered only in fall
semester. See Department chair. This course may be
substituted for IDIS 400 and/or NATS 487, but not
NATS 490. Students need to take both CMPT 480
and NATS 490 to meet the core requirement in upper
level Interdisciplinary Studies. Students from other
departments may take CMPT 480 as their IDIS 400
requirement, but they should be familiar with the
history and/or the practice of science.
Cross-listed: ISYS 480.
Prerequisite(s): Third year standing overall and at least
one Computing Science or lab science course at the
university level. (3-0; 0-0)