ObjectivesBachelor of Computer Science – the first year of this flexible, multidisciplinary program emphasizes creative problem solving and critical thinking. Later, you’ll study how computers are able to discover patterns of behavior in computer games, commerce and medicine, or develop systems that can find the relationships between genes and organisms.
Practical experienceThere is a co-op component associated with this program.
Academic titleBachelor of Computer Science
Course descriptionBachelor 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.