Comparison of Stream Requirements
In addition to the core courses that are taken by all B.C.S. students, each of the various streams has additional courses that MUST be taken to fulfill the stream requirements. Below is a list of these courses for each of the individual streams. For a complete list of program stream requirements, please see the 2026-27 Undergraduate Calendar:
Algorithms
- COMP 3803 – Introduction to Theory of Computation
- COMP 4001 – Distributed Computing
- COMP 4801 – Algorithms for Data Mining, Web, & Social Networks (previously COMP 3801-Modern Data Sets)
- COMP 4804 – Design and Analysis of Algorithms II
Artificial Intelligence and Machine Learning
- COMP 3105 – Introduction to Machine Learning
- COMP 3106 – Introduction to Artificial Intelligence
- COMP 4107 – Neural Networks
Computer Game Development
- COMP 3501 – Foundations of Game Programming and Computer Graphics
- COMP 4501 – Advanced Facilities for Real-Time Games
Two of:
- COMP 1501 – Introduction to Computer Game Design
- COMP 2501 – Computer Game Design and Development
- COMP 3008 – Software Structures for User Interfaces
- COMP 3106 – Introduction to Artificial Intelligence
- COMP 3203 – Principles of Computer Networks
- COMP 4509 – Computer Graphics (formerly COMP 3009)
Cybersecurity (formerly Computer and Internet Security)
- COMP 2108 – Applied Cryptography and Authentication
- COMP 3008 – Software Structures for User Interfaces
- COMP 3203 – Principles of Computer Networks
- COMP 4108 – Computer Systems Security
Management and Business Systems
- Consult your audit for course list as students in different program years have different requirements.
Software Engineering
- COMP 3008 – Software Structures for User Interfaces
- COMP 4004 – Software Quality Assurance
- SYSC 3303 – Real-Time Concurrent Systems
- SYSC 4106 – The Software Economy and Project Management