Bachelor of Computer Science
The following regulations apply to students starting the program in September 2005 or after.
Faculty Requirements
1000 Level
• CSCI 1100.03: Computer Science I
• CSCI 1101.03: Computer Science II
2000 Level
• CSCI 2100.03: Communication Skills: Oral and Written
• CSCI 2110.03: Computer Science III
• CSCI 2112.03: Discrete Structures I
• CSCI 2121.03: Computer Organization with Assembly Language
• CSCI 2132.03: Software Development
• CSCI 2140.03: Data and Knowledge Fundamentals
3000 Level
• CSCI 3101.03: Social, Ethical and Professional Issues in Computer Science
• CSCI 3110.03: Design and Analysis of Algorithms I
• CSCI 3120.03: Operating Systems
• CSCI 3130.03: Introduction to Software Engineering
• CSCI 3136.03: Principles of Programming Languages
• CSCI 3171.03: Network Computing
Other Required Classes:
• MATH 1000.03: Differential and Integral Calculus I
• MATH 1010.03: Differential and Integral Calculus II or
CSCI 2113.03 Discrete Structures II
• MATH 2030.03: Matrix Theory and Linear Algebra I
• STAT 2060.03: Introduction to Probability and Statistics I
• One full credit or two half credits of a science class with a lab from a list provided by the Faculty of Computer Science
• One full credit to satisfy the writing requirement
• One half-credit class in humanities or social science at or above the 1000 level
• Two half-credit classes in business, science, or engineering at or above the 1000 level
• One business, science, or engineering half-credit class at or above the 2000 level
• Two half-credit electives of computer science at or above the 3000 level
• Three half-credit electives of computer science at or above the 4000 level
• Two free half-credit electives at or above the 1000 level
• Seven free half-credit electives at or above the 2000 level
Courses of the form CSCI X2XX, where X is any digit, and CSCI 1502.03 may not be counted towards a Bachelor of Computer Science degree.
- CSCI 1100.03: Computer Science I.
- CSCI 1101.03: Computer Science II.
- CSCI 1105.03: Introduction to Computer Programming.
- CSCI 1106.03: Perspectives of Computer Science.
- CSCI 1200.03: Introduction to Computing for Non-Majors.
- CSCI 1201.03: Introduction to Multimedia for the Arts.
- CSCI 1204.03: Computer Techniques for Health and Life Sciences.
- CSCI 1205.03: Design and Use of Databases.
- CSCI 1206.03: Introduction to Website Creation.
- CSCI 1502.03: Core Business Applications.
- CSCI 2100.03: Communication Skills: Oral and Written.
- CSCI 2102.03: Initiating the Technology Venture.
- CSCI 2110.03: Computer Science III.
- CSCI 2112.03: Discrete Structures I.
- CSCI 2113.03: Discrete Structures II.
- CSCI 2121.03: Computer Organization with Assembly Language.
- CSCI 2132.03: Software Development.
- CSCI 2140.03: Data and Knowledge Fundamentals.
- CSCI 2201.03: Introduction to Information Security.
- CSCI 3101.03: Social, Ethical and Professional Issues in Computer Science.
- CSCI 3110.03: Design and Analysis of Algorithms I.
- CSCI 3111.03: Introduction to Numerical Linear Algebra.
- CSCI 3120.03: Operating Systems.
- CSCI 3121.03: Computer Systems Architecture.
- CSCI 3122.03: Microcomputers and the Real World.
- CSCI 3130.03: Introduction to Software Engineering.
- CSCI 3132.03: Object Orientation and Generic Programming.
- CSCI 3136.03: Principles of Programming Languages.
- CSCI 3140.03: Database Management Systems.
- CSCI 3160.03: User Interface Design.
- CSCI 3161.03: Computer Animation.
- CSCI 3171.03: Network Computing.
- CSCI 3172.03: Web-Centric Computing.
- CSCI 3190.03: Community Outreach.
- CSCI 3191.03: Community Outreach II.
- CSCI 4112.03: Theory of Computation.
- CSCI 4113.03: Design and Analysis of Algorithms II.
- CSCI 4114.03: Formal Aspects of Software Engineering.
- CSCI 4115.03: Topics in Graph Theory.
- CSCI 4116.03: Cryptography.
- CSCI 4121.03: Advanced Computer Architecture.
- CSCI 4122.03: Software Design Methods for Real Time Systems.
- CSCI 4125.03: Programming for Performance.
- CSCI 4131.03: Compiler Construction.
- CSCI 4132.03: Personal Software Process.
- CSCI 4133.03: Application Frameworks.
- CSCI 4134.03: Software Architecture.
- CSCI 4135.03: Code Optimization and Generation.
- CSCI 4136.03: Software Testing and Quality Assurance.
- CSCI 4137.03: Software Deployment, Maintenance, and Evolution.
- CSCI 4138.03: Empirical Performance Modelling.
- CSCI 4141.03: Information Retrieval.
- CSCI 4142.03: Multimedia Information Systems.
- CSCI 4144.03: Introduction to Data Mining and Data Warehousing.
- CSCI 4150.03: Introduction to Artificial Intelligence.
- CSCI 4152.03: Natural Language Processing.
- CSCI 4154.03: Opponent Modeling for Computer Gaming.
- CSCI 4155.03: Opponent Modeling for Computer Gaming.
- CSCI 4160.03: Computer Graphics.
- CSCI 4163.03: Human-Computer Interaction.
- CSCI 4165.03: Digital Media.
- CSCI 4166.03: Visualization.
- CSCI 4167.03: Advanced Computer Animation.
- CSCI 4171.03: Networks and Communication.
- CSCI 4174.03: Network Security.
- CSCI 4175.03: Distributed Systems.
- CSCI 4180.03: Introduction to Computational Biology and Bioinformatics.
- CSCI 4181.03: Bioinformatics Algorithms.
- CSCI 4190.03: Special Topics in Computer Science.
- CSCI 4192.03: Directed Studies.
- CSCI 8871.00: Honours Seminar I.
- CSCI 8872.00: Honours Seminar 2.
- CSCI 8890.00: Co-Op Seminar.
- CSCI 8891.00: Co-op Work Term I.
- CSCI 8892.00: Co-op Work Term 2.
- CSCI 8893.00: Co-op Work Term 3.