
School of Computer Science
(Faculty of Science)
613-520-4333
http://scs.carleton.ca
This section presents the requirements for programs in:
- Computer Science B.C.S. Honours
- Computer Science Algorithms Stream B.C.S. Honours
- Computer Science Artificial Intelligence and Machine Learning Stream B.C.S. Honours
- Computer Science Computer Game Development Stream B.C.S. Honours
- Computer Science Cybersecurity 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
- Industrial Applications Internship Option
- 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
- Cybersecurity B.Cyber. Honours
- Minor in Computer Science
Program Requirements
Course Categories (B.C.S.)
The following categories of courses are used in defining the program requirements in Computer Science.
Industrial Applications Internship Courses
The following courses may only be taken by students participating in one of the School's industrial partnerships and can only be used as free electives in the B.C.S.:
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 |
Computer Science (COMP)
In addition to the courses with subject code COMP, the following courses offered by the Faculty of Engineering and Design 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:
SYSC 3303 [0.5] | Real-Time Concurrent Systems | |
SYSC 4005 [0.5] | Discrete Simulation/Modeling | |
SYSC 4106 [0.5] | The Software Economy and Project Management |
Breadth Electives
All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Sprott School of Business and the Faculty of Science except for courses in COMP, CSEC, DATA, MATH, STAT and the Prohibited Courses category.
Free Electives
All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Sprott School of Business and the Faculty of Science except for courses in the Prohibited Courses category. Free electives can include COMP, CSEC, DATA, MATH and STAT courses.
Natural Science Electives
This category is defined with the B.Math. programs. See the Course Categories section on the Mathematics Program page 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. Please note that any courses cross-listed with those on the list are also prohibited:
BUSI 1401 [0.5] | Foundations of Information Systems | |
BUSI 2401 [0.5] | Introduction to Data Analytics | |
BUSI 2402 [0.5] | Business Applications Development | |
BUSI 3400 [0.5] | Database Design | |
CGSC 1005 [0.5] | Computational Methods in Cognitive Science | |
COMP 1001 [0.5] | Introduction to Computational Thinking for Arts and Social Science Students | |
ECON 1401/MATH 1401 [0.5] | Elementary Mathematics for Economics I | |
ECON 1402/MATH 1402 [0.5] | Elementary Mathematics for Economics II | |
MATH 1009 [0.5] | Mathematics for Business | |
MATH 1119 [0.5] | Linear Algebra: with Applications to Business | |
all 0000-level courses | ||
and all courses in BIT, IMD, IRM, MPAD, NET, OSS, PLT and ITEC except for the following: BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, BIT 2000, BIT 2004 (no longer offered), BIT 2005 (no longer offered), BIT 2007 (no longer offred), BIT 2100 (no longer offered), BIT 2300 (no longer offered), MPAD 2501, MPAD 3300, MPAD 3501, MPAD 4001, MPAD 4501, MPAD 4502, MPAD 4503, MPAD 4504. |
Course Categories (B.Cyber)
The following categories of courses are used in defining the program requirements in the Bachelor of Cybersecurity program.
Free Electives
All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Sprott School of Business and the Faculty of Science except for courses in the Prohibited Courses category. Free electives can include COMP, CSEC, DATA, MATH and STAT courses.
Prohibited Courses
The following courses cannot be used for credit in the B.Cyber. program. Please note that any courses cross-listed with those on the list are also prohibited:
BUSI 1401 [0.5] | Foundations of Information Systems | |
BUSI 2401 [0.5] | Introduction to Data Analytics | |
BUSI 2402 [0.5] | Business Applications Development | |
BUSI 3400 [0.5] | Database Design | |
CGSC 1005 [0.5] | Computational Methods in Cognitive Science | |
COMP 1001 [0.5] | Introduction to Computational Thinking for Arts and Social Science Students | |
ECON 1401/MATH 1401 [0.5] | Elementary Mathematics for Economics I | |
ECON 1402/MATH 1402 [0.5] | Elementary Mathematics for Economics II | |
MATH 1009 [0.5] | Mathematics for Business | |
MATH 1119 [0.5] | Linear Algebra: with Applications to Business | |
all 0000-level courses | ||
and all courses in BIT, IMD, IRM, MPAD, NET, OSS, PLT and ITEC except for the following: BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, BIT 2000, BIT 2004 (no longer offred), BIT 2005 (no longer offered), BIT 2007 (no longer offered), BIT 2100 (No longer offered), BIT 2300 (no longer offered), MPAD 2501, MPAD 3300, MPAD 3501, MPAD 4001, MPAD 4501, MPAD 4502, MPAD 4503, MPAD 4504. |
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 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 COMP at the 2000-level or above | 0.5 | |
3. 2.0 credits from: | 2.0 | |
COMP 4905 [0.5] and 1.5 credits in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 1.0 credit in COMP at the 4000-level, or | ||
2.0 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (11.0 credits) | ||
4. 1.5 credits in: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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
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 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.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 in: | 0.5 | |
COMP 4001 [0.5] | Distributed Computing | |
4. 1.5 credits from: | 1.5 | |
COMP 4905 [0.5] and 1.0 credit in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 0.5 credit in COMP at the 4000-level, or | ||
1.5 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (10.0 credits) | ||
5. 1.5 credits in: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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
Artificial Intelligence and Machine Learning 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.5 credits in: | 1.5 | |
COMP 3105 [0.5] | Introduction to Machine Learning | |
COMP 3106 [0.5] | Introduction to Artificial Intelligence | |
COMP 4107 [0.5] | Neural Networks | |
3. 1.5 credits from: | 1.5 | |
COMP 4905 [0.5] and 1.0 credit in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 0.5 credit in COMP at the 4000-level, or | ||
1.5 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (10.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 from: | 0.5 | |
STAT 2605 [0.5] | Probability Models | |
or 0.5 credit in MATH at the 2000-level or above | ||
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.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. 1.0 credit in: | 1.0 | |
COMP 3501 [0.5] | Foundations of Game Programming and Computer Graphics | |
COMP 4501 [0.5] | Advanced Facilities for Real-Time Games | |
3. 1.0 credit from: | 1.0 | |
COMP 1501 [0.5] | Introduction to Computer Game Design | |
COMP 2501 [0.5] | Computer Game Design and Development | |
COMP 3008 [0.5] | Software Structures for User Interfaces | |
COMP 3009 [0.5] | Computer Graphics | |
COMP 3106 [0.5] | Introduction to Artificial Intelligence | |
COMP 3203 [0.5] | Principles of Computer Networks | |
4. 1.5 credits from: | 1.5 | |
COMP 4905 [0.5] and 1.0 credit in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 0.5 credit in COMP at the 4000-level, or | ||
1.5 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (10.0 credits) | ||
4. 1.5 credits in: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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.0 credits in free electives | 3.0 | |
Total Credits | 20.0 |
Computer Science
Cybersecurity 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 2108 [0.5] | Applied Cryptography and Authentication | |
COMP 3008 [0.5] | Software Structures for User Interfaces | |
COMP 3203 [0.5] | Principles of Computer Networks | |
COMP 4108 [0.5] | Computer Systems Security | |
3. 1.5 credits from: | 1.5 | |
COMP 4905 [0.5] and 1.0 credit in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 0.5 credit in COMP at the 4000-level, or | ||
1.5 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (10.0 credits) | ||
4. 1.5 credits in: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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.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 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 COMP at the 2000-level or above | 0.5 | |
3. 2.0 credits from: | 2.0 | |
COMP 4905 [0.5] and 1.5 credits in COMP at the 4000-level, or | ||
COMP 4906 [1.0] and 1.0 credit in COMP at the 4000-level, or | ||
2.0 credits in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (11.0 credits) | ||
4. 1.5 credits in: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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 BUSI at the 2000-level, 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 Supply and 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 1001 [0.5] | Introduction to Microeconomics | |
ECON 1002 [0.5] | Introduction to Macroeconomics | |
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 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 3008 [0.5] | Software Structures for User Interfaces | |
3. 1.5 credits in: | 1.5 | |
COMP 4004 [0.5] | Software Quality Assurance | |
SYSC 3303 [0.5] | Real-Time Concurrent Systems | |
SYSC 4106 [0.5] | The Software Economy and Project Management | |
4. 1.0 credit from: | 1.0 | |
COMP 4905 [0.5] and 0.5 credit in COMP at the 4000-level, or | ||
COMP 4906 [1.0], or | ||
1.0 credit in COMP at the 4000-level | ||
B. Credits Not Included in the Major CGPA (10.5 credits) | ||
5. 1.5 credits from: | 1.5 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
0.5 credit in MATH at the 2000-level or above | ||
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.5 credits in free electives. | 3.5 | |
Total Credits | 20.0 |
Industrial Applications Internship Option (4.0 credits)
Only available to students pursuing a Bachelor of Computer Science Honours program. Enrolment is limited. Registration in the internship option is by permission of the School only.
Internship Courses (4.0 credits) | 4.0 | |
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 | |
Total Credits | 4.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 1052 [0.5] | Calculus and Introductory Analysis I | |
MATH 1152 [0.5] | Introductory Algebra I | |
MATH 1800 [0.5] | Introduction to Mathematical Reasoning | |
MATH 2000 [1.0] | Multivariable Calculus and Fundamentals of Analysis | |
MATH 2052 [0.5] | Calculus and Introductory Analysis II | |
MATH 2100 [1.0] | Algebra | |
MATH 2152 [0.5] | Introductory Algebra II | |
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 in: | 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. 3.0 credits from Natural Science, or Approved Arts and 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 4400 [0.5] | IS Management and Strategy | |
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.5 credits) | ||
1. 5.0 credits in: | 5.0 | |
MATH 1052 [0.5] | Calculus and Introductory Analysis I | |
MATH 1152 [0.5] | Introductory Algebra I | |
MATH 1800 [0.5] | Introduction to Mathematical Reasoning | |
MATH 2000 [1.0] | Multivariable Calculus and Fundamentals of Analysis | |
MATH 2052 [0.5] | Calculus and Introductory Analysis II | |
MATH 2100 [1.0] | Algebra | |
MATH 2152 [0.5] | Introductory Algebra II | |
STAT 1500 [0.5] | Introduction to Statistical Computing | |
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 | |
STAT 4905 [0.5] | Honours Project (Honours) | |
Concentration in Statistics and Computing: | ||
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 (3.5 credits) | ||
8. 3.5 credits not in MATH, STAT, or COMP consisting of: | 3.5 | |
a. 1.0 credit in Natural Science electives | ||
b. 2.5 credits from Natural Science, or Approved Arts and Social Sciences electives | ||
Total Credits | 20.0 |
Cybersecurity
B.Cyber. Honours (20.0 credits)
A. Credits Included in the Major CGPA (11.5 credits) | ||
1. 5.0 credits in: | 5.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 | |
2. 2.5 credits in: | 2.5 | |
COMP 2109 [0.5] | Introduction to Security and Privacy | |
COMP 3008 [0.5] | Software Structures for User Interfaces | |
COMP 3203 [0.5] | Principles of Computer Networks | |
CSEC 2108 [0.5] | Cryptographic Algorithms and Protocols | |
CSEC 3108 [0.5] | Systems Security | |
3. 1.0 credit from: | 1.0 | |
COMP 3002 [0.5] | Compiler Construction | |
COMP 3301 [0.5] | Technical Writing for Computer Science | |
COMP 4004 [0.5] | Software Quality Assurance | |
COMP 4203 [0.5] | Wireless Networks and Security | |
MATH 2108 [0.5] | Abstract Algebra I | |
4. 3.0 credits in: | 3.0 | |
CSEC 4000 [0.5] | Operating Systems Security | |
CSEC 4100 [0.5] | Human Factors in Security | |
CSEC 4200 [0.5] | Network Security | |
CSEC 4300 [0.5] | Software Security | |
CSEC 4900 [0.5] | Selected Topics in Security I | |
CSEC 4901 [0.5] | Selected Topics in Security II | |
B. Credits Not Included in the Major CGPA (8.5 credits) | ||
5. 1.0 credit in: | 1.0 | |
MATH 1007 [0.5] | Elementary Calculus I | |
MATH 1104 [0.5] | Linear Algebra for Engineering or Science | |
6. 0.5 credit in: | 0.5 | |
STAT 2507 [0.5] | Introduction to Statistical Modeling I | |
7. 7.0 credits in free electives | 7.0 | |
Total Credits | 20.0 |
Minor in Computer Science (4.0 credits)
Only students pursuing an undergraduate program requiring at least 20.0 credits to graduate and who have completed at least 4.0 credits toward their degree with a minimum Overall CGPA of 7.0 may be admitted to the Minor in Computer Science, except for the following:
- Bioinformatics B.Sc. Honours
- Cognitive Science with Concentration in Cognition and Computation Bachelor of Cognitive Science Honours
- Computational Biochemistry B.Sc. Honours
- Computer Science B.C.S. Honours, including all streams
- 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
- Computer Systems Engineering Bachelor of Engineering
- Cybersecurity B.Cyber. Honours
- Data Science B.D.S. Honours
- Economics B.Econ. Honours with Concentration in Computational Analysis
- Information Resource Management B.I.T.
- Interactive Multimedia and Design B.I.T.
- Linguistics with a Concentration in Linguistic Theory (Computer Science) B.Sc. Honours
- Linguistics with a Concentration in Psycholinguistics and Communication Disorders (Computer Science) B.Sc. Honours
- Network Technology B.I.T.
- Optical Systems and Sensors B.I.T.
- Software Engineering Bachelor of Engineering
Enrolment is limited. Students who are required to leave the Minor due to a low Minor CGPA may not return to the Minor at any subsequent date.
Students are required to present a Minor CGPA of 4.00 or higher at graduation in order to be awarded a Minor in Computer Science.
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.
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 Computer Science I
Introduction to computer science and programming. Topics include: algorithm design; control structures; variables and types; linear collections; functions; debugging and testing. Special attention is given to procedural programming in a modern language, computational thinking skills, and problem decomposition.
Also listed as COMP 1405.
Precludes additional credit for BIT 1400, CGSC 1005, ECOR 1031, ECOR 1041, ECOR 1042, ECOR 1051, ECOR 1606, ITEC 1400, ITEC 1401, SYSC 1005.
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.
Also listed as COMP 1406.
Precludes additional credit for BIT 2400, BUSI 2402, ITEC 2400, ITEC 2401, SYSC 2004.
Prerequisite(s): COMP 1005 or COMP 1405.
Lectures three hours a week, tutorial one and a half hours a week.
Math for Game Programmers
Math for building 3D games. Points, vectors, normals. Dot and cross products. Transformations and inverses in left- and right-handed systems. Uses for controlling objects, cameras, and texture manipulation. Bounding boxes, planes, frustums for collision detection and visibility, fast billboarding techniques, point and sphere sweeping. Quaternions.
Lectures three hours a week, tutorial one and a half hours a week.
Introduction to Computer Science I
Introduction to computer science and programming, for computer science students. Topics include: algorithm design; control structures; variables and types; linear collections; functions; debugging and testing. Special attention is given to procedural programming in a modern language, computational thinking skills, and problem decomposition.
Also listed as COMP 1005.
Precludes additional credit for BIT 1400, CGSC 1005, ECOR 1031, ECOR 1041, ECOR 1042, ECOR 1051, ECOR 1606, ITEC 1400, ITEC 1401, SYSC 1005.
Prerequisite(s): restricted to students registered in the B.C.S. program, B.Cyber. program, B.D.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.
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.
Also listed as COMP 1006.
Precludes additional credit for BIT 2400, BUSI 2402, ITEC 2400, ITEC 2401, SYSC 2004.
Prerequisite(s): COMP 1005 or COMP 1405. Restricted to students registered in the B.C.S. program, B.Cyber. program, B.D.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.
Introduction to Computer Game Design
Introduction to game design and prototyping. Topics include: formal theories of fun; the mechanics-dynamics-aesthetics framework; game economies; game balance; statistical tools for analyzing game mechanics; game settings; and storytelling. Special attention is given to the attributes of games and what makes a game fun.
Prerequisite(s): COMP 1005 or COMP 1405.
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.
Prerequisite(s): COMP 1005 or COMP 1405.
Lecture/lab four hours a week.
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. program.
Prerequisite(s): Permission of the School and registration in internship option.
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. program.
Prerequisite(s): COMP 1910 and registration in internship option.
User Interaction Design and Prototyping
Introduction to the principles of interaction design, including the human-centred design process, creative ideation, requirements gathering, prototyping, ethical considerations in design, rapid usability evaluation, and iterative design in a variety of user interaction paradigms.
Precludes additional credit for IMD 3004.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
Applied Cryptography and Authentication
Practical aspects of cryptography. Topics include: stream and block ciphers; modes of operation; hash functions; message and user authentication; authenticated key establishment protocols; random number generation; entropy; proof of knowledge; secret sharing; key distribution; pitfalls deploying public-key encryption and digital signatures.
Precludes additional credit for COMP 3109 (no longer offered), COMP 4109 (no longer offered), CSEC 2108.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-, and COMP 2804.
Lectures three hours a week.
Introduction to Security and Privacy
A tour of Internet security and privacy. Societal impacts and case studies. Topics from: protection goals of stakeholders; history of public key cryptography; programming languages and security; security engineering and testing; cybercrime and malware; Internet privacy and anonymity; government surveillance; regulation; ethics; blockchain applications.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-, and COMP 2401 with a minimum grade of C-.
Lectures three hours a week.
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 SYSC 1006, SYSC 2006.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
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): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week.
Introduction to Software Engineering
Introduction to object-oriented software development, with emphasis on the design and implementation of maintainable, reusable software. Topics include abstraction, modularity, encapsulation, and an introduction to design patterns.
Precludes additional credit for SYSC 3010, SYSC 3110.
Prerequisite(s): COMP 2401 with a minimum grade of C-.
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.
Precludes additional credit for SYSC 4504.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
Computer Game Design and Development
Introduction to the practical development of computer games and engine architecture. Topics include: vector and matrix operations; coordinate systems and transformations; physical simulation; collision detection; AI; path planning; hardware-accelerated real-time rendering. Special attention is given to implementation of real-time rendering in a low-level language.
Prerequisite(s): COMP 2401 with a minimum grade of C-, and (MATH 1104 or MATH 1107).
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
A course on programming simulated mobile robots with various sensors such as wheel encoders, distance sensors, cameras, compasses, accelerometers, and laser range finders. Topics include: programming robot behaviour; performing position estimation; implementing algorithms related to navigation, mapping, path planning, area coverage, and localization.
Precludes additional credit for COMP 1807 (no longer offered).
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lecture/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.
Lectures three hours a week.
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. program.
Prerequisite(s): COMP 1911 and registration in internship option.
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. program.
Prerequisite(s): COMP 2910 and registration in internship option.
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 4001.
Prerequisite(s): COMP 2401 with a minimum grade of C- and COMP 2402.
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
Development of object-oriented software systems: theory and practice. Topics include: Computer ethics, software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project.
Precludes additional credit for SYSC 3020, SYSC 3120, SYSC 4120.
Prerequisite(s): COMP 2401 with a minimum grade of C-, (COMP 2404 or SYSC 3010 or SYSC 3110) with a minimum grade of C-, and (COMP 2406 or SYSC 4504).
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 with a minimum grade of C-, and either COMP 2402 or (SYSC 2004 and SYSC 2100).
Lectures three hours a week.
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 1805 with a minimum grade of C-, COMP 2401 with a minimum grade of C-, COMP 2402, (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504).
Lectures and tutorials three to four and a half hours a week.
Software Structures for User Interfaces
Concepts and principles related to building user interfaces, and applications in implementing interfaces in “front-end” programming contexts. Topics may include: reactive programming, input and output factors, application interfaces and infrastructure, typical patterns used to implement them, and organization and management of these aspects within software.
Precludes additional credit for SYSC 4130.
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504).
Lectures three hours a week.
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 with a minimum grade of C-, COMP 2402, MATH 1007, and (MATH 1104 or MATH 1107).
Lectures/lab four hours a week.
Introduction to Machine Learning
An introduction to methods for automated learning of relationships on the basis of empirical data. Includes topics in supervised and unsupervised machine learning and deeper knowledge of specific algorithms and their applications. Evaluation and quantification of performance of ML systems. Discussion of data ethics.
Precludes additional credit for COMP 4105 (no longer offered), SYSC 4415.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2804 and (MATH 1104 or MATH 1107).
Lectures three hours a week.
Introduction to Artificial Intelligence
Principles and tools used in Artificial Intelligence. Fundamentals of Knowledge Representation and Reinforcement Learning and Nature-Based computing. Methods for non-adversarial problem solving including non-exhaustive and heuristic-based strategies for searching the state space. Methods for adversarial problem solving, modeled as two-person and multi-person games.
Precludes additional credit for COMP 4106 (no longer offered), SYSC 4416.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2804.
Lectures three hours a week.
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 3512, SYSC 4602.
Prerequisite(s): COMP 2401 with a minimum grade of C-, and COMP 2402.
Lectures and tutorials three to four and a half 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.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110).
Lectures three hours a week.
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 BIOL 3008.
Precludes additional credit for BIOC 3008 (no longer offered).
Prerequisite(s): BIOC 2200 or BIOL 2200, or BIOL 2201, 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
The theory and practice of 3D graphics for computer games. Topics include: vectors and quaternions; hierarchical transformations; camera and perspective; hardware-accelerated real-time rendering; texture and texture mapping; illumination; and particle systems. Additional topics may include rigid-body motion, character animation, shadows, and screen-space special effects.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2501.
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: data mining, hashing, streaming, clustering, recommendation systems, link analysis, dimensionality reduction, online, social networking, game theoretic and probabilistic algorithms.
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): COMP 2402 and one of (COMP 2804 or MATH 3855 or MATH 3825 or COMP 3805).
Lectures and tutorials three to four and a half 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.
Mathematical Software
Implementation of numerical methods using numerical software packages. Development of scientific and/or operations research applications using application programming interfaces of numerical or optimization libraries. Functional programming for data analysis and machine learning. Experience working with Python, C++, or Java is essential.
Also listed as MATH 3807.
Prerequisite(s): A grade of C- or higher in MATH 3806.
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. program.
Prerequisite(s): COMP 2911 and registration in internship option.
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. program.
Prerequisite(s): COMP 3910 and registration in internship option.
Co-operative Work Term
Distributed Operating Systems
An advanced course on the software infrastructure supporting large-scale cloud computing applications. Topics may include: distributed file systems, distributed databases, overlay networks, container orchestration, coordination services, security and privacy services, and large-scale AI pipelines.
Prerequisite(s): (COMP 3000 or SYSC 4001) and (COMP 3203 or SYSC 4602).
Also offered at the graduate level, with different requirements, as COMP 5102, for which additional credit is precluded.
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).
Prerequisite(s): COMP 1805 with a minimum grade of C-, COMP 2401 with a minimum grade of C-, and (COMP 2406 or SYSC 4504).
Lectures three hours a week.
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: equivalence partitioning, test-driven testing, unit testing patterns, refactoring, software metrics, requirements engineering, scenario modeling and acceptance testing, model-based testing, state machine testing, software testing theory and tools.
Precludes additional credit for SYSC 4101.
Prerequisite(s): COMP 3004.
Lectures three hours a week.
Evaluation and Research Methods for Human-Computer Interaction
Fundamental Human-Computer Interaction (HCI) research and evaluation methods. Topics may include: HCI research methodologies, research ethics, expert evaluation, user studies, qualitative and quantitative data collection, statistical data analysis, information visualization, and specifying practical implications of findings.
Prerequisite(s): COMP 2008, COMP 3008, and STAT 2509 with a minimum grade of C- in each.
Also offered at the graduate level, with different requirements, as HCIN 5403, for which additional credit is precluded.
Lectures three hours a week, tutorial one and a half hours a week.
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.
Introduction to Reinforcement Learning
Learn about designing and programming reinforcement learning agents to perform complex tasks in interactive environments. Topics include Markov decision processes, dynamic programming methods, Monte Carlo methods, temporal difference learning, prediction/control with function approximation, policy gradient, and deep reinforcement learning algorithms.
Prerequisite(s): COMP 2402, (COMP 2404 or SYSC 3010 or SYSC 3110), MATH 1007 and (MATH 1104 or MATH 1107), STAT 2507.
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.
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (MATH 1104 or MATH 1107).
Lectures three hours a week.
Neural Networks
An introduction to neural networks and deep learning. Theory and application of Neural Networks to problems in machine learning. Various network architectures will be discussed. Methods for improving optimization and generalization of neural networks. Neural networks for unsupervised learning.
Precludes additional credit for COMP 5206.
Prerequisite(s): (COMP 3105 or SYSC 4415) and (MATH 1104 or MATH 1107).
Lectures three hours a week.
Computer Systems Security
Information security in computer and communications systems. Topics include: design principles; operating system security and access control; web and software security; malicious software, security infrastructure; secure email; network authentication; firewalls; intrusion detection; IP security; network attacks; wireless security.
Precludes additional credit for CSEC 3108 and SYSC 4810.
Prerequisite(s): COMP 2108 and (COMP 3000 or SYSC 4001).
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.
Quantum Computing and Information
Introduction to the ideas and principles of quantum computing and information. Review of mathematical foundations. Discussion of quantum theory, architecture, and quantum gates. Basic algorithms in quantum computing. Theoretical computer science and computation. Applications of quantum computing to cryptography. Quantum information and error correction.
Prerequisite(s): COMP 2804.
Lectures three hours a week
Introduction to Natural Language Processing
Introduction to the fundamental techniques and models of modern natural language processing. Topics include: word embedding, language models, machine translation, self-attention and transformer, question answering, and pre-trained models.
Prerequisite(s): COMP 3105 and (MATH 1104 or MATH 1107).
Lectures three hours a week.
Multiagent Systems
Multiagent systems is a branch of artificial intelligence that explores the interactions between multiple rational entities, where each may have access to different information and possibly conflicting priorities. This course takes an approach founded on economic game theory.
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.
Prerequisite(s): COMP 3804 or MATH 3804.
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.
Prerequisite(s): COMP 3203 or SYSC 4602.
Lectures three hours a week.
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.
Also offered at the graduate level, with different requirements, as COMP 5310, for which additional credit is precluded.
Lecture three hours a week.
Advanced Facilities for Real-Time Games
A practical course on the design and implementation of modern game engines and advanced facilities provided by these engines. Such facilities include systems for rendering 3D scenes; simulating physics; playing animations; game AI; and enabling multi-player games. Students will undertake a significant game development project.
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.
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or COMP 2601 or SYSC 4504).
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 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504)) or COMP 2601.
Lectures/labs four hours per week.
Computing, Society, and Ethics
This course examines ethical questions raised by computing technologies - both motivated by recent developments and through the lens of fiction. Students will identify possible ethical issues in future technologies and use formal ethics frameworks to evaluate the merits and pitfalls of different solutions.
Prerequisite(s): Any two of COMP 2108, COMP 3004, COMP 3005, COMP 3008, COMP 3105, COMP 3106, COMP 3308, COMP 3804.
Lectures three hours a 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
Matrix computations, conditioning/stability, direct methods for linear systems, classical iterative methods: Jacobi, Gauss-Seidel; modern iterative methods, Arnoldi decomposition, GMRES and other Krylov subspace-based methods for sparse and structured matrices; numerical solution of eigenvalue problems, implementation using suitable programming language, application to differential equations/optimization problems.
Prerequisite(s): MATH 2000, (MATH 2107 or MATH 2152), MATH 3806; or permission of the School.
Lectures three hours a week.
Special Topics in Computer Science
Advanced topics in Computer Science offered by members of the School of Computer Science.
Lectures three hours a week and up to three hours of tutorials a week.
Directed Studies
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 program.
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 website.
Precludes additional credit for COMP 4906.
Prerequisite(s): fourth-year standing in a B.C.S. Honours program or one of the Combined Computer Science Honours programs and permission of the School of Computer Science.
Honours Thesis
Independent research under the direct supervision of a faculty advisor. Permission to register is granted once an approved thesis proposal is submitted to the School of Computer Science. Evaluation is based on a written thesis and a poster presentation.
Precludes additional credit for COMP 4905.
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. program.
Prerequisite(s): COMP 3911 and registration in internship option.
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. program.
Prerequisite(s): COMP 4910 and registration in internship option.
Cybersecurity (CSEC) Courses
Cryptographic Algorithms and Protocols
Block ciphers and modes of operation; public-key encryption; cryptographic hash functions; digital signatures; password-based cryptography; randomness and guesswork; authentication and authenticated key establishment protocols; challenge-response protocols; elliptic curve cryptography; post-quantum algorithms.
Precludes additional credit for COMP 2108, COMP 3109 (no longer offered), COMP 4109 (no longer offered).
Prerequisite(s): (COMP 1006 or COMP 1406 with a minimum grade of C-, (COMP 2804 or STAT 2507), and MATH 1104.
Lectures three hours a week, tutorials one and a half hours a week.
Systems Security
Securing networked computer systems. Threat modelling. Operating system security and design principles. Access control. Software-based exploits, memory safety, non-functional testing in software development. Social engineering. Browser-server and transport-layer security. Middleperson attacks, end-to-end security. Public-key certificates. Case study: Bluetooth or Wi-Fi security.
Precludes additional credit for COMP 4108 and SYSC 4810.
Prerequisite(s): CSEC 2108, (COMP 3000 or SYSC 4001), and (COMP 3203 or SYSC 4602).
Lectures three hours a week, tutorials one and a half hours a week.
Co-operative Work Term
Operating Systems Security
The course examines past, present, and emerging approaches for securing operating systems. The focus is to provide a foundation for understanding requirements to secure hosts at the operating system level and survey the landscape of available tools and techniques for implementing operating system security controls.
Prerequisite(s): (COMP 3000 or SYSC 4001) and CSEC 3108.
Lectures three hours a week.
Human Factors in Security
Designing security mechanisms with human factors in mind. Evaluating software-based systems with focus on how interaction design affects security/privacy. Current approaches to usable security; user studies; methodologies for empirical analysis; design principles for usable security/privacy; case studies including authentication, anonymity systems.
Prerequisite(s): COMP 3008 and CSEC 3108.
Lectures three hours a week.
Network Security
Security throughout network stack layers. Internet core security. VPNs and tunnelling protocols. Firewalls and Intrusion Detection Systems. Internet measurements. IoT security. Botnets. Securing network protocols, including email and web. Network monitoring. Traffic sniffers and vulnerability scanners.
Prerequisite(s): (COMP 3000 or SYSC 4001), (COMP 3203 or SYSC 4602), and CSEC 3108.
Lectures three hours a week.
Software Security
Resilience of everyday software to vulnerabilities. Security engineering and the security development lifecycle. Static analysis and vulnerability analysis. Model checkers. Security testing, non-functional testing, fuzz-testing. Programming languages and security. Cryptographic APIs and use of security toolkits.
Prerequisite(s): (COMP 3000 or SYSC 4001), COMP 3004 and CSEC 3108.
Lectures three hours a week.
Selected Topics in Security I
An in-depth study of selected topics, with an emphasis on areas of strong current interest in research or practice.
Prerequisite(s): CSEC 3108, and permission of the School of Computer Science.
Lectures three hours a week.
Selected Topics in Security II
An in-depth study of selected topics, with an emphasis on areas of strong current interest in research or practice.
Prerequisite(s): CSEC 3108, and permission of the School of Computer Science.
Lectures three hours a week.
Note: 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.
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
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.
Academic Continuation Evaluation for Bachelor of Cybersecurity (Honours)
Students in the B.Cyber. (Honours) follow the continuation requirements for Honours programs, as described in Section 3.2.6 of the Academic Regulations of the University, with the following addition:
- Students with 15.5 or more program credits completed, but who have a Major CGPA less than 6.00, will be required to leave the B.Cyber. program with the decision Required to Withdraw for Two Terms (WT).
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 applies to a degree program with a Co-op option from high school, their university grades will be reviewed two terms to one year prior to their first work term to ensure they meet the academic requirements after their first or second year of study. The time at which the evaluation takes place depends on the program of study. Students will automatically receive an admission decision via their Carleton email account.
Students who did not request Co-op at the time they applied to Carleton can request Co-op after they begin their university studies. To view application instructions and deadlines, please visit carleton.ca/co-op.
To be admitted to Co-op, a student must successfully complete 5.0 or more credits that count towards their degree, meet the minimum CGPA requirement(s) for the student's Co-op option, and fulfil any specified course prerequisites. To see the unique admission and continuation requirements for each Co-op option, please refer to the specific degree programs listed in the Undergraduate Calendar.
Participation Requirements
Co-op Participation Agreement
All students must adhere to the policies found within the Co-op Participation Agreement.
COOP 1000
Once a student has been admitted to the Co-op Program, they will be given access to register in COOP 1000. This zero-credit online course must be completed at least two terms prior to the student's first work term.
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 Co-op students, no guarantee of employment can be made. The Co-op job search process is competitive, and success is dependent upon factors such as current market conditions, academic performance, skills, motivation, and level of commitment to the job search. It is the student's responsibility to apply for positions via the Co-op job board in addition to actively conducting a self-directed job search. Students who do not obtain a co-op work term are expected to continue with their academic studies. It should be noted that hiring priority for positions within the Federal Government of Canada is given to Canadian citizens.
Registration
- Students must be registered as full-time during all fall and winter study terms beginning the term in which they enroll in COOP 1000.
- Students will be registered in a Co-op Work Term course while at work. This course does not carry academic course credit, but is noted on academic transcripts.
- Students may register in a 0.5 credit during a work term, provided the course is offered during the evening or is offered asynchronously online.
- Students must have at least one term of full-time studies left to complete following their final co-op work term. Students cannot end their degree on a work term.
Work Term Assessment and Evaluation
Work Term Evaluation
Employers are responsible for submitting to Carleton University final performance evaluations for their Co-op students at the end of their work terms.
Work Term Assessment
In order to successfully complete the co-op work term, students must receive a Satisfactory (SAT) grade on their Co-op Work Term Report, which they must submit at the completion of each four-month work term.
Graduation with the Co-op Designation
In order to graduate with the Co-op Designation, students must satisfy all requirements of the degree program in addition to the successful completion of three or four work terms (the number is dependent upon the student's academic program). Students found in violation of the Co-op Participation Agreement may have the Co-op Designation withheld.
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 who are currently on a co-op work term or who have already committed to a co-op work term either verbally or in writing may not leave the position and/or withdraw from the co-op option until they have completed the work term and all related requirements.
Involuntary or Required Withdrawal from the Co-op Option
Students may be removed from the Co-op Program for any of the following reasons:
- Failure to achieve a grade of SAT in COOP 1000;
- Failure to attend all interviews for positions to which the student has applied;
- Declining more than one job offer during the job search;
- Reneging on a co-op position that the student has accepted either verbally or in writing;
- 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 from the Co-op Management Team;
- Receipt of an unsatisfactory work term evaluation;
- Receiving a grade of UNS on the work term report.
International Students
All international students are required to possess a Co-op Work Permit issued by Immigration, Refugees and Citizenship Canada before they can begin working. The Co-operative Education Office will provide students with a letter of support to accompany their Co-op Work Permit application. Students are advised to discuss the application process and application requirements with the International Student Services Office.
Co-op Fees
All participating Co-op students are required to pay Co-op fees. For full details, please see the Co-op website.
Bachelor of Computer Science Honours and Major: Co-op Admission and Continuation Requirements
- Maintain full-time status in each study term;
- Be eligible to work in Canada (for off-campus work);
- Have successfully completed COOP 1000 .
In addition to the following:
- Registered as a full-time student in the B.CS Honours or Major program;
- Successfully completed 5.0 or more credits;
- Successfully completed, by the start-date of the first work term, COMP 2404;
- Obtained an Overall CGPA of at least 8.00 and a Major CGPA of at least 8.00. These CGPAs must be maintained throughout the duration of the degree.
B.CS 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 | Summer | W | Summer | W | Summer | W |
Legend
S: Study
W: Work
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 applies to a degree program with a Co-op option from high school, their university grades will be reviewed two terms to one year prior to their first work term to ensure they meet the academic requirements after their first or second year of study. The time at which the evaluation takes place depends on the program of study. Students will automatically receive an admission decision via their Carleton email account.
Students who did not request Co-op at the time they applied to Carleton can request Co-op after they begin their university studies. To view application instructions and deadlines, please visit carleton.ca/co-op.
To be admitted to Co-op, a student must successfully complete 5.0 or more credits that count towards their degree, meet the minimum CGPA requirement(s) for the student's Co-op option, and fulfil any specified course prerequisites. To see the unique admission and continuation requirements for each Co-op option, please refer to the specific degree programs listed in the Undergraduate Calendar.
Participation Requirements
Co-op Participation Agreement
All students must adhere to the policies found within the Co-op Participation Agreement.
COOP 1000
Once a student has been admitted to the Co-op Program, they will be given access to register in COOP 1000. This zero-credit online course must be completed at least two terms prior to the student's first work term.
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 Co-op students, no guarantee of employment can be made. The Co-op job search process is competitive, and success is dependent upon factors such as current market conditions, academic performance, skills, motivation, and level of commitment to the job search. It is the student's responsibility to apply for positions via the Co-op job board in addition to actively conducting a self-directed job search. Students who do not obtain a co-op work term are expected to continue with their academic studies. It should be noted that hiring priority for positions within the Federal Government of Canada is given to Canadian citizens.
Registration
- Students must be registered as full-time during all fall and winter study terms beginning the term in which they enroll in COOP 1000.
- Students will be registered in a Co-op Work Term course while at work. This course does not carry academic course credit, but is noted on academic transcripts.
- Students may register in a 0.5 credit during a work term, provided the course is offered during the evening or is offered asynchronously online.
- Students must have at least one term of full-time studies left to complete following their final co-op work term. Students cannot end their degree on a work term.
Work Term Assessment and Evaluation
Work Term Evaluation
Employers are responsible for submitting to Carleton University final performance evaluations for their Co-op students at the end of their work terms.
Work Term Assessment
In order to successfully complete the co-op work term, students must receive a Satisfactory (SAT) grade on their Co-op Work Term Report, which they must submit at the completion of each four-month work term.
Graduation with the Co-op Designation
In order to graduate with the Co-op Designation, students must satisfy all requirements of the degree program in addition to the successful completion of three or four work terms (the number is dependent upon the student's academic program). Students found in violation of the Co-op Participation Agreement may have the Co-op Designation withheld.
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 who are currently on a co-op work term or who have already committed to a co-op work term either verbally or in writing may not leave the position and/or withdraw from the co-op option until they have completed the work term and all related requirements.
Involuntary or Required Withdrawal from the Co-op Option
Students may be removed from the Co-op Program for any of the following reasons:
- Failure to achieve a grade of SAT in COOP 1000;
- Failure to attend all interviews for positions to which the student has applied;
- Declining more than one job offer during the job search;
- Reneging on a co-op position that the student has accepted either verbally or in writing;
- 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 from the Co-op Management Team;
- Receipt of an unsatisfactory work term evaluation;
- Receiving a grade of UNS on the work term report.
International Students
All international students are required to possess a Co-op Work Permit issued by Immigration, Refugees and Citizenship Canada before they can begin working. The Co-operative Education Office will provide students with a letter of support to accompany their Co-op Work Permit application. Students are advised to discuss the application process and application requirements with the International Student Services Office.
Co-op Fees
All participating Co-op students are required to pay Co-op fees. For full details, please see the Co-op website.
Bachelor of Cybersecurity Honours: Co-op Admission and Continuation Requirements
- Maintain full-time status in each study term;
- Be eligible to work in Canada (for off-campus work);
- Have successfully completed COOP 1000 .
In addition to the following:
- Registered as a full-time student in the B.Cyber. Honours program;
- Successfully completed 5.0 or more credits;
- Successfully completed, by the start-date of the first work term, CSEC 2108 and COMP 2401, and at least two of COMP 2109, COMP 2404, and COMP 2406;
- Obtained an Overall CGPA of at least 8.00 and a Major CGPA of at least 8.00. These CGPAs must be maintained throughout the duration of the degree.
B.Cyber. Honours students must successfully complete four (4) work terms to obtain the Co-op Designation.
Co-op Work Term Course: CSEC 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 | S | Fall | S | Fall | W |
Winter | S | Winter | S | Winter | W | Winter | S | Winter | S |
Summer | Summer | W | Summer | W | Summer | W |
Legend
S: Study
W: Work
Admissions Information
Admission Requirements are for the 2025-26 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.
Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.
Admissions Information
Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.
Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.
Degree
- Bachelor of Computer Science (B.C.S.) (Honours)
- Bachelor of Computer Science (B.C.S.) (Major)
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 Advanced Functions, and Calculus and Vectors.
Advanced Standing
Applications for admission beyond first year will be assessed on their merits. Students must typically present a minimum CGPA of 7.00 (B-) in order to be considered for admission. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected. Students will not receive credit for courses graded below C-.
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 Honours 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 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.
Admissions Information
Admission Requirements are for the 2025-26 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.
Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.
Admissions Information
Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.
Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.
Degree
- Bachelor of Cybersecurity (B.Cyber.) (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 Advanced Functions, and Calculus and Vectors.
Advanced Standing
Applications for admission beyond first year will be assessed on their merits. Students must typically present a minimum CGPA of 7.00 (B-) in order to be considered for admission. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected. Students will not receive credit for courses graded below C-.
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 Cybersecurity Honours 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 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.