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:
- Computer Science B.C.S. Honours
- Computer Science Industrial Applications Internship Option B.C.S. Honours
- Computer Science Algorithms Stream B.C.S. Honours
- Computer Science Management and Business Systems Stream B.C.S. Honours
- Computer Science Software Engineering Stream B.C.S. Honours
- Computer Science Network Computing Stream B.C.S. Honours
- Computer Science Computer and Internet Security Stream B.C.S. Honours
- Computer Science Mobile Computing Stream B.C.S. Honours
- Computer Science Computer Game Development Stream B.C.S. Honours
- Computer Science Biomedical Computing Stream B.C.S. Honours
- Computer Science B.C.S. Major
- Computer Science and Mathematics: Concentration in Computing Theory and Numerical Methods B. Math. Combined Honours
- Computer Science and Mathematics: Concentration in Statistics and Computing B. Math. Combined Honours
- Minor in Computer Science
Program Requirements
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 |
Breadth Electives
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, NEUR, 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 2402 [0.5] | Business Applications Development | |
COMP 1001 [0.5] | Introduction to Computational Thinking for Arts and Social Science Students | |
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, NET and PLT except for the following: BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, BIT 2000, BIT 2004, BIT 2005, BIT 2100, BIT 2300. |
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. 6.5 credits in: | 6.5 | |
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 | |
2. 0.5 credit in COMP at the 2000-level or above | 0.5 | |
3. 2.0 credits in: | 2.0 | |
COMP 4905 and 1.5 credits in COMP at the 4000 level, or | ||
COMP 4906 and 1.0 credit in COMP at the 4000 level | ||
B. Credits Not Included in the Major CGPA (11.0 credits) | ||
4. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
5. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
6. 5.0 credits in Breadth Electives | 5.0 | |
7. 4.0 credits in free electives. | 4.0 | |
Total Credits | 20.0 |
Computer Science
Industrial Applications Internship Option
B.C.S. Honours (20.0 credits)
Registration in the internship option is by permission of the School only.
Courses Delivered at the Premises of the Industrial Partner - 9.0 credits
Courses in Collaboration with the Partner - 5.0 credits
COMP 1405 Z* [0.5 credit] Introduction to Computer Science I
COMP 1406 Z* [0.5 credit] Introduction to Computer Science II
COMP 2401 Z* [0.5 credit] Introduction to Systems Programming
COMP 2402 Z* [0.5 credit] Abstract Data Types and Algorithms
COMP 2404 Z* [0.5 credit] Introduction to Software Engineering
COMP 2406 Z* [0.5 credit] Fundamentals of Web Applications
COMP 3000 Z* [0.5 credit] Operating Systems
COMP 3004 Z* [0.5 credit] Object-Oriented Software Engineering
COMP 3005 Z* [0.5 credit] Database Management Systems
COMP 3007 Z* [0.5 credit] Programming Paradigms
*Z indicates that COMP 1405,COMP 1406, COMP 2401, COMP 2402, COMP 2404,COMP 2406, COMP 3000, COMP 3004, COMP 3005, COMP 3007 are also offered at the premises of the industrial partner in partial fulfilment of the industrial applications internship option.
Internship Courses - 4.0 credits | ||
COMP 1910 [0.5] | Internship | |
COMP 1911 [0.5] | Internship | |
COMP 2910 [0.5] | Internship | |
COMP 2911 [0.5] | Internship | |
COMP 3910 [0.5] | Internship | |
COMP 3911 [0.5] | Internship | |
COMP 4910 [0.5] | Internship | |
COMP 4911 [0.5] | Internship |
Courses to be Delivered On-Campus - 11.0 credits
Theoretical and Advanced Courses - 6.0 credits | ||
COMP 1805 [0.5] | Discrete Structures I | |
COMP 2804 [0.5] | Discrete Structures II | |
COMP 2XXX [0.5] or above | ||
COMP 3804 [0.5] | Design and Analysis of Algorithms I | |
COMP 4XXX [0.5] | ||
COMP 4XXX [0.5] | ||
COMP 4XXX [0.5] | ||
COMP 4905 [0.5] | Honours Project | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1107 [0.5] | Linear Algebra I | |
MATH 2XXX [0.5] or above | ||
STAT 2507 [0.5] | Introduction to Statistical Modeling I |
Approved Arts or Social Science, or Science or Business - 5.0 credits | ||
Elective 1 [0.5] | ||
Elective 2 [0.5] | ||
Elective 3 [0.5] | ||
Elective 4 [0.5] | ||
Elective 5 [0.5] | ||
Elective 6 [0.5] | ||
Elective 7 [0.5] | ||
Elective 8 [0.5] | ||
Elective 9 [0.5] | ||
Elective 10 [0.5] |
Computer Science
Algorithms Stream
B.C.S. Honours (20.0 credits)
A. Credits Included in the Major CGPA (10.0 credits) | ||
1. 6.5 credits in: | 6.5 | |
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 | |
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.5 credits in: | 1.5 | |
COMP 4905 and 1.0 credit COMP at the 4000 level, or | ||
COMP 4906 and 0.5 credit COMP at the 4000 level | ||
B. Credits Not Included in the Major CGPA (10.0 credits) | ||
5. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
6. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
7. 5.0 credits in Breadth Electives | 5.0 | |
8. 3.0 credits in free electives | 3.0 | |
Total Credits | 20.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. 6.5 credits in: | 6.5 | |
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 | |
2. 0.5 credit in COMP at the 2000-level or above | 0.5 | |
3. 2.0 credits in: | 2.0 | |
COMP 4905 and 1.5 credits in COMP at the 4000 level, or | ||
COMP 4906 and 1.0 credit in COMP at the 4000 level | ||
B. Credits Not Included in the Major CGPA (11.0 credits) | ||
4. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I 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 | ||
Principles of Financial Accounting Management Accounting | ||
7. 2.0 credits in: | 2.0 | |
BUSI 2121 [0.5] | Introduction to Organizational Behaviour | |
BUSI 2301 [0.5] | Introduction to Operations Management | |
BUSI 2503 [0.5] | Introduction to Finance | |
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 above | 1.5 | |
10. 3.5 credits in free electives. | 3.5 | |
Total Credits | 20.0 |
Computer Science
Software Engineering Stream
B.C.S. Honours (20.0 credits)
A. Credits Included in the Major CGPA (9.5 credits) | ||
1. 6.5 credits in: | 6.5 | |
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 | |
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. 1.0 credit from: | 1.0 | |
COMP 4905 and 0.5 credit in COMP at the 4000 level, or | ||
COMP 4906 [1.0] | Honours Thesis | |
B. Credits Not Included in the Major CGPA (10.5 credits) | ||
5. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
6. 0.5 credit from: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
7. 5.0 credits in Breadth Electives | 5.0 | |
8. 3.5 credits in free electives. | 3.5 | |
Total Credits | 20.0 |
Computer Science
Network Computing Stream
B.C.S. Honours (20.0 credits)
A. Credits Included in the Major CGPA (9.0 credits) | ||
1. 6.5 credits in: | 6.5 | |
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 | |
2. 0.5 credit in: | 0.5 | |
COMP 3203 [0.5] | Principles of Computer Networks | |
3. 2.0 credits from: | 2.0 | |
a) COMP 4905 and 1.5 credit from the following list of 4000-level COMP courses, or | ||
b) COMP 4906 and 1.0 credit from the following list of 4000-level COMP courses. | ||
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 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
5. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
6. 5.0 credits in Breadth Electives | 5.0 | |
7. 4.0 credits in free electives. | 4.0 | |
Total Credits | 20.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. 6.5 credits in: | 6.5 | |
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 | |
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. 1.0 credit in COMP at the 4000-level including one of | 1.0 | |
COMP 4905 [0.5] | Honours Project | |
COMP 4906 [1.0] | Honours Thesis | |
B. Credits Not Included in the Major CGPA (10.5 credits) | ||
4. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
5. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
6. 5.0 credits in Breadth Electives | 5.0 | |
7. 3.5 credits in free electives | 3.5 | |
Total Credits | 20.0 |
Computer Science
Mobile Computing Stream
B.C.S. Honours (20.0 credits)
A. Credits Included in the Major CGPA (9.5 credits) | ||
1. 6.5 credits in: | 6.5 | |
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 | |
2. 1.0 credit in: | 1.0 | |
COMP 1601 [0.5] | Introduction to Mobile Application Development | |
COMP 2601 [0.5] | Mobile Applications | |
3. 0.5 credit from | 0.5 | |
COMP 4601 [0.5] | Intelligent Web-based Information Systems | |
COMP 4602 [0.5] | Social Networking | |
3. 1.5 credits in: | 1.5 | |
COMP 4905 and 1.0 credit in COMP at the 4000 level, or | ||
COMP 4906 and 0.5 credit at the 4000 level | ||
B. Credits Not Included in the Major CGPA (10.5 credits) | ||
4. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
5. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
6. 5.0 credits in Breadth Electives | 5.0 | |
7. 3.5 credits in free electives. | 3.5 | |
Total Credits | 20.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. 6.5 credits in: | 6.5 | |
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 | |
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 Facilities for Real-Time Games | |
3. 1.5 credits in: | 1.5 | |
COMP 4905 and 1.0 credit in COMP at the 4000 level, or | ||
COMP 4906 and 0.5 credit in COMP at the 4000 level | ||
B. Credits Not Included in the Major CGPA (10.0 credits) | ||
4. 1.5 credits from: | 1.5 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I Algebra I | ||
6. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
7. 5.0 credits in Breadth electives | 5.0 | |
8. 3.0 credits in free electives | 3.0 | |
Total Credits | 20.0 |
Computer Science
Biomedical Computing Stream
B.C.S. Honours (20.0 credits)
A. Credits Included in the Major CGPA (9.0 credits) | ||
1. 6.5 credits in: | 6.5 | |
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 | |
2. 1.0 credit in: | 1.0 | |
COMP 3308 [0.5] | Bioinformatics | |
COMP 4804 [0.5] | Design and Analysis of Algorithms II | |
3. 1.0 credit in: | 1.0 | |
COMP 4905 and 0.5 credit in COMP at the 4000 level, or | ||
COMP 4906 [1.0] | Honours Thesis | |
4. 0.5 credit in: | 0.5 | |
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 | |
Elementary Calculus I Linear Algebra for Engineering or Science | ||
& MATH at the 2000-level or above | ||
or | ||
Calculus and Introductory Analysis I Linear Algebra for Engineering or Science | ||
or | ||
Elementary Calculus I 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 above | 0.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 electives | 3.0 | |
Total Credits | 20.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 above | 1.0 | |
3. 0.5 credit in COMP at the 4000-level | 0.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 Breadth Electives | 5.0 | |
7. 6.0 credits in free electives. | 6.0 | |
Total Credits | 20.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 Electives | ||
c. 1.0 credit at the 2000-level or higher in Natural Science electives or in Approved Arts or Social Sciences Electives | ||
Total Credits | 20.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-level | 1.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 Electives | ||
c. 1.0 credit at the 2000-level or higher in Natural Science electives or in Approved Arts or Social Sciences Electives | ||
Total Credits | 20.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 above | 0.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 Credits | 4.0 |
Computer Science (COMP) Courses
Notes:
- 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.
- *ZZ indicates that COMP 1405, COMP 1406, COMP 2401, COMP 2402, COMP 2404, COMP 2406, COMP 3000, COMP 3004, COMP 3005, and COMP 3007 are also offered at the premises of the industrial partner in partial fulfilment of the industrial applications internship option.
Introduction to Computational Thinking for Arts and Social Science Students
An introduction to computational thinking and its applications to the arts and social sciences. Students will gain computational thinking skills by exploring data representation, basic programming concepts, a selection of algorithms, and advanced usage of software packages for the arts and social sciences.
Lectures three hours a week.
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.
Lectures three hours a week.
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.
Lectures three hours a week, tutorial one and a half hours a week.
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.
Prerequisite(s): one of COMP 1005, COMP 1405, SYSC 1005, ECOR 1606, BIT 1400.
Lectures three hours a week, tutorial one and a half hours a week.
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.
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. Students in the industrial applications internship option register in COMP 1405 Z*.
Lectures three hours a week, tutorial one and a half hours a week.
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.
Prerequisite(s): one of COMP 1405, COMP 1005, ECOR 1606, SYSC 1005, BIT 1400. Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics. Students in the industrial applications internship option register in COMP 1406 Z*.
Lectures three hours a week, tutorial one and a half hours a week.
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.
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.
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.
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.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. This course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the BCS.
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.
Prerequisite(s): one of COMP 1406, COMP 1006 or SYSC 2004, with a minimum grade of C-. Students in the industrial applications internship option register in COMP 2401 Z*.
Lectures three hours a week, tutorial one and a half hours a week.
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.
Prerequisite(s): one of COMP 1406, COMP 1006, SYSC 2004, with a minimum grade of C-. Students in the industrial applications internship option register in COMP 2402 Z*.
Lectures three hours a week.
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.
Prerequisite(s): One of COMP 1406, COMP 1006 or SYSC 2004, with a minimum grade of C-. Students in the industrial applications internship option register in COMP 2404 Z*.
Lectures three hours a week, tutorial one and a half hours a week.
Fundamentals of Web Applications
Introduction to Internet application development; emphasis on computer science fundamentals of 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.
Prerequisite(s): one of COMP 1006, COMP 1406, SYSC 2004, with a minimum grade of C-. Students in the industrial applications internship option register in COMP 2406 Z*.
Lectures three hours a week and tutorial one and a half hours a week.
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.
Lectures three hours a week, tutorial one and a half hours a week.
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.
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 1406, COMP 1006 or SYSC 2004.
Lab four hours a week.
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.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the BCS.
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.
Prerequisite(s): one of COMP 2402, SYSC 2100, and one of COMP 2401, SYSC 2006. Students in the industrial applications internship option register in COMP 3000 Z*.
Lectures three hours a week, tutorial one and a half hours a week.
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.
Object-Oriented Software Engineering
Theory and development software systems. 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.
Prerequisite(s): one of COMP 2404, SYSC 3010, SYSC 3110. Students in the industrial applications internship option register in COMP 3004 Z*.
Lectures three hours a week.
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.
Prerequisite(s): COMP 1805 or MATH 1800, plus: COMP 2402 or (SYSC 2004 and SYSC 2100. Students in the industrial applications internship option register in COMP 3005 Z*.
Lectures three hours a week.
Programming Paradigms
An introduction to alternative programming paradigms such as functional, constraint-based, concurrent, and logic programming.
Prerequisite(s): COMP 2402, or both of SYSC 2004 and SYSC 2100. Students in the industrial applications internship option register in COMP 3007 Z*.
Lectures three hours a week.
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.
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.
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.
Prerequisite(s): one of COMP 2402, SYSC 2100, and one of COMP 2401, SYSC 2006.
Lectures three hours a week.
Technical Writing for Computer Science
Technical communication for computer science majors, concentrating on writing scientific papers and technical reports. Principles of clarity and precision in writing and communication. Practical exercises and readings from recent technical publications will be used.
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.
Prerequisite(s): BIOC 2200 or BIOL 2200, or permission of the Biochemistry Institute.
Lecture two hours a week, computer workshop three hours a week.
Computational Logic and Automated Reasoning
Applications of formal logic in computer science. Symbolic logics such as classical predicate calculus are used to represent domain knowledge, to model computational problems and to solve them by means of automated reasoners. Applications include artificial intelligence, software engineering, data management and hardware verification.
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.
Lectures three hours a week.
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.
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.
Introduction to Theory of Computation
Theoretical aspects of computer science. Topics include: formal languages and automata theory, computability theory.
Prerequisite(s): COMP 2804.
Lectures three hours a week.
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.
Prerequisite(s): one of COMP 2402 or SYSC 2100, and either COMP 2804 or both of MATH 2007 and MATH 2108 or equivalents.
Lectures three hours a week.
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.
Precludes additional credit for MATH 3805 (no longer offered) 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.
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.
Prerequisite(s): i) MATH 1002, MATH 1005 or MATH 2007; and ii) MATH 1102 or MATH 2107; and (iii) knowledge of a computer language.
Lectures three hours a week and one hour tutorial.
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.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
Co-operative Work Term
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.
Lectures three hours a week.
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).
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.
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.
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.
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.
Lectures three hours a week.
Computer Vision
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.
Lectures three hours a week.
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.
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.
Lectures three hours a week.
Neural Networks
Theory and application of neural networks to problems in machine learning. Topics include: biological models, perceptron and other neuron types, feed forward and recurrent architectures, learning algorithms and applications in pattern recognition and sequence prediction.
Lectures three hours a week.
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.
Lectures three hours a week.
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.
Lectures three hours a week.
Data Management for Business Intelligence
Application of computational techniques to support business activities, such as decision making, business understanding, data analysis, business process automation, learning from data, producing and using data-centric business models, ontology-based data access and integration, data quality assessment and cleaning and use of contextual data.
Also offered at the graduate level, with different requirements, as COMP 5111, for which additional credit is precluded.
Lectures three hours a week.
Computational Aspects of Geographic Information Systems
Through recent advances in navigation systems, mobile devices, and new software such as Mapquest and Google Earth, GIS is becoming increasingly important and exciting from a CS perspective. This course lays the algorithmic foundations to understand, use and further this technology.
Also offered at the graduate level, with different requirements, as COMP 5204, for which additional credit is precluded.
Lecture three hours a week.
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.
Evolving Information Networks
Convergence of social and technological networks. Interplay between information content, entities creating it and technologies supporting it. Structure and analysis of such networks, models abstracting their properties, techniques link analysis, search, mechanism design, power laws, cascading, clustering and connections with work in social sciences.
Lecture three hours a week.
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.
Prerequisite(s): BIOC 3101 or permission of the Biochemistry Institute.
Lecture one and a half hours per week, workshop one and a half hours per week.
Advanced Facilities for Real-Time Games
A practical course on advanced facilities of game engines. Such facilities include notions such as physics engines, shadow mapping, lighting with thousands of lights, relief mapping, ambient occlusion, water flow, deferred rendering, occlusion culling, water effects, mirrors, and screen space reflection.
Intelligent Web-based Information Systems
Introduction to the principles and practice of creation, delivery and analysis of multimedia content in web-based systems. Topics include analysis of webs of documents, social network analysis, recommender systems and problems of trust, reputation and influence in e-commerce systems.
Lecture/lab four hours a week.
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.
Lectures/labs four hours per week.
Computable Functions
Recursive functions and computability, algorithms, Church's thesis, Turing machines, computational logic, NP-completeness.
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.
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.
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.
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.
Prerequisite(s): MATH 1102 or MATH 2107; and MATH 2000 and COMP 3806, or permission of the School.
Lectures three hours a week.
Advanced Topics in Computer Science
Selected topics in Computer Science offered by members of the School of Computer Science.
Lectures three hours a week.
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.
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.
Honours Thesis
An independent research project under the direct supervision of a faculty advisor. Permission to register is granted once an approved project proposal is submitted to the School of Computer Science. Evaluation is based on a written thesis and a poster presentation.
Prerequisite(s): fourth-year standing in a B.C.S. Honours program with a minimum CGPA of 9.0 in the major and permission of the School of Computer Science.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
Internship
The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S.
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
Regulations
In addition to the program requirements described here, 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.
Co-operative Education
For more information about how to apply for the Co-op program and how the Co-op program works please visit the Co-op website.
All students participating in the Co-op program are governed by the Undergraduate Co-operative Education Policy.
Undergraduate Co-operative Education Policy
Admission Requirements
Students can apply to co-op in one of two ways; directly from high school or after beginning a degree program at Carleton.
If a student is admitted to co-op from high school, their grades will be reviewed two terms to one year prior to their first work term to ensure they continue to meet the academic requirements after their 1st or 2nd year of study. The time at which evaluation takes place depends on the program of study. Students will automatically be notified via their Carleton email account if they are permitted to continue.
Students not admitted to Carleton University with the co-op option on their degree can apply for admission via the co-operative education program website. To view application deadlines, visit carleton.ca/co-op.
Admission to the co-op option is based on the completion of 5.0 or more credits at Carleton University, the CGPA requirement for the students' academic program as well as any course prerequisites. The articulated CGPA for each program is the normal standard for assessment. Please see the specific degree program sections for the unique admission and continuation requirements for each academic program.
English Language Proficiency
Students admitted to Carleton based on CAEL, IELTS or TOEFL assessments and who are required to take an ESL course must take and pass the Oral Proficiency in Communicative Settings (OPECS) Test. The test must be taken before being permitted to register in COOP 1000. Admission to the co-op program can be confirmed with a minimum score of 4+.
Participation Requirements
COOP 1000
Once a student has been given admission or continuation confirmation to the co-op option s/he must complete and pass COOP 1000 (a mandatory online 0.0 credit course). Students will have access to this course a minimum of two terms prior to their first work term and will be notified when to register.
Communication with the Co-op Office
Students must maintain contact with the co-op office during their job search and while on a work term. All email communication will be conducted via the students' Carleton email account.
Employment
Although every effort is made to ensure a sufficient number of job postings for all students enrolled in the co-op option of their degree program, no guarantee of employment can be made. Carleton's co-op program operates a competitive job search process and is dependent upon current market conditions. Academic performance, skills, motivation, maturity, attitude and potential will determine whether a student is offered a job. It is the student's responsibility to actively conduct a job search in addition to participation in the job search process operated by the co-op office. Once a student accepts a co-op job offer (verbally or written), his/her job search will end and access to co-op jobs will be removed for that term. Students that do not successfully obtain a co-op work term are expected to continue with their academic studies. The summer term is the exception to this rule. Students should also note that hiring priority is given to Canadian citizens for co-op positions in the Federal Government of Canada.
Registering in Co-op Courses
Students will be registered in a Co-op Work Term course while at work. The number of Co-op Work Term courses that a student is registered in is dependent upon the number of four-month work terms that a student accepts.
While on a co-op work term students may take a maximum of 0.5 credit throughout each four-month co-op work term. Courses must be scheduled outside of regular working hours.
Students must be registered as full-time before they begin their co-op job search (2.0 credits). All co-op work terms must be completed before the beginning of the final academic term. Students may not finish their degree on a co-op work term.
Work Term Assessment and Evaluation
To obtain a Satisfactory grade for the co-op work term students must have:
- A satisfactory work term evaluation by the co-op employer;
- A satisfactory grade on the work term report.
Students must submit a work term report at the completion of each four-month work term. Reports are due on the 16th of April, August, and December and students are notified of due dates through their Carleton email account.
Workplace performance will be assessed by the workplace supervisor. Should a student receive an unsatisfactory rating from their co-op employer, an investigation by the co-op program manager will be undertaken. An unsatisfactory employer evaluation does not preclude a student from achieving an overall satisfactory rating for the work term.
Graduation with the Co-op Designation
In order to graduate with the co-op designation, students must satisfy all requirements for their degree program in addition to the requirements according to each co-op program (i.e. successful completion of three or four work terms).
Note: Participation in the co-op option will add up to one additional year for a student to complete their degree program.
Voluntary Withdrawal from the Co-op Option
Students may withdraw from the co-op option of their degree program during a study term ONLY. Students at work may not withdraw from the work term or the co-op option until s/he has completed the requirements of the work term.
Students are eligible to continue in their regular academic program provided that they meet the academic standards required for continuation.
Involuntary or Required Withdrawal from the Co-op Option
Students may be required to withdraw from the co-op option of their degree program for one or any of the following reasons:
- Failure to achieve a grade of SAT in COOP 1000
- Failure to pay all co-op related fees
- Failure to actively participate in the job search process
- Failure to attend all interviews for positions to which the student has applied
- Declining more than one job offer during the job search process
- Continuing a job search after accepting a co-op position
- Dismissal from a work term by the co-op employer
- Leaving a work term without approval by the Co-op manager
- Receipt of an unsatisfactory work term evaluation
- Submission of an unsatisfactory work term report
Standing and Appeals
The Co-op and Career Services office administers the regulations and procedures that are applicable to all co-op program options. All instances of a student's failure during a work term or other issues directly related to their participation in the co-op option will be reported to the academic department.
Any decision made by the Co-op and Career Services office can be appealed via the normal appeal process within the University.
International Students
All International Students are required to possess a Co-op Work Permit issued by Citizenship and Immigration Canada before they can begin working. It is illegal to work in Canada without the proper authorization. Students will be provided with a letter of support to accompany their application. Students must submit their application for their permit before being permitted to view and apply for jobs on the Co-op Services database. Confirmation of a position will not be approved until a student can confirm they have received their permit. Students are advised to discuss the application process and requirements with the International Student Services Office.
Bachelor of Computer Science: Co-op Admission and Continuation Requirements
- Maintain full-time status in each study term (2.0 credits);
- Be eligible to work in Canada (for off-campus work)
- Have successfully completed COOP 1000 [0.0]
In addition to the following:
- A major CGPA of 8.00 or higher and an overall CGPA of 8.00 or higher;
- Successfully completed 3.0 required credits in Computer Science, including one of COMP 2402 or COMP 2404;
- Registered as a full-time student in the Bachelor of Computer Science program (2.0 credits).
Bachelor of Computer Science Honours and Major students must successfully complete four (4) work terms to obtain the Co-op designation.
Co-op Work Term Course: COMP 3999
Work/Study Pattern:
Year 1 | Year 2 | Year 3 | Year 4 | Year 5 | |||||
---|---|---|---|---|---|---|---|---|---|
Term | Pattern | Term | Pattern | Term | Pattern | Term | Pattern | Term | Pattern |
Fall | S | Fall | S | Fall | W | Fall | S | Fall | S |
Winter | S | Winter | S | Winter | S | Winter | W | Winter | S |
Summer | **O | Summer | W | Summer | W | Summer | W |
Legend
S: Study
W: Work
O: Optional
* indicates recommended work study pattern
** student finds own employer for this work-term.
Admissions Information
Admission Requirements are for the 2017-2018 year only, and are based on the Ontario High School System. Holding the minimum admission requirements only establishes eligibility for consideration. The cut-off averages for admission may be considerably higher than the minimum. See also the General Admission and Procedures section of this Calendar. An overall average of at least 70% is normally required to be considered for admission. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. The overall average required for admission is determined each year on a program by program basis. Consult admissions.carleton.ca for further details.
Degree
- B.C.S. (Major)
- B.C.S. (Honours)
Admission Requirements
First Year
The Ontario Secondary School Diploma (OSSD) or equivalent including a minimum of six 4U or M courses. The six 4U or M courses must include one of Advanced Functions or Calculus and Vectors. For the BCS Honours Biomedical Computing Stream, the six coursees must also include Ontario 4U in Chemistry or equivalent. Equivalent courses may be substituted between the old and new Ontario mathematics curriculum.
Advanced Standing
Applications for admission beyond first year will be assessed on their individual merits. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected.
Co-op Option
Direct Admission to the First Year of the Co-op Option
Applicants must:
- meet the required overall admission cut-off average and prerequisite course average. These averages may be higher than the stated minimum requirements;
- be registered as a full-time student in the Bachelor of Computer Science program;
- be eligible to work in Canada (for off-campus work placements).
Meeting the above requirements only establishes eligibility for admission to the program. The prevailing job market (and thus the availability of co-op placement) may limit enrolment in the co-op option.
Note: continuation requirements for students previously admitted to the co-op option and admission requirements for the co-op option after beginning the program are described in the Co-operative Education Regulations section of this Calendar.