This is an archived copy of the 2014-2015 calendar. To access the most recent version of the calendar, please visit http://calendar.carleton.ca.

Computer Science

School of Computer Science
(Faculty of Science)
5302 Herzberg Bldg.
613-520-4333
http://scs.carleton.ca

This section presents the requirements for programs in:

The Co-operative Education Option is available in Computer Science. See the Co-operative Education section of this Calendar for details.

Graduation Requirements

In addition to the requirements listed below, students must satisfy the University regulations common to all undergraduate students (see the Academic Regulations of the University section of this Calendar).

Students should consult with the School when planning their program and selecting courses.

Course Categories

The following categories of courses are used in defining the program requirements in Computer Science.

Computer Science (COMP)

In addition to the courses with subject code COMP, the following courses offered by the Sprott School of Business, the Faculty of Engineering and Design, and the Faculty of Arts and Social Sciences are relevant to the B.C.S. program and the Combined Honours programs. These courses are counted as Computer Science credits in B.C.S., Minor in Computer Science and Combined Honours program requirements:

BUSI 2400 [0.5]Foundations of Information Systems
BUSI 4400 [0.5]IS Strategy, Management and Acquisition
BUSI 4402 [0.5]Information Systems Practicum
BUSI 4406 [0.5]Business Analytics
SYSC 3303 [0.5]Real-Time Concurrent Systems
SYSC 4005 [0.5]Discrete Simulation/Modeling
SYSC 4106 [0.5]Software Product Management
SYSC 4507 [0.5]Computer Systems Architecture

Approved Arts or Social Sciences or Science or Business

All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public Affairs, and the Sprott School of Business. In Science, only courses in BIOL, BIOC, CHEM, ENSC, ERTH, FOOD, ISCI, NSCI, PHYS, TSES. This excludes all courses in COMP, MATH, and STAT. Also excluded are courses in the Prohibited Courses category.

Natural Science Electives

This category is defined with the B.Math. programs. See the Mathematics Program section of this Calendar for details.

Prohibited Courses

The following courses cannot be used for credit in the B.C.S., the Computer Science Minor, or any Combined Computer Science program:

BUSI 1402 [0.5]Introduction to Business Information and Communication Technologies
BUSI 2402 [0.5]Business Applications Development
COMP 1001 [0.5]Introduction to Computers for the Arts and Social Sciences
COMP 1004 [0.5]Introduction to Computers for the Sciences
MATH 1009 [0.5]Calculus: with Applications to Business
MATH 1119 [0.5]Linear Algebra: with Applications to Business
ECON 1401/MATH 1401 [0.5]Elementary Mathematics for Economics I
ECON 1402/MATH 1402 [0.5]Elementary Mathematics for Economics II
and all courses in BIT, IMD and NET.

Program Requirements

Bachelor of Computer Science Honours
Bachelor of Computer Science Honours Streams

B.C.S. Honours students may either register in the B.C.S. Honours degree below, or in one of the B.C.S. Honours streams that follow.

Computer Science
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1805 [0.5]
Discrete Structures I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  0.5 credit in COMP at the 2000-level or above0.5
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business5.0
7.  4.0 credits in free electives.4.0
Total Credits20.0

Computer Science
Algorithms Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1805 [0.5]
Discrete Structures I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  1.5 credits in:1.5
COMP 3801 [0.5]
Algorithms for Modern Data Sets
COMP 3803 [0.5]
Introduction to Theory of Computation
COMP 4804 [0.5]
Design and Analysis of Algorithms II
3.  0.5 credit from:0.5
COMP 3802 [0.5]
Computational Geometry
COMP 4001 [0.5]
Distributed Computing
4.  1.0 credit in COMP at the 4000-level or above1.0
B. Credits Not Included in the Major CGPA (10.0 credits)
5.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
6.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
8.  3.0 credits in free electives3.0
Total Credits20.0

Computer Science
Management and Business Systems Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1805 [0.5]
Discrete Structures I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  0.5 credit in COMP at the 2000-level or above0.5
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  1.0 credit from:1.0
BUSI 1003 and 0.5 credit in 2000-level BUSI, or
BUSI 1001 [0.5]
& BUSI 1002 [0.5]
Principles of Financial Accounting
   and Management Accounting
7.  2.0 credits in:2.0
BUSI 2101 [0.5]
Introduction to Organizational Behaviour
BUSI 2301 [0.5]
Introduction to Operations Management
BUSI 2503 [0.5]
Basic Finance for Non-Business Majors
BUSI 3402 [0.5]
Systems Analysis and Design
8.  1.0 credit in:1.0
ECON 1000 [1.0]
Introduction to Economics
9.  1.5 credit in BUSI at the 3000-level or above1.5
10.  3.5 credits in free electives.3.5
Total Credits20.0

Computer Science
Software Engineering Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.5 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1805 [0.5]
Discrete Structures I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  0.5 credit from:0.5
COMP 3008 [0.5]
Human-Computer Interaction
COMP 4104 [0.5]
Principles and Practice of Distributed Programming
3.  1.5 credits in:1.5
SYSC 3303 [0.5]
Real-Time Concurrent Systems
COMP 4004 [0.5]
Software Quality Assurance
SYSC 4106 [0.5]
Software Product Management
4.  0.5 credit in COMP at the 4000-level0.5
B. Credits Not Included in the Major CGPA (10.5 credits)
5.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
6.  0.5 credit from:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
8.  3.5 credits in free electives.3.5
Total Credits20.0

Computer Science
Network Computing Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  0.5 credit in:0.5
COMP 3203 [0.5]
Principles of Computer Networks
3.  1.5 credit from:1.5
COMP 4000 [0.5]
Distributed Operating Systems
COMP 4001 [0.5]
Distributed Computing
COMP 4009 [0.5]
Programming for Clusters and Multi-Core Processors
COMP 4104 [0.5]
Principles and Practice of Distributed Programming
COMP 4108 [0.5]
Computer Systems Security
COMP 4203 [0.5]
Wireless Networks and Security
COMP 4804 [0.5]
Design and Analysis of Algorithms II
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
7.  4.0 credits in free electives.4.0
Total Credits20.0

Computer Science
Computer and Internet Security Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.5 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  2.0 credits in:2.0
COMP 3008 [0.5]
Human-Computer Interaction
COMP 3203 [0.5]
Principles of Computer Networks
COMP 4108 [0.5]
Computer Systems Security
COMP 4109 [0.5]
Applied Cryptography
3.  0.5 credit in COMP at the 4000-level0.5
B. Credits Not Included in the Major CGPA (10.5 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
7.  3.5 credits in free electives3.5
Total Credits20.0

Computer Science
Mobile Computing Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  2.0 credits in:2.0
COMP 1601 [0.5]
Introduction to Mobile Application Development
COMP 2601 [0.5]
Mobile Applications
COMP 3601 [0.5]
Social Networking
COMP 4601 [0.5]
Mobile Multimedia
3.  1.0 credit in COMP at the 4000-level1.0
B. Credits Not Included in the Major CGPA (10.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
7.  3.0 credits in free electives.3.0
Total Credits20.0

Computer Science
Computer Game Development Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  2.0 credits in:2.0
COMP 1501 [0.5]
Introduction to Computer Game Design
COMP 2501 [0.5]
Computer Game Design and Development
COMP 3501 [0.5]
Foundations of Game Programming and Computer Graphics
COMP 4501 [0.5]
Advanced Computer Game Design and Development
3.  1.0 credit in COMP at the 4000-level1.0
B. Credits Not Included in the Major CGPA (10.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
6.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
8.  3.0 credits in free electives3.0
Total Credits20.0

Computer Science
Robotics Stream
B.C.S. Honours (20.0 credits)

A. Credits included in the Major CGPA (10.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  2.0 credits in:2.0
COMP 1807 [0.5]
Introduction to Robotics
COMP 2807 [0.5]
Fundamentals of Mobile Robot Programming
COMP 3802 [0.5]
Computational Geometry
COMP 4106 [0.5]
Artificial Intelligence
3.  1.0 credit in COMP at the 4000-level1.0
B. Credits not included in the Major CGPA (10.0 credits)
4.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
7.  3.0 credits in free electives3.0
Total Credits20.0

Computer Science
Biomedical Computing Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  1.0 credit in:1.0
COMP 3308 [0.5]
Bioinformatics
COMP 4804 [0.5]
Design and Analysis of Algorithms II
3.  0.5 credit in COMP at the 4000-level0.5
4.  0.5 credit from:0.5
COMP 4300 [0.5]
Computational Molecular Biology
COMP 4308 [0.5]
Computational Systems Biology
B. Credits not included in the Major CGPA (11.0 credits)
5.  1.5 credits from:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
6.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  0.5 credit in COMP or MATH electives at the 2000-level or above0.5
8.  2.0 credits in:2.0
BIOL 1103 [0.5]
Foundations of Biology I
BIOL 1104 [0.5]
Foundations of Biology II
BIOL 2104 [0.5]
Introductory Genetics
BIOL 2600 [0.5]
Introduction to Ecology
9.  0.5 credit from:0.5
BIOL 3104 [0.5]
Molecular Genetics
BIOL 3609 [0.5]
Evolutionary Concepts
10.  2.0 credits in:2.0
CHEM 1001 [0.5]
General Chemistry I
CHEM 1002 [0.5]
General Chemistry II
CHEM 2203 [0.5]
Organic Chemistry I
CHEM 2204 [0.5]
Organic Chemistry II
11.  1.0 credit in:1.0
BIOC 2200 [0.5]
Cellular Biochemistry
BIOC 3101 [0.5]
General Biochemistry I
12.  3.0 credits in free electives3.0
Total Credits20.0

Computer Science
Psychology Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  7.0 credits in:7.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 4905 [0.5]
Honours Project
2.  0.5 credit in:0.5
COMP 3008 [0.5]
Human-Computer Interaction
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
& MATH 1104 [0.5]
Elementary Calculus I
   and Linear Algebra for Engineering or Science
& MATH at the 2000-level or above
or
MATH 1002 [1.0]
& MATH 1104 [0.5]
Calculus and Introductory Analysis I
   and Linear Algebra for Engineering or Science
or
MATH 1007 [0.5]
& MATH 1102 [1.0]
Elementary Calculus I
   and Algebra I
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  1.0 credit in:1.0
PSYC 1001 [0.5]
Introduction to Psychology I
PSYC 1002 [0.5]
Introduction to Psychology II
7.  2.0 credits in:2.0
PSYC 2001 [0.5]
Introduction to Research Methods in Psychology
PSYC 2100 [0.5]
Introduction to Social Psychology
PSYC 2700 [0.5]
Introduction to Cognitive Psychology
PSYC 2800 [0.5]
Introduction to Human Factors
8.  1.0 credit in PSYC at the 3000-level or above1.0
9.  0.5 credit from:0.5
PSYC 3102 [0.5]
Cognitive Processes in Social Psychology
PSYC 3105 [0.5]
Organizational Psychology
PSYC 3702 [0.5]
Perception
10.  1.0 credit in:1.0
PSYC 4800 [0.5]
Aspects of Product Design Methodology
0.5 credit PSYC at the 4000 level
13.  3.5 credits in free electives.3.5
Total Credits20.0

Computer Science
B.C.S. Major (20.0 credits)

A. Credits Included in the Major CGPA (7.5 credits)
1.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
2.  1.0 credit in COMP at the 3000-level or above1.0
3.  0.5 credit in COMP at the 4000-level0.5
B. Credits Not Included in the Major CGPA (12.5 credits)
4.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Approved Arts or Social Sciences or Science or Business Electives5.0
7.  6.0 credits in free electives.6.0
Total Credits20.0

Computer Science and Mathematics
B.Math. Combined Honours

Students must register in one of the two concentrations below, each of which adds 5.0 credits to the Major CGPA.

Computer Science and Mathematics:
Concentration in Computing Theory and Numerical Methods
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.0 credits)
1.  4.5 credits in:4.5
MATH 1002 [1.0]
Calculus and Introductory Analysis I
MATH 1102 [1.0]
Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2000 [1.0]
Calculus and Introductory Analysis II (Honours)
MATH 2100 [1.0]
Algebra II (Honours)
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
MATH 4905 [0.5]
Honours Project (Honours)
Concentration in Computing Theory and Numerical Methods
4.  3.0 credits from:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
MATH 3801 [0.5]
Linear Programming
MATH 3806 [0.5]
Numerical Analysis (Honours)
COMP 4804 [0.5]
Design and Analysis of Algorithms II
5.  0.5 credit from:0.5
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
6.  1.0 credit from:1.0
MATH 4109 [0.5]
Fields and Coding Theory (Honours)
MATH 4801 [0.5]
Topics in Combinatorics (Honours)
MATH 4802 [0.5]
Introduction to Mathematical Logic (Honours)
MATH 4803 [0.5]
Computable Functions (Honours)
MATH 4805 [0.5]
Theory of Automata (Honours)
MATH 4806 [0.5]
Numerical Linear Algebra (Honours)
MATH 4807 [0.5]
Game Theory (Honours)
MATH 4808 [0.5]
Graph Theory and Algorithms (Honours)
MATH 4811 [0.5]
Combinatorial Design Theory (Honours)
MATH 4816 [0.5]
Numerical Analysis for Differential Equations (Honours)
MATH 4821 [0.5]
Quantum Computing (Honours)
MATH 4822 [0.5]
Wavelets and Digital Signal Processing (Honours)
7.  0.5 credit in COMP at the 3000-level or above.0.5
B. Credits Not Included in the Major CGPA (4.0 credits)
8.  4.0 credits not in MATH, STAT, or COMP consisting of:4.0
a. 1.0 credit in Natural Science electives
b. 2.0 credits in Approved Arts or Social Sciences or Business
c. 1.0 credit at the 2000-level or higher in Natural Science electives or in Approved Arts and Social Sciences
Total Credits20.0
Note:
The following courses offered by the School of Business and the Faculty of Engineering are treated as Computer Science courses in this program:
Business
BUSI 2400 [0.5]Foundations of Information Systems
BUSI 4400 [0.5]IS Strategy, Management and Acquisition
BUSI 4402 [0.5]Information Systems Practicum
BUSI 4406 [0.5]Business Analytics
Engineering
SYSC 3303 [0.5]Real-Time Concurrent Systems
SYSC 4005 [0.5]Discrete Simulation/Modeling
SYSC 4507 [0.5]Computer Systems Architecture

Computer Science and Mathematics:
Concentration in Statistics and Computing
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.0 credits)
1.  4.5 credits in:4.5
MATH 1002 [1.0]
Calculus and Introductory Analysis I
MATH 1102 [1.0]
Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2000 [1.0]
Calculus and Introductory Analysis II (Honours)
MATH 2100 [1.0]
Algebra II (Honours)
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
MATH 4905 [0.5]
Honours Project (Honours)
Concentration:
4.  3.0 credits in:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3806 [0.5]
Numerical Analysis (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
5.  0.5 credit from:0.5
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
6.  1.0 credit in STAT at the 4000-level1.0
7.  0.5 credit in COMP at the 4000-level.0.5
B. Credits Not Included in the Major CGPA (4.0 credits)
8.  4.0 credits not in MATH, STAT, or COMP consisting of:4.0
a. 1.0 credit in Natural Science electives
b. 2.0 credits in Approved Arts or Social Sciences or Business
c. 1.0 credit at the 2000-level or higher in Natural Science electives or in Approved Arts and Social Sciences
Total Credits20.0

Minor in Computer Science (4.0 credits)

Requirements
1.  2.5 credits in:2.5
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
2.  1.0 credit from:1.0
COMP 1805 [0.5]
Discrete Structures I (and/or COMP at the 2000-level or above)
3.  0.5 credit in COMP at the 3000-level or above0.5
4. Course equivalencies and transfer credits can be used for at most 2.0 credits of the minor; the remaining 2.0 credits must be courses listed in the COMP section of this Calendar
5. The remaining requirements of the major discipline(s) and degree must be satisfied.
Total Credits4.0

Computer Science (COMP) Courses

School of Computer Science

Faculty of Science




Note: some of the following Computer Science courses are cross-listed from other parts of the Calendar. In every such case, only one course is actually offered and the two numbers are alternate identifiers for this single course. Students in the B.C.S. program should register in such a course under the Computer Science (COMP) number.

COMP 1001 [0.5 credit]
Introduction to Computers for the Arts and Social Sciences

This course is intended to give students in the arts and social sciences a working knowledge of computers and their applications; computer fundamentals; use of computing facilities; introduction to graphical user interfaces; a sampling of software packages applied to problems in the arts and social sciences.
Precludes additional credit for COMP 1004. This course cannot be taken for credit by students in Business, Engineering, Computer Science, Mathematics or Science.
Lectures three hours a week.

COMP 1004 [0.5 credit]
Introduction to Computers for the Sciences

Working knowledge of computers and their applications with particular reference to problems in Science. Computer fundamentals and the use of application packages such as spreadsheets, databases and symbolic Mathematics programs. A basic familiarity with computers is assumed.
Precludes additional credit for COMP 1001. This course cannot be taken for credit by students in the B.C.S. program or combined programs in Computer Science.
Lectures three hours a week.

COMP 1005 [0.5 credit]
Introduction to Computer Science I

A first course in programming, emphasizing problem solving and computational thinking. Topics include pseudocode, variables, conditionals, iteration, arrays, objects, functions, sorting, searching, and simulation.
Precludes additional credit for COMP 1405, SYSC 1100, ECOR 1606, SYSC 1005.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 1006 [0.5 credit]
Introduction to Computer Science II

A second course in programming emphasizing problem solving and computational thinking in an object-oriented language. Topics include abstraction, mutable data structures, methods, inheritance, polymorphism, recursion, program efficiency, testing and debugging.
Precludes additional credit for COMP 1406, SYSC 1101, SYSC 2004.
Prerequisite(s): one of COMP 1005, COMP 1405, SYSC 1005, ECOR 1606.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 1405 [0.5 credit]
Introduction to Computer Science I

A first course in programming for B.C.S. students emphasizing problem solving and computational thinking. Topics include pseudocode, variables, conditionals, iteration, arrays, objects, functions, sorting, searching, and simulation.
Precludes additional credit for COMP 1005, SYSC 1100, ECOR 1606, SYSC 1005.
Prerequisite(s): restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 1406 [0.5 credit]
Introduction to Computer Science II

A second course in programming for BCS students, emphasizing problem solving and computational thinking in an object-oriented language. Topics include abstraction, mutable data structures, methods, inheritance, polymorphism, recursion, program efficiency, testing and debugging.
Precludes additional credit for COMP 1006, SYSC 1101, SYSC 2004.
Prerequisite(s): one of COMP 1405, COMP 1005, ECOR 1606, SYSC 1005. Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 1501 [0.5 credit]
Introduction to Computer Game Design

Introduction to computer game programming interfaces. Topics may include: game balance and level design; storytelling and narrative; basic game architecture; sprite-based games and isometric games; representation of scenes; user interaction; architecture of game consoles; development tools for game consoles; interaction with game peripherals.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 1601 [0.5 credit]
Introduction to Mobile Application Development

Introduction to developing mobile applications using the Mac OS X platform. Topics include: the Objective-C programming language; development tools; framework API's; and the Quartz graphic system. Extensive practical experience with development for Apple mobile devices such as the iPhone.
Prerequisite(s): one of COMP 1405, COMP 1005, SYSC 1005, ECOR 1606.
Lecture/lab four hours a week.

COMP 1805 [0.5 credit]
Discrete Structures I

Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.
Also listed as MATH 1805.
Precludes additional credit for MATH 1800.
Prerequisite(s): one Grade 12 university preparation mathematics course.
Lectures three hours a week, tutorial one hour a week.

COMP 1807 [0.5 credit]
Introduction to Robotics

An introduction to the field of mobile robots and their applications from a computer science perspective. The course will discuss common robot programming architectures and strategies. Students will build various robot configurations and experiment with a variety of sensors using behavior-based programming.
Prerequisite(s): one of COMP 1405, COMP 1005, SYSC 1005, ECOR 1606.
Lab four hours a week.

COMP 2401 [0.5 credit]
Introduction to Systems Programming

Introduction to system-level programming with fundamental OS concepts, procedures, primitive data types, user-defined types. Topics may include process management, memory management, process coordination and synchronization, inter-process communication, file systems, networking, pointers, heap and stack memory management, and system/library calls.
Precludes additional credit for COMP 1002, COMP 1402, COMP 2001, SYSC 2006.
Prerequisite(s): one of COMP 1406, COMP 1006 or SYSC 2004, with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 2402 [0.5 credit]
Abstract Data Types and Algorithms

Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees and graphs. Special attention is given to abstraction, interface specification and hierarchical design using an object-oriented programming language.
Precludes additional credit for COMP 2002, SYSC 2002, SYSC 2100.
Prerequisite(s): one of COMP 1406, COMP 1006, SYSC 2004, with a minimum grade of C-.
Lectures three hours a week.

COMP 2404 [0.5 credit]
Introduction to Software Engineering

Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs. Topics include abstraction, modularity, encapsulation, reusability, and design patterns.
Precludes additional credit for COMP 2004 (no longer offered), SYSC 3010, SYSC 3110.
Prerequisite(s): one of COMP 2401, SYSC 2006.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 2406 [0.5 credit]
Fundamentals of Web Applications

An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications. Topics include: scripting and functional languages, language-based virtual machines, database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.
Precludes additional credit for COMP 2005, COMP 2006, COMP 2405.
Prerequisite(s): one of COMP 1006, COMP 1406, SYSC 2004.
Lectures three hours a week and tutorial one and a half hours a week.

COMP 2501 [0.5 credit]
Computer Game Design and Development

Topics may include: user interaction in multiplayer games, representation of animated scenes, tools for game character development, special effects, sound programming, game AI, motion planning and control, collision detection and physics, digital rights management.
Prerequisite(s): MATH 1104, COMP 1501, one of COMP 1406, COMP 1006 or SYSC 2004, and one of COMP 2401, or SYSC 2006.
Lectures three hours a week, tutorial one and a half hours a week.

COMP 2601 [0.5 credit]
Mobile Applications

Development of applications for mobile environments taking advantage of gesture-based input and using location and presence services. Topics include introduction to low-level network services and mobile platforms, description of architectural patterns, principles of mobile development and interaction styles for network service usage.
Prerequisite(s): COMP 1601.
Lecture/lab four hours a week.

COMP 2804 [0.5 credit]
Discrete Structures II

A second course in discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability, basic statistics, recurrence relations, randomized algorithms. Material is illustrated through examples from computing.
Prerequisite(s): COMP 1805 or MATH 1800.
Lectures three hours a week.

COMP 2807 [0.5 credit]
Fundamentals of Mobile Robot Programming

A continuation of COMP 1807, this course will focus on data uncertainty and various timing issues inherent to the field of mobile robot programming. Topics may include position estimation, forward/inverse kinematics, navigation, data-logging, mapping and robot-computer interaction through wireless communication.
Prerequisite(s): COMP 1807.
Lab four hours a week.

COMP 3000 [0.5 credit]
Operating Systems

Operating system implementation course stressing fundamental issues in design and how they relate to modern computer architectures. Assignments involve the modification and extension of a multitasking operating system.
Precludes additional credit for SYSC 3001, SYSC 4001.
Prerequisite(s): one of COMP 2402, SYSC 2100, and one of COMP 2401, SYSC 2006.
Lectures three hours a week.

COMP 3002 [0.5 credit]
Compiler Construction

The structure, organization and design of the phases of a compiler are considered: lexical translators, syntactical translators, scope handlers, type checkers, code generators and optimizers. Components of a compiler will be implemented.
Prerequisite(s): one of COMP 2402, SYSC 2100.
Lectures three hours a week.

COMP 3004 [0.5 credit]
Object-Oriented Software Engineering

Theory and development software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.
Precludes additional credit for SYSC 3020, SYSC 3100, SYSC 3120, SYSC 4120, SYSC 4800.
Prerequisite(s): one of COMP 2404, SYSC 3010.
Lectures three hours a week.

COMP 3005 [0.5 credit]
Database Management Systems

Introduces students to concepts of database management systems, database design and file structures. Topics include: entity-relationship modeling and object oriented database design, data models (relational, network and object oriented), the relational algebra, SQL, normalization theory, physical data organization, object oriented databases and OQL.
Precludes additional credit for BUSI 3400.
Prerequisite(s): COMP 2402, or both of SYSC 2004 and SYSC 2100.
Lectures three hours a week.

COMP 3007 [0.5 credit]
Programming Paradigms

An introduction to alternative programming paradigms such as functional, constraint-based, concurrent, and logic programming.
Precludes additional credit for SYSC 3101.
Prerequisite(s): COMP 2402, or both of SYSC 2004 and SYSC 2100.
Lectures three hours a week.

COMP 3008 [0.5 credit]
Human-Computer Interaction

Fundamentals of the underlying theories, design principles, development and evaluation practices of human-computer interaction (HCI). Topics may include: theories of interaction, user interface frameworks, desktop, web, mobile, and immersive applications, usability inspection and testing methods, and qualitative and quantitative approaches to HCI research.
Prerequisite(s): one of COMP 2404, SYSC 3010, and one of COMP 2406, COMP 2405.
Lectures three hours a week.

COMP 3009 [0.5 credit]
Computer Graphics

An overview of computer graphics covering rendering, modeling, and animation. Topics include geometric primitives and modeling; image formation algorithms such as ray tracing and the Z-buffer; lighting, shading, and texture; and introduction to physics-based animation and character animation.
Prerequisite(s): COMP 2401, COMP 2402, MATH 1007, and MATH 1104.
Lectures three hours a week.

COMP 3203 [0.5 credit]
Principles of Computer Networks

This is an introductory course to the field of Network Computing. Topics include: Protocol Architectures and Internetworking, Types of Networks, Communication Protocols, End-System and Network Traffic Management, Structure of Routing and Congestion Control.
Precludes additional credit for SYSC 4602.
Prerequisite(s): one of COMP 2402, SYSC 2100, and one of COMP 2401, SYSC 2006.
Lectures three hours a week.

COMP 3308 [0.5 credit]
Bioinformatics

This practical interdisciplinary course will provide a broad overview of bioinformatics in which computer science and mathematics are applied to solve problems in molecular biology. Topics include gene prediction, sequence alignment, phylogeny, molecular interactions, macromolecular structure prediction and biological databases.
Also listed as BIOC 3008.
Precludes additional credit for BIOC 4006.
Prerequisite(s): BIOC 2200 or BIOL 2200, or permission of the Biochemistry Institute.
5 hours a week, computer workshop three hours a week.

COMP 3501 [0.5 credit]
Foundations of Game Programming and Computer Graphics

Mathematical concepts of 3D engines. Topics may include: illumination and visibility determination; quaternions; homogeneous coordinates; transforms; ray tracing; bump mapping; portal systems; polygonal techniques; shadows; and linear and rotational physics.
Prerequisite(s): COMP 2402, COMP 2404, and COMP 2501.
Lectures three hours a week.

COMP 3601 [0.5 credit]
Social Networking

Introduction to virtual communities, overlay networks and social networking. Topics include architectural principles for heterogeneous social networking platforms, trust and reputation as social concepts, agent-based computing, and extraction of trends and patterns from information exchanged between community members.
Prerequisite(s): COMP 2601, or one of COMP 2404, SYSC 3010, SYSC 3110, and COMP 2406.
Lecture/lab four hours a week.

COMP 3801 [0.5 credit]
Algorithms for Modern Data Sets

Algorithm design techniques for modern data sets arising in, for example, data mining, web analytics, epidemic spreads, search engines and social networks. Topics may include streaming, memory hierarchy aware, game theoretic, parallel, distributed, cloud-based, and probabilistic algorithms.
Prerequisite(s): COMP 2804 with a minimum grade of B+.
Lecture three hours a week.

COMP 3802 [0.5 credit]
Computational Geometry

An introduction to computational geometry focusing on applications to autonomous mobile robots. Topics may include planning, probabilistic roadmaps, search strategies, coverage algorithms, watchman routes, vision-based landmark identification and multi-robot applications.
Prerequisite(s): COMP 2804 and one of COMP 2402 or SYSC 2100.
Lectures three hours a week.

COMP 3803 [0.5 credit]
Introduction to Theory of Computation

Theoretical aspects of computer science. Topics include: formal languages and automata theory, computability theory.
Precludes additional credit for COMP 2805 (no longer offered).
Prerequisite(s): COMP 2804.
Lectures three hours a week.

COMP 3804 [0.5 credit]
Design and Analysis of Algorithms I

An introduction to the design and analysis of algorithms. Topics include: divide-and-conquer, dynamic programming, linear programming, greedy algorithms, graph algorithms, NP-completeness.
Also listed as MATH 3804.
Prerequisite(s): one of COMP 2402 or SYSC 2100, and either COMP 1805/MATH 1805, or both of MATH 2007 and MATH 2108 or equivalents.
Lectures three hours a week.

COMP 3805 [0.5 credit]
Discrete Structures and Applications (Honours)

Enumeration: inclusion and exclusion, recurrence relations, generating functions and applications. Graph theory: connectivity, planarity, Hamilton paths and Euler trails. Error-correcting codes. Designs and finite geometries. Symmetry and counting.
Also listed as MATH 3855.
Precludes additional credit for MATH 3805 and MATH 3825.
Prerequisite(s): MATH 2100 or a grade of B or higher in MATH 2108 or MATH 3101.
Lectures three hours a week and one hour tutorial.

COMP 3806 [0.5 credit]
Numerical Analysis

Elementary discussion of error, polynomial interpolation, quadrature, linear systems of equations and matrix inversion, non-linear equations, difference equations and ordinary differential equations.
Also listed as MATH 3806.
Prerequisite(s): i) MATH 1002, MATH 1005 or MATH 2007 (or MATH 2001 or MATH 2002); and ii) MATH 1102 or MATH 2107; and (iii) knowledge of a computer language.
Lectures three hours a week and one hour tutorial.

COMP 3807 [0.5 credit]
Mathematical Software

Incorporation of basic numerical methods into efficient, reliable software. The course includes examination of existing software systems, e.g. linear systems, non-linear systems, optimization, or differential equations.
Also listed as MATH 3807.
Prerequisite(s): COMP 3806.

COMP 3999 [0.0 credit]
Co-operative Work Term


COMP 4000 [0.5 credit]
Distributed Operating Systems

An advanced course emphasizing the principles of distributed operating systems including networking protocols, distributed file systems, remote IPC mechanisms, graphical user interfaces, load balancing, and process migration. Case studies include current "standards" as well as novel systems under development.
Prerequisite(s): one of COMP 3203 or SYSC 4602, and one of COMP 3000, SYSC 3001, SYSC 4001.
Lectures three hours a week.

COMP 4001 [0.5 credit]
Distributed Computing

Overview of distributed computing. Topics include: computational models, communication complexity, design and analysis of distributed algorithms and protocols, fault-tolerant protocols, synchronous computations. Applications may include: communication in data networks, control in distributed system (e.g., election, distributed mutual exclusion), manipulation of distributed data (e.g., ranking).
Prerequisite(s): one of COMP 2406, COMP 2006.
Lectures three hours a week.

COMP 4002 [0.5 credit]
Real-Time 3D Game Engines

The design and implementation of game engines for real-time 3D games including topics such as camera control, environmental effects, articulated models, terrain, vegetation, collision detection, particles, emitters, triggers, portals, waypoints, mirrors, and shadows.
Prerequisite(s): COMP 2404 or SYSC 3010.
Lectures three hours a week.

COMP 4003 [0.5 credit]
Transaction Processing Systems

Concepts and architectures of transaction processing systems and on-line transaction processing, with emphasis on data integration systems. Transaction properties and models, embedded-SQL, active rules, consistency maintenance, serializability, concurrency control, recovery, data integration systems and federated databases, introduction to transactions in web services and workflow systems.
Prerequisite(s): COMP 3005 and one of COMP 2404 or SYSC 3010.
Lectures three hours a week.

COMP 4004 [0.5 credit]
Software Quality Assurance

Introduction to the theory and practice of Software Quality Assurance. Topics include: functional requirements analysis, system requirement analysis, verification and validation, traceability, white box testing, integration testing, object-oriented testing, tools, and management issues.
Precludes additional credit for SYSC 4101.
Prerequisite(s): one of COMP 3004, SYSC 3100, SYSC 4800.
Lectures three hours a week.

COMP 4009 [0.5 credit]
Programming for Clusters and Multi-Core Processors

Introduction to parallel architectures, programming languages and algorithms for processor clusters and multi-core processors. Distributed memory architectures, cluster computing, message passing parallel programming, multi-core processors, shared memory parallel programming, use of thread libraries, parallel performance analysis.
Prerequisite(s): COMP 2804, and one of COMP 2402, SYSC 2100, and one of COMP 2404, SYSC 3010, SYSC 3110.
Lectures three hours a week.

COMP 4102 [0.5 credit]
Computer Vision

This course introduces the basic ideas and techniques of computer vision. The central theme is reconstructing 3D models from 2D images. Topics include: image formation, image feature extraction, camera models, camera calibration, structure from motion, stereo, recognition, augmented reality, image searching.
Prerequisite(s): one of MATH 1104 or MATH 1107, and one of COMP 2404 or SYSC 3010.

COMP 4104 [0.5 credit]
Principles and Practice of Distributed Programming

Advanced course on distributed programming in Java. Introduces students to standard design patterns for implementing components that solve common distributed programming challenges in Java. Topics covered include: threads, message passing, coordination, distributed object technology, web-based services, and collaborative applications.
Prerequisite(s): one of COMP 3004, SYSC 3100, SYSC 4800, and one of COMP 2406, COMP 2405.
Lectures three hours a week.

COMP 4106 [0.5 credit]
Artificial Intelligence

Several areas in knowledge-based systems are covered, including recent approaches to machine learning and data mining, inference methods, knowledge-based and fuzzy systems, heuristic search, and natural language processing.
Prerequisite(s): one of COMP 2404, SYSC 3010, and one of COMP 2402, SYSC 2100.
Lectures three hours a week.

COMP 4107 [0.5 credit]
Evolutionary Computation and Artificial Life

Study of algorithms based upon biological theories of evolution, applications to machine learning and optimization problems. Genetic Algorithms, Classifier Systems, and Genetic Programming in details. Recent work in the fields of Artificial Life (swarm intelligence, distributed agents, behavior-based AI) and of connectionism is also studied.
Prerequisite(s): COMP 3007.
Lectures three hours a week.

COMP 4108 [0.5 credit]
Computer Systems Security

Introduction to information security in computer and communications systems, including network, operating systems, web and software security; Passwords, authentication applications, privacy, data integrity, anonymity, secure email, IP security, security infrastructures, firewalls, viruses, intrusion detection, network attacks.
Precludes additional credit for COMP 4103.
Prerequisite(s): one of COMP 3203 or SYSC 4602, and one of COMP 3000, SYSC 3001, SYSC 4001.
Lectures three hours a week.

COMP 4109 [0.5 credit]
Applied Cryptography

Practical aspects of cryptography. Pseudo random number generation, symmetric cryptography (stream and block ciphers), modes of operation, hash functions, message and entity authentication protocols, zero knowledge, pitfalls deploying public-key encryption and digital signatures, key distribution, secret-sharing.
Precludes additional credit for COMP 4103.
Prerequisite(s): one of COMP 2402, SYSC 2100, and a MATH course at the 2000-level or above.
Lectures three hours a week.

COMP 4203 [0.5 credit]
Wireless Networks and Security

An introduction to wireless networks covering both networking issues and security aspects of modern wireless environments. Fundamentals of mobile LANs, ad hoc, sensor networks, secure routing, searching, clustering, multicasting, localization, mobile IP/TCP, confidentiality, key establishment, authentication, broadcasting, RFIDs, and rogue attacks.
Prerequisite(s): COMP 3203 or SYSC 4602.
Lectures three hours a week.

COMP 4300 [0.5 credit]
Computational Molecular Biology

Fundamental mathematical and algorithmic concepts underlying molecular computational biology; physical and genetic mapping, sequence analysis (including alignment and probabilistic models), genomic rearrangements, phylogenetic inference, computational proteomics and systemic modeling of the whole cell.
Prerequisite(s): COMP 3804 or equivalent.

COMP 4308 [0.5 credit]
Computational Systems Biology

Modeling and simulation of metabolic and regulatory networks towards understanding complex and highly dynamic cellular systems. Biotechnological applications include metabolic engineering, synthetic biology, and drug discovery.
Also listed as BIOC 4008.
Prerequisite(s): BIOC 3101 or permission of the Biochemistry Institute.
5 hours per week, workshop 1.

COMP 4501 [0.5 credit]
Advanced Computer Game Design and Development

Selected computer game topics including: networked games; online games; high performance computing for game development; high resolution scenes; massively multiplayer online games (MMOG); advanced character development; facial modeling and animation; the computer games marketplace and business models.
Prerequisite(s): COMP 3501.
Lectures three hours a week.

COMP 4601 [0.5 credit]
Mobile Multimedia

Introduction to the creation, delivery and playback of multimedia over high-speed wireless networks on mobile devices. Topics include human computer interaction, standards, interaction with networking aspects, security, video streaming, gaming, navigation and context aware services, and immersive communications in virtual environments.
Prerequisite(s): COMP 2601, or one of COMP 2404, SYSC 3010, SYSC 3110, and COMP 2406.
Lecture/lab four hours a week.

COMP 4803 [0.5 credit]
Computable Functions

Recursive functions and computability, algorithms, Church's thesis, Turing machines, computational logic, NP-completeness.
Also listed as MATH 4803.
Prerequisite(s): MATH 2100 or COMP 3805 or permission of the School.

COMP 4804 [0.5 credit]
Design and Analysis of Algorithms II

A second course on the design and analysis of algorithms. Topics include: advanced recurrence relations, algebraic complexity, advanced graph algorithms, amortized analysis, algorithms for NP-complete problems, randomized algorithms.
Prerequisite(s): COMP 3804 or permission of the School.
Lectures three hours a week.

COMP 4805 [0.5 credit]
Theory of Automata

Finite automata and regular expressions, properties of regular sets, context-free grammars, pushdown automata, deterministic context-free languages. Turing machines, the Chomsky hierarchy. Undecidability, intractable problems.
Also listed as MATH 4805.
Precludes additional credit for MATH 5605.
Prerequisite(s): COMP 3805 or MATH 3106 or MATH 3158 (or MATH 3100) or permission of the School.
Lectures three hours a week.

COMP 4806 [0.5 credit]
Numerical Linear Algebra

Study of matrix inversion techniques; techniques of finding eigenvalues and eigenvectors, solution of systems of linear equations; direct and indirect methods, their comparison and error analysis; applications in optimization and other areas.
Also listed as MATH 4806.
Prerequisite(s): MATH 1102 or MATH 2107; and MATH 2000 or MATH 3009, or permission of the School.
Lectures three hours a week.

COMP 4900 [0.5 credit]
Advanced Topics in Computer Science

Selected topics in Computer Science offered by members of the School of Computer Science.
Prerequisite(s): permission of the School of Computer Science.
Lectures three hours a week.

COMP 4901 [0.5 credit]
Directed Studies

A course of independent study under the supervision of a member of the School of Computer Science, open only to students in the B.C.S. program. Students are required to obtain their supervisor's written approval prior to registration and are limited to two such courses in their programs.
Prerequisite(s): permission of the School of Computer Science.

COMP 4905 [0.5 credit]
Honours Project

Under the supervision of a faculty member, Honours students complete a major Computer Science project in fourth year. Permission to register is granted once an approved project proposal is submitted to the Department. See deadlines and details on the School web site.
Prerequisite(s): registration in the B.C.S. Honours program or one of the Combined Computer Science Honours programs and permission of the School of Computer Science.

Summer session: some of the courses listed in this Calendar are offered during the summer. Hours and scheduling for summer session courses will differ significantly from those reported in the fall/winter Calendar. To determine the scheduling and hours for summer session classes, consult the class schedule at central.carleton.ca

Not all courses listed are offered in a given year. For an up-to-date statement of course offerings for the current session and to determine the term of offering, consult the class schedule at central.carleton.ca

June 30, 2015 11:44 AM