Jump to programs in:

Bachelor of Science programs

    MINOR Programs
    Minor in Computer Science (24 credits)

    Designed for students who want to gain a basic understanding of computer science principles and get an overview of some computer science areas. Basic computer science skills are important in many domains, the Minor is useful for students majoring in any discipline.

    COURSECREDITSTITLE
    REQUIRED: 9  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 203
    OR COMP 250

     3
    3

    Introduction to Computing 2
    Introduction to Computer Science

    COMP 206

    3

    Introduction to Software Systems

    COMPLIMENTARY: 15 (to be selected from the courses below)

    COMP 251**

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    and COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431)
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    **COMP 251 is a pre-requisite for many of the other complementary courses.


    This Minor may be taken in conjunction with any program in the Faculties of Science and Engineering (except other Computer Science programs). Students must obtain approval from the advisor of their main program.


    Students are strongly encouraged to talk to an advisor in the School of Computer Science before choosing their complementary courses. Approval must be given by the School for the particular selection of courses to be credited towards the Minor.


    If a student's Major program requires COMP courses, up to six credits of COMP courses may be used to fulfill both Major and Minor requirements.



    MAJOR Programs
    Major in Computer Science (60-63 credits)

    The standard Major program offered by the School of Computer Science. It provides a broad introduction to the principles of computer science and offers ample opportunity to acquire in-depth knowledge of several sub-disciplines. At the same time, its credit requirements allow students to take an additional minor.

    COURSECREDITSTITLE
    REQUIRED: 27-30  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 310

    3

    Operating Systems

    MATH 222

    3

    Calculus 3

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 33 (to be selected from the courses below)
    At least 6 credits selected from:

    COMP 330

    3

    Theory of Computation

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    At least 3 credits selected from:

    COMP 303

    3

    Software Development

    COMP 304

    3

    Object-oriented Design

    3-9 credits selected from: (Must include at least one of MATH 323 and MATH 340)

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 340

    3

    Discrete Structures 2

    The remaining credits selected from COMP courses at the 300-level or above
    (except COMP 364, COMP 396, COMP 400, COMP 431) and ECSE 508
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    Students must make sure they have the appropriate pre-requisites when choosing upper level courses.


    Major in Computer Science: Computer Games Option (62-67 credits)

    A specialization within Computer Science. It fulfills all the basic requirements of the Major in Computer Science. Complementary courses focus on topics that are important to understanding the technology behind computer games and to gaining experience in software development and design needed for computer game development.

    COURSECREDITSTITLE
    REQUIRED: 47-50  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 308

    1

    Computer Systems Lab

    COMP 310

    3

    Operating Systems

    COMP 322

    1

    Introduction to C++

    COMP 330

    3

    Theory of Computation

    COMP 361D1, 361D2

    3, 3

    Software Engineering Project

    COMP 557

    3

    Fundamentals of Computer Graphics

    MATH 222

    3

    Calculus 3

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    MATH 323

    3

    Probability

    COMPLIMENTARY: 33 (to be selected from the courses below)
    3 credits selected from:

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    6-8 credits selected from:

    COMP 424

    3

    Artificial Intelligence

    COMP 507

    3

    Computational Geometry

    COMP 521

    4

    Modern Computer Games

    COMP 522

    4

    Modelling and Simulation

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    COMP 559

    4

    Fundamentals of Computer Vision

    6 credits selected from:

    COMP 409

    3

    Concurrent Programming

    COMP 421

    3

    Database Systems

    COMP 535
    OR COMP 435

     3
    3

    Computer Networks 1
    Basics of Computer Networks

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    Major in Software Engineering (60-63 credits)

    This program provides a broad introduction to the principles of computer science and covers in depth the design and development of software systems.

    COURSECREDITSTITLE
    REQUIRED: 36-39  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 310
    OR ECSE 427

     3
    3

    Operating Systems

    COMP 361D1, 361D2

    3, 3

    Software Engineering Project

    ECSE 429

    3

    Software Validation

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 24 (to be selected from the courses below)
    At least 9 credits selected from Groups A and B, with at least 3 credits selected from each:
    Group A:

    MATH 222

    3

    Calculus 3

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    Group B:

    COMP 330

    3

    Theory of Computation

    COMP 360

    3

    Algorithm Design Techniques

    At least 15 credits selected from the following 2 lists:
    Software Engineering Specializations (at least 6 credits):

    COMP 409
    OR ECSE 420

     3
    3

    Concurrent Programming
    Parallel Computing

    COMP 523

    3

    Language-based Security

    COMP 525

    4

    Formal Verification

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    Applications Specialities (at least 6 credits):

    COMP 350

    3

    Numerical Computing

    COMP 417

    3

    Introduction to Robotics and Intelligent Systems

    COMP 421

    3

    Database Systems

    COMP 424

    3

    Artificial Intelligence

    COMP 512

    4

    Distributed Systems

    COMP 520

    4

    Compiler Design

    COMP 521

    4

    Modern Computer Games

    COMP 522

    4

    Modelling and Simulation

    COMP 535

    4

    Computer Networks 1

    COMP 557
    OR ECSE 532

     3
    3

    Fundamentals of Computer Graphics
    Computer Graphics

    COMP 558

    3

    Fundamentals of Computer Vision

    ECSE 424

    3

    Human-Computer Interaction

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.



    LIBERAL Programs

    In a Liberal Program, students must complete a Core Science Component (CSC) of 45-50 credits, PLUS a Breadth Component of at least 18 credits. Please see course calendar for details.

    Liberal Program: Core Science Component in Computer Science (45 credits)

    This program provides an introduction to the principles of computer science and offers opportunity to get insight into some of its sub-areas. Having only 45 credits, it allows students to combine it with minor or major concentrations in other disciplines.

    COURSECREDITSTITLE
    REQUIRED: 21  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 24 (to be selected from the courses below)
    3-6 credits selected from:

    MATH 223

    3

    Linear Algebra

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 340

    3

    Discrete Structures 2

    At least 3 credits selected from:

    COMP 330

    3

    Theory of Computation

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    At least 3 credits selected from:

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    The remaining credits selected from COMP courses at the 300-level or above
    (except COMP 364, COMP 396, COMP 400, COMP 431).
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    Advanced COMP courses have more pre-requisites than the required courses for this program. Students have to make sure that they have the appropriate pre-requisites when choosing upper level courses.


    Liberal Program: Core Science Component in Software Engineering (48-49 credits)

    This program covers a core of programming and Software Engineering courses and allows students to select courses that aim at practical aspects of software development.

    COURSECREDITSTITLE
    REQUIRED: 36  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 310

    3

    Operating Systems

    COMP 361D1, 361D2

    3, 3

    Software Engineering Project

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 12-13 (to be selected from the courses below)
    3 credits selected from:

    COMP 330

    3

    Theory of Computation

    COMP 360

    3

    Algorithm Design Techniques

    9-10 credits selected from:

    COMP 322

    1

    Introduction to C++

    COMP 409

    3

    Concurrent Programming

    COMP 421

    3

    Database Systems

    COMP 535
    OR COMP 435

     3
    3

    Computer Networks 1
    Basics of Computer Networks

    COMP 520

    4

    Compiler Design

    COMP 525

    4

    Formal Verification

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    The remaining credits selected from COMP courses at the 300-level or above
    (except COMP 364, COMP 396, COMP 400, COMP 431).
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    Advanced COMP courses have more pre-requisites than the required courses for this program. Students have to make sure that they have the appropriate pre-requisites when choosing upper level courses.



    HONOURS Programs

    Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation.

    Honours in Computer Science (72-75 credits)

    This program provides an in-depth introduction to the principles of computer science and offers ample opportunity to acquire in-depth knowledge of several sub-disciplines. Compared to the major in Computer Science, it has a stronger focus on the foundations of algorithms, contains a research component and requires students to take advanced courses that cover sub-areas in more detail.

    COURSECREDITSTITLE
    REQUIRED: 42-50  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 252

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 310

    3

    Operating Systems

    COMP 330

    3

    Theory of Computation

    COMP 350

    3

    Numerical Computing

    COMP 362

    3

    Honours Algorithm

    COMP 400

    3

    Technical Project and Report

    MATH 222

    3

    Calculus 3

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    MATH 340
    OR MATH 350

     3
    3

    Discrete Structures 2
    Graph Theory and Combinatorics

    COMPLIMENTARY: 30 (to be selected from the courses below)
    At least 3 credits selected from:

    COMP 303

    3

    Software Development

    COMP 304

    3

    Object-oriented Design

    6 credits selected from:

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    The remaining credits selected from COMP courses at the 300-level or above
    (except COMP 364, COMP 396, COMP 400, COMP 431) and ECSE 508. At least 12 credits must be at the 500-level.
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    Honours in Software Engineering (72-75 credits)

    This program provides a more challenging and research-oriented version of the Major in Software Engineering.

    COURSECREDITSTITLE
    REQUIRED: 36-39  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 252

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 310
    OR ECSE 427

     3
    3

    Operating Systems

    COMP 361D1, 361D2

    3, 3

    Software Engineering Project

    COMP 400

    3

    Technical Project and Report

    ECSE 429

    3

    Software Validation

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 33 (to be selected from the courses below)
    At least 9 credits selected from Groups A and B, with at least 3 credits selected from each:
    Group A:

    MATH 222**

    3

    Calculus 3

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    Group B:

    COMP 330

    3

    Theory of Computation

    COMP 362

    3

    Honours Algorithm Design

    At least 18 credits selected from the following 2 lists:
    Software Engineering Specializations (at least 6 credits):

    COMP 409
    OR ECSE 420

     3
    3

    Concurrent Programming
    Parallel Computing

    COMP 523

    3

    Language-based Security

    COMP 525

    4

    Formal Verification

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    Applications Specialities (at least 9 credits):

    COMP 350

    3

    Numerical Computing

    COMP 417

    3

    Introduction to Robotics and Intelligent Systems

    COMP 421

    3

    Database Systems

    COMP 424

    3

    Artificial Intelligence

    COMP 512

    4

    Distributed Systems

    COMP 520

    4

    Compiler Design

    COMP 521

    4

    Modern Computer Games

    COMP 522

    4

    Modelling and Simulation

    COMP 535

    4

    Computer Networks 1

    COMP 557
    OR ECSE 532

     3
    3

    Fundamentals of Computer Graphics
    Computer Graphics

    COMP 558

    3

    Fundamentals of Computer Vision

    ECSE 424

    3

    Human-Computer Interaction

    At least 6 credits selected from any COMP courses at the 500-level or above.
    These may include courses on the Software Engineering Specializations and Application Specialities lists.
    Of the 33 credits, at least 12 credits must be at the 500-level or above. Courses at the 600- and 700-levels require special permissions.
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    **Students who have successfully completed MATH 150 and MATH 151 are not required to take MATH 222.



    JOINT MAJOR Programs
    Joint Major in Mathematics and Computer Science (72 credits)

    Computer science and mathematics are a natural fit. Advanced computer science subjects ranging from machine learning to cryptography to internet searching are often highly mathematical, so the solid training our joint programs provide is an excellent preparation for graduate school or careers in industry.

    COURSECREDITSTITLE
    REQUIRED: 54  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 310

    3

    Operating Systems

    COMP 330

    3

    Theory of Computation

    COMP 360

    3

    Algorithm Design Techniques

    MATH 222

    3

    Calculus 3

    MATH 235

    3

    Algebra 1

    MATH 236

    3

    Algebra 2

    MATH 242

    3

    Analysis 1

    MATH 315

    3

    Ordinary Differential Equations

    MATH 317
    OR COMP 350

     3
    3

    Numerical Analysis
    Numerical Computing

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 340

    3

    Discrete Structures 2

    COMPLIMENTARY: 18 (to be selected from the courses below)
    9 credits selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431) and ECSE 508.
    9 credits from the set of courses recommended for a Major or Honours Program in Mathematics.
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    Students entering the Joint Major are expected to have completed MATH 133, MATH 140, and MATH 141 or their equivalents. Otherwise they will be required to make up any deficiencies in these courses over and above the 72 credits of courses in the program specification.


    Joint Major in Statistics and Computer Science (72 credits)

    This program provides students with a solid training in both computer science and statistics together with the necessary mathematical background. As statistical endeavours involve ever increasing amounts of data, some students may want training in both disciplines.

    COURSECREDITSTITLE
    REQUIRED: 54  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 330

    3

    Theory of Computation

    MATH 317
    OR COMP 350

     3
    3

    Numerical Analysis
    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    MATH 222

    3

    Calculus 3

    MATH 235

    3

    Algebra 1

    MATH 236
    OR COMP 223

     3
    3

    Algebra 2
    Linear Algebra

    MATH 242

    3

    Analysis 1

    MATH 314

    3

    Advanced Calculus

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 423

    3

    Regression and Analysis of Variance

    COMPLIMENTARY: 21 (to be selected from the courses below)
    9 credits in Computer Science selected as follows:
    At least 6 credits selected from:

    COMP 423

    3

    Data Compression

    COMP 424

    3

    Artificial Intelligence

    COMP 462

    3

    Computational Biology Methods

    COMP 490

    3

    Introduction to Probabilistic Analysis of Algorithms

    COMP 526

    3

    Probabilistic Reasoning and AI

    COMP 540**

    3

    Matrix Computations

    COMP 547

    3

    Cryptography and Data security

    COMP 564

    3

    Computational Gene Regulation

    COMP 566

    3

    Discrete Optimization 1

    COMP 567

    3

    Discrete Optimization 2

    The remaining credits selected from COMP courses at the 300-level or above (except COMP 396, COMP 400, COMP 431).
    12 credits in Mathematics selected from:

    MATH 327

    3

    Matrix Numerical Analysis

    MATH 340
    OR MATH 350

     3
    3

    Discrete Structures 2
    Graph Theory and Combinatorics

    MATH 352

    1

    Problem Seminar

    MATH 410

    3

    Majors Project

    MATH 447

    3

    Stochastic Processes

    MATH 523

    4

    Generalized Linear Models

    MATH 524

    4

    Nonparametric Statistics

    MATH 525

    4

    Sampling Theory and Applications

    MATH 578**

    4

    Numerical Analysis 1

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    **MATH 578 and COMP 540 cannot both be taken for program credit.


    Students entering the Joint Major are expected to have completed MATH 133, MATH 140, and MATH 141 or their equivalents. Otherwise they will be required to make up any deficiencies in these courses over and above the 72 credits of courses in the program specification.


    Joint Major in Physics and Computer Science (66 credits)

    Physics provides an analytic problem-solving outlook and basic understanding of nature, while computer science enhances the ability to make practical and marketable applications, in addition to having its own theoretical interest. Graduates of this program may be able to present themselves as being more immediately useful than a pure physics major, but with more breadth than just a programmer.

    COURSECREDITSTITLE
    U1 REQUIRED COURSES: 21  

    COMP 250

    3

    Introduction to Computer Science

    MATH 222

    3

    Calculus 3

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structure 1

    PHYS 230

    3

    Dynamics of Simple Systems

    PHYS 257

    3

    Experimental Methods 1

    PHYS 258

    3

    Experimental Methods 2

    U2 REQUIRED COURSES: 24  

    COMP 206

    3

    Introduction to Software Systems

    COMP 251

    3

    Data Structures and Algorithms

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 350

    3

    Numerical Computing

    MATH 314

    3

    Advanced Calculus

    MATH 315

    3

    Ordinary Differential Equations

    PHYS 232

    3

    Heat and Waves

    PHYS 241

    3

    Signal Processing

    U3 REQUIRED COURSES: 21  

    COMP 360

    3

    Algorithm Design Techniques

    MATH 323

    3

    Probability

    PHYS 331

    3

    Topics in Classical Mechanics

    PHYS 339

    3

    Measurements Laboratory in General Physics

    PHYS 340

    3

    Majors Electricity and Magnetism

    PHYS 446

    3

    Majors Quantum Physics

    PHYS 489

    3

    Special Project

    Joint Major in Computer Science and Biology (69-73 credits)

    This program will train students in the fundamentals of biology - with a focus on molecular biology - and will give them computational and mathematical skills needed to manage, analyze, and model large biological datasets. The program includes three integrative features.

    COURSECREDITSTITLE
    REQUIRED MATH & STATS COURSES: 6  

    MATH 222

    3

    Calculus 3

    MATH 223

    3

    Linear Algebra

    REQUIRED COMPUTER SCIENCE COURSES: 12, 15 or 16  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 462
    OR COMP 561

     3
    4

    Computational Biology Methods
    Computational Biology Methods and Research

    REQUIRED BIOLOGY COURSES: 20  

    BIOL 200

    3

    Molecular Biology

    BIOL 201

    3

    Cell Biology and Metabolism

    BIOL 202

    3

    Basic Genetics

    BIOL 215

    3

    Introduction to Ecology and Evolution

    BIOL 301

    3

    Cell and Molecular Laboratory

    CHEM 212

    4

    Introductory Organic Chemistry 1

    REQUIRED JOINT COURSES: 4  

    COMP 401

    3

    Project in Biology and Computer Science

    COMP 499

    1

    Undergraduate Bioinformatics Seminar

    COMPLIMENTARY: 27 (to be selected from the courses below)
    6 credits selected from ONE of the following PAIRS of courses:

    MATH 203
    AND MATH 204

     3
    4

    Principles of Statistics 1
    Principles of Statistics 2

    MATH 323
    AND MATH 324

     3
    4

    Probability
    Statistics

    BIOL 309
    AND BIOL 373

     3
    4

    Mathematical Models in Biology
    Biometry

    At least 21 credits selected from the following blocks with these three requirements:
    • At least 9 credits selected from EACH block (COMPUTER SCIENCE and BIOLOGY)
    • At least 9 credits at the 400-level or above
    • At least 3 credits at the 400-level or above from each block
    COMPUTER SCIENCE BLOCK:

    MATH 240

    3

    Discrete Structures 1

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 304

    3

    Object-oriented Design

    COMP 310

    3

    Operating Systems

    COMP 330

    3

    Theory of Computation

    COMP 335

    3

    Software Engineering Methods

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    and all COMP courses at the 400-level (except COMP 401, COMP 462 and COMP 499)
    and 500-level (except COMP 561)
    BIOLOGY BLOCK:

    BIOL 300

    3

    Molecular Biology of the Gene

    BIOL 309

    3

    Mathematical Models in Biology

    BIOL 309

    3

    Mathematical Models in Biology

    BIOL 310

    3

    Large-Scale Ecology

    BIOL 313

    3

    Eukaryotic Cell Biology

    BIOL 395

    1

    Quantitative Biology Seminar I

    BIOL 435

    3

    Natural Selection

    BIOL 495

    1

    Quantitative Biology Seminar II

    BIOL 518

    3

    Advanced Topics in Cell Biology

    BIOL 551

    3

    Cell Cycle

    BIOL 568

    3

    Topics on the Human Genome

    BIOL 569

    3

    Developmental Evolution

    BIOL 572

    3

    Molecular Evolution

    BIOL 583

    3

    Advanced Biometry

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.



    JOINT HONOURS Programs
    Joint Honours in Mathematics and Computer Science (72-75 credits)

    The joint honours programs are particularly challenging and, therefore, particularly rewarding. Many of our best students follow this option and go on to complete PhD s in their choice of computer science or mathematics at the best universities in the world.

    COURSECREDITSTITLE
    REQUIRED: 54  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 252

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 310

    3

    Operating Systems

    COMP 330

    3

    Theory of Computation

    COMP 362

    3

    Honours Algorithm Design

    MATH 235

    3

    Algebra 1

    MATH 242

    3

    Analysis 1

    MATH 248

    3

    Honours Advanced Calculus

    MATH 251

    3

    Honours Algebra 2

    MATH 255

    3

    Honours Analysis 2

    MATH 350

    3

    Graph Theory and Combinatorics

    COMPLIMENTARY: 30 (to be selected from the courses below)
    12 credits in Computer Science, selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 431) and ECSE 508.
    18 credits in Mathematics, selected as follows:
    At least 12 credits selected from:

    MATH 354

    3

    Honours Analysis 3

    MATH 355

    3

    Honours Analysis 4

    MATH 356

    3

    Honours Probability

    MATH 370

    3

    Honours Algebra 3

    MATH 371

    3

    Honours Algebra 4

    MATH 387

    3

    Honours Numerical Analysis

    The remaining credits to be selected from Honours courses given by the Department of Mathematics and Statistics.
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    Students entering the Joint Honours are expected to have completed MATH 133, MATH 140, and MATH 141 or their equivalents. Otherwise they will be required to make up any deficiencies in these courses over and above the 72-75 credits of courses in the program specification.


    Students must consult an Honours advisor in both departments.


    Joint Honours in Statistics and Computer Science (76-79 credits)

    This is a challenging program providing students with a solid training in both computer science and statistics suitable for entry into graduate school in either discipline.

    COURSECREDITSTITLE
    REQUIRED: 54  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 252

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 330

    3

    Theory of Computation

    COMP 362

    3

    Honours Algorithm Design

    MATH 235

    3

    Algebra 1

    MATH 242

    3

    Analysis 1

    MATH 248

    3

    Honours Advanced Calculus

    MATH 251
    OR MATH 247

     3
    3

    Honours Algebra 2
    Honours Applied Linear Algebra

    MATH 255

    3

    Honours Analysis 2

    MATH 356

    3

    Honnours Probability

    MATH 357

    3

    Honnours Statistics

    MATH 533

    3

    Honours Regression and Analysis of Variance

    COMPLIMENTARY: 30 (to be selected from the courses below)
    15 credits in Computer Science selected as follows:
    At least 6 credits selected from:

    COMP 423

    3

    Data Compression

    COMP 424

    3

    Artificial Intelligence

    COMP 462

    3

    Computational Biology Methods

    COMP 490

    3

    Introduction to Probabilistic Analysis of Algorithms

    COMP 526

    3

    Probabilistic Reasoning and AI

    COMP 540**

    3

    Matrix Computations

    COMP 547

    3

    Cryptography and Data security

    COMP 552

    3

    Combinatorial Optimization

    COMP 564

    3

    Computational Gene Regulation

    COMP 566

    3

    Discrete Optimization 1

    COMP 567

    3

    Discrete Optimization 2

    The remaining credits selected from COMP courses at the 300-level or above (except COMP 396, COMP 431).
    15 credits in Mathematics selected as follows:
    At least 3 credits selected from:

    MATH 387

    3

    Honours Numerical Analysis

    MATH 397

    3

    Honours Matrix Numerical Analysis

    At least 8 credits selected from:

    MATH 523

    4

    Generalized Linear Models

    MATH 524

    4

    Nonparametric Statistics

    MATH 525

    4

    Sampling Theory and Applications

    MATH 556

    4

    Mathematical Statistics 1

    MATH 557

    4

    Mathematical Statistics 2

    The remaining MATH credits are selected from:

    MATH 350

    3

    Graph Theory and Combinatorics

    MATH 352

    1

    Problem Seminar

    MATH 354

    3

    Honours Analysis 3

    MATH 355

    3

    Honours Analysis 4

    MATH 578**

    4

    Numerical Analysis 1

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202.


    **MATH 578 and COMP 540 cannot both be taken for program credit.


    Students entering the Joint Major are expected to have completed MATH 133, MATH 140, and MATH 141 or their equivalents. Otherwise they will be required to make up any deficiencies in these courses over and above the 76-79 credits of courses in the program specification.


    Students must consult an Honours advisor in both departments.


Bachelor of Arts programs

    MINOR Programs
    Arts Minor Concentration in Computer Science (18 credits)

    The Minor Concentration in Computer Science is designed for students who want to gain a basic understanding of computer science principles. Basic computer science skills are important in many domains. Thus, the Minor Concentration in Computer Science is useful for students majoring in any discipline.

    COURSECREDITSTITLE
    REQUIRED: 9  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 203
    OR COMP 250

     3
    3

    Introduction to Computing 2
    Introduction to Computer Science

    COMP 206

    3

    Introduction to Software Systems

    COMPLIMENTARY: 9 (to be selected from the courses below)

    COMP 230

    3

    Logic and Computability

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 280

    3

    History and Philosophy of Computing

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    and COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431)
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    Students must have completed MATH 133, MATH 140, MATH 141 or equivalents in order to begin taking courses in Computer science Programs.


    This Minor Concentration may be taken in conjunction with any program in the Faculty of Arts with the approval of the advisor of the student's main program and the School of Computer Science.


    At the time of registration in the penultimate year, students must declare their intent to receive the Minor.


    Students are strongly encouraged to talk to an advisor of the School before choosing the complementary courses. Approval must be given by the School for the particular sequence of courses the student wishes to use for the Minor Concentration.


    Supplementary Minor Concentration in Computer Science (18 credits)

    This Supplementary Minor Concentration may be taken only by students registered in the Major Concentration in Computer Science. There may be no overlap in credits taken for this Supplementary Minor Concentration and the Major Concentration in Computer Science. Taken together, these constitute a program very close to the Major in Computer Science offered by the Faculty of Science.

    COURSECREDITSTITLE
    COMPLIMENTARY: 18 (to be selected from the courses below)
    Selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431).
    Students may also select courses from the list below with a maximum of 3 credits of MATH courses:

    ECSE 508

    3

    Multi-Agent Systems

    MATH 223

    3

    Linear Algebra

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 340

    3

    Discrete Structures 2

    NOTES:

    This Supplementary Minor Concentration may be taken only by students registered in the Major Concentration in Computer Science.


    There may be no overlap in credits taken for this Supplementary Minor Concentration and Major Concentration in Computer Science.


    Taken together, these constitute a program very close to the Major in Computer Science offered by the Faculty of Science.


    Students with 2 programs in the same department must have a third in a different discipline to be eligible to graduate.


    MAJOR Programs
    Arts Major Concentration in Computer Science (36 credits)

    The Major Concentration in Computer Science represents an in-depth introduction to computer science and its sub-areas. Students interested in further study in Computer Science can consider taking the Supplementary Minor Concentration in Computer Science to constitute a program very close to the Major in Computer Science offered by the Faculty of Science.

    COURSECREDITSTITLE
    REQUIRED: 21  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 203
    OR COMP 250

     3
    3

    Introduction to Computing 2
    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 15 (to be selected from the courses below)
    3-6 credits selected from:

    MATH 223

    3

    Linear Algebra

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 340

    3

    Discrete Structures 2

    At least 3 credits selected from:

    COMP 330

    3

    Theory of Computation

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    At least 3 credits selected from:

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    The remaining credits selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431).
    The following courses may also be taken:

    COMP 230

    3

    Logic and Computability

    ECSE 508

    3

    Logic and Computability

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    Students interested in further study in Computer Science can consider taking the Supplementary Minor Concentration in Computer Science.


    Arts Major Concentration in Software Engineering (36 credits)

    The Major Concentration in Software Engineering focuses on the techniques and methodology required to design and develop complex software systems. It may be used to satisfy part of the requirements for a B.A. degree. This program does not lead to certification as a Professional Engineer.

    COURSECREDITSTITLE
    REQUIRED: 30  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 421

    3

    Database Systems

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 7 (to be selected from the courses below)
    6-7 credits selected from:

    COMP 322

    1

    Theory of Computation

    COMP 361D1, 361D2

    3,3

    Software Engineering Project

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    and COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 431).
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    This program does not lead to certification as a Professional Engineer.


Bachelor of Arts and Science programs

    MINOR Programs
    Arts & Science Minor Concentration in Computer Science (18 credits)

    The Minor Concentration in Computer Science is designed for students who want to gain a basic understanding of computer science principles. Basic computer science skills are important in many domains. Thus, the Minor Concentration in Computer Science is useful for students majoring in any discipline.

    COURSECREDITSTITLE
    REQUIRED: 9  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 203
    OR COMP 250

     3
    3

    Introduction to Computing 2
    Introduction to Computer Science

    COMP 206

    3

    Introduction to Software Systems

    COMPLIMENTARY: 9 (to be selected from the courses below)

    COMP 230

    3

    Logic and Computability

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 280

    3

    History and Philosophy of Computing

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    and COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431)
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    Students are strongly encouraged to talk to an advisor of the School before choosing the complementary courses. Approval must be given by the School for the particular sequence of courses the student wishes to use for the Minor Concentration.


    This Minor Concentration in Computer Science program is considered a Science program in the B.A.&Sc.


    MAJOR Programs
    Arts & Science Major Concentration in Computer Science (36 credits)

    The Major Concentration in Computer Science represents an in-depth introduction to computer science and its sub-areas.

    COURSECREDITSTITLE
    REQUIRED: 21  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 203
    OR COMP 250

     3
    3

    Introduction to Computing 2
    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    MATH 222

    3

    Calculus 3

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 15 (to be selected from the courses below)
    3-6 credits selected from:

    MATH 223

    3

    Linear Algebra

    MATH 318

    3

    Mathematical Logic

    MATH 323

    3

    Probability

    MATH 324

    3

    Statistics

    MATH 340

    3

    Discrete Structures 2

    At least 3 credits selected from:

    COMP 330

    3

    Theory of Computation

    COMP 350

    3

    Numerical Computing

    COMP 360

    3

    Algorithm Design Techniques

    At least 3 credits selected from:

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    The remaining credits selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431).
    The following courses may also be taken:

    COMP 230

    3

    Logic and Computability

    ECSE 508

    3

    Logic and Computability

    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    This Major Concentration in Computer Science program is considered a Science program in the B.A.&Sc.


    Arts & Science Major Concentration in Software Engineering (36-37 credits)

    The Major Concentration in Software Engineering focuses on the techniques and methodology required to design and develop complex software systems. It may be used to satisfy part of the requirements for a B.A.&Sc. degree. This program does not lead to certification as a Professional Engineer.

    COURSECREDITSTITLE
    REQUIRED: 30  

    COMP 202*

    3

    Introduction to Computing 1

    COMP 206

    3

    Introduction to Software Systems

    COMP 250

    3

    Introduction to Computer Science

    COMP 251

    3

    Data Structures and Algorithms

    COMP 273

    3

    Introduction to Computer Systems

    COMP 302

    3

    Programming Languages and Paradigms

    COMP 303

    3

    Software Development

    COMP 421

    3

    Database Systems

    MATH 223

    3

    Linear Algebra

    MATH 240

    3

    Discrete Structures 1

    COMPLIMENTARY: 7 (to be selected from the courses below)
    6-7 credits selected from:

    COMP 322

    1

    Theory of Computation

    COMP 361D1, 361D2

    3,3

    Software Engineering Project

    COMP 529

    4

    Software Architecture

    COMP 533

    3

    Object-oriented Software Development

    and COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 431).
    NOTES:

    *Students who have sufficient knowledge in a programming language do not need to take COMP 202, but it must be replaced with an additional COMP complementary course.


    This program does not lead to certification as a Professional Engineer.


    This Major Concentration in Software Engineering program is considered a Science program in the B.A.&Sc.