Bachelor of Science (B.Sc.)

The following is a list of Computer Science programs that can be taken as part of the B.Sc. degree. The programs are ordered according to the number of Computer Science courses within the program. The credit totals in brackets indicate the total number of Required and Complementary credits in the program which often include courses from other departments.

Honours Computer Science (75 credits)

Students may complete this program with a minimum of 72 credits or a maximum of 75 credits depending if they are exempt from taking COMP 202. Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation.

More Information

Required Courses (48 credits)

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

Students take either MATH 340 or MATH 350.

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • /academic/undergrad/minor/
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 252 Honours Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • COMP 362 Honours Algorithm Design (3 credits)
  • COMP 400 Project in Computer Science (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)
  • MATH 340 Discrete Structures 2 (3 credits)
  • MATH 350 Graph Theory and Combinatorics (3 credits)

Complementary Courses (27 credits)

6 credits selected from:

  • MATH 318 Mathematical Logic (3 credits)
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)

The remaining credits selected from computer science courses at the 300 level or above (except COMP 364 and COMP 396) and ECSE 539. At least 12 credits must be at the 500 level.

Honours Software Engineering (75 credits)

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

More Information

Students may complete this program with a maximum of 75 credits or a minimum of 72 credits if they are exempt from taking COMP 202.

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

Required Courses (42 credits)

  • COMP 202 Foundations of Programming (3 credits) *
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits) **
  • COMP 361D1 Software Engineering Project (3 credits)
  • COMP 361D2 Software Engineering Project (3 credits)
  • COMP 400 Project in Computer Science (3 credits)
  • ECSE 427 Operating Systems (3 credits) **
  • ECSE 429 Software Validation (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)

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

** Students may select either COMP 310 or ECSE 427, but not both.

Complementary Courses (33 credits)

Of the 33 credits, at least 12 credits must be at the 500 level or above. Courses at the 600 level require special permission. Information on the policy and procedures for such permission may be found at: http://www.mcgill.ca/science/sousa/general/course/600-level_courses/.

At least 9 credits selected from groups A and B, with at least 3 credits selected from each:

Group A:
  • MATH 222 Calculus 3 (3 credits) *
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)

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

Group B:
  • COMP 330 Theory of Computation (3 credits)
  • COMP 360 Algorithm Design (3 credits)

At least 18 credits selected from the following, with at least 6 credits selected from Software Engineering Specializations, and at least 9 credits selected from Applications Specialties.

Software Engineering Specializations
  • COMP 409 Concurrent Programming (3 credits) *
  • COMP 523 Language-based Security (3 credits)
  • COMP 525 Formal Verification (3 credits)
  • COMP 529 Software Architecture (4 credits)
  • COMP 533 Model-Driven Software Development (3 credits)
  • ECSE 420 Parallel Computing (3 credits) *
  • ECSE 539 Software Language Engineering (3 credits)

* Students may select either COMP 409 or ECSE 420, but not both.

Application Specialties
  • COMP 350 Numerical Computing (3 credits)
  • COMP 417 Introduction Robotics and Intelligent Systems (3 credits)
  • COMP 421 Database Systems (3 credits)
  • COMP 424 Artificial Intelligence (3 credits)
  • COMP 512 Distributed Systems (4 credits)
  • COMP 520 Compiler Design (4 credits)
  • COMP 521 Modern Computer Games (4 credits)
  • COMP 522 Modelling and Simulation (4 credits)
  • COMP 535 Computer Networks 1 (3 credits)
  • COMP 551 Applied Machine Learning (4 credits)
  • COMP 557 Fundamentals of Computer Graphics (3 credits)
  • COMP 558 Fundamentals of Computer Vision (3 credits)
  • ECSE 424 Human-Computer Interaction (3 credits)

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 Specialties lists.

Major Computer Science (63 credits)

This program is 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 of CS. At the same time, its credit requirements allow students to take an additional minor.

More Information

Students may complete this program with a minimum of 60 credits or a maximum of 63 credits depending if they are exempt from taking COMP 202.

Required Courses (33 credits)

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

  • COMP 202 Foundations of Programming (3 credits) *
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)

Complementary Courses (30 credits)

Students should talk to an academic adviser before choosing their complementary courses.

At least 6 credits selected from:

  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • COMP 360 Algorithm Design (3 credits)

3-9 credits selected from:

* Must include at least one of MATH 323 and MATH 340.

  • MATH 318 Mathematical Logic (3 credits)
  • MATH 323 Probability (3 credits) *
  • MATH 324 Statistics (3 credits)
  • MATH 340 Discrete Structures 2 (3 credits) *

At least 6 credits at the 400-level or above.

The remaining credits selected from computer science courses at the 300 level or above (except COMP 364 and COMP 396) and ECSE 539.

Note: Students have to make sure that they have the appropriate prerequisites when choosing upper-level courses.

Major Computer Science - Computer Games (67 credits)

This program is a specialization within Computer Science. It fulfils all the basic requirements of the Major 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.

More Information

Students may complete this program with a minimum of 62 credits or a maximum of 67 credits depending if they are exempt from taking COMP 202 and their choice of complementary courses.

Required Courses (50 credits)

Students who have sufficient knowledge in a programming language do not need to take COMP 202 and can replace it with additional computer science complementary course credits.

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 308 Computer Systems Lab (1 credit)
  • COMP 310 Operating Systems (3 credits)
  • COMP 322 Introduction to C++ (1 credit)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 361D1 Software Engineering Project (3 credits)
  • COMP 361D2 Software Engineering Project (3 credits)
  • COMP 557 Fundamentals of Computer Graphics (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)
  • MATH 323 Probability (3 credits)

Complementary Courses (17 credits)

Students complete a minimum of 15 or a maximum of 17 complementary credits selected as follows:

3 credits selected from:

  • COMP 350 Numerical Computing (3 credits)
  • COMP 360 Algorithm Design (3 credits)

6-8 credits selected from:

  • COMP 424 Artificial Intelligence (3 credits)
  • COMP 521 Modern Computer Games (4 credits)
  • COMP 522 Modelling and Simulation (4 credits)
  • COMP 529 Software Architecture (4 credits)
  • COMP 533 Model-Driven Software Development (3 credits)
  • COMP 551 Applied Machine Learning (4 credits)
  • COMP 559 Fundamentals of Computer Animation (4 credits)

6 credits selected from:

  • COMP 409 Concurrent Programming (3 credits)
  • COMP 421 Database Systems (3 credits)
  • COMP 535 Computer Networks 1 (3 credits)

Major Software Engineering (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.

More Information

Students may complete this program with a maximum of 63 credits or a minimum of 60 credits if they are exempt from taking COMP 202.

Required Courses (39 credits)

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

Students may select either COMP 310 or ECSE 427, but not both.

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 361D1 Software Engineering Project (3 credits)
  • COMP 361D2 Software Engineering Project (3 credits)
  • ECSE 427 Operating Systems (3 credits)
  • ECSE 429 Software Validation (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)

Complementary Courses (24 credits)

At least 9 credits selected from groups A and B, with at least 3 credits selected from each:

Group A:
  • MATH 222 Calculus 3 (3 credits)
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)
Group B:
  • COMP 330 Theory of Computation (3 credits)
  • COMP 360 Algorithm Design (3 credits)

At least 15 credits selected from the following, with at least 6 credits selected from Software Engineering Specializations, and at least 6 credits selected from Applications Specialties.

Software Engineering Specializations

Students may select either COMP 409 or ECSE 420, but not both.

  • COMP 409 Concurrent Programming (3 credits)
  • COMP 523 Language-based Security (3 credits)
  • COMP 525 Formal Verification (3 credits)
  • COMP 529 Software Architecture (4 credits)
  • COMP 533 Model-Driven Software Development (3 credits)
  • ECSE 420 Parallel Computing (3 credits)
  • ECSE 539 Software Language Engineering (3 credits)
Application Specialties

Students may select either COMP 557 or ECSE 532, but not both.

  • COMP 350 Numerical Computing (3 credits)
  • COMP 417 Introduction Robotics and Intelligent Systems (3 credits)
  • COMP 421 Database Systems (3 credits)
  • COMP 424 Artificial Intelligence (3 credits)
  • COMP 512 Distributed Systems (4 credits)
  • COMP 520 Compiler Design (4 credits)
  • COMP 521 Modern Computer Games (4 credits)
  • COMP 522 Modelling and Simulation (4 credits)
  • COMP 535 Computer Networks 1 (3 credits)
  • COMP 551 Applied Machine Learning (4 credits)
  • COMP 557 Fundamentals of Computer Graphics (3 credits)
  • COMP 558 Fundamentals of Computer Vision (3 credits)
  • ECSE 424 Human-Computer Interaction (3 credits)
  • ECSE 532 Computer Graphics (3 credits)

Liberal Program - Core Science Component 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 minors programs in either the Faculty of Science or Faculty of Arts.

More Information

Required Courses (21 credits)

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

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)

Complementary Courses (24 credits)

3-6 credits from:

  • MATH 223 Linear Algebra (3 credits)
  • MATH 318 Mathematical Logic (3 credits)
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)
  • MATH 340 Discrete Structures 2 (3 credits)

At least 3 credits from:

  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • COMP 360 Algorithm Design (3 credits)

At least 3 credits from:

  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)

The remaining complementary courses should be selected from any COMP courses at the 300 level or above except COMP 364 and COMP 396.

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

Liberal Program - Core Science Component Software Engineering (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.

More Information

Students may complete this program with a minimum of 48 credits or a maximum of 49 credits depending on their choice of complementary courses.

Required Courses (36 credits)

Students who have sufficient knowledge in a programming language do not need to take COMP 202 and can replace it with additional computer science complementary course credits.

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 361D1 Software Engineering Project (3 credits)
  • COMP 361D2 Software Engineering Project (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)

Complementary Courses (13 credits)

3 credits selected from:

  • COMP 330 Theory of Computation (3 credits)
  • COMP 360 Algorithm Design (3 credits)

9-10 credits selected from the courses below:

  • COMP 322 Introduction to C++ (1 credit)
  • COMP 409 Concurrent Programming (3 credits)
  • COMP 421 Database Systems (3 credits)
  • COMP 520 Compiler Design (4 credits)
  • COMP 525 Formal Verification (3 credits)
  • COMP 529 Software Architecture (4 credits)
  • COMP 533 Model-Driven Software Development (3 credits)
  • COMP 535 Computer Networks 1 (3 credits)
  • ECSE 539 Software Language Engineering (3 credits)

Or any computer science course at the 300 level or above, excluding COMP 364 and COMP 396.

Joint Honours Mathematics and Computer Science (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.

More Information

Students may complete this program with a minimum of 72 credits or a maximum of 75 credits depending on whether or not they are exempt from taking COMP 202.

Program Prerequisites

Studnts must consult an Honours adviser in both departments. Students entering the Joint Honours in Mathematics and Computer Science are normally expected to have completed the courses below 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.

  • MATH 133 Linear Algebra and Geometry (3 credits)
  • MATH 140 Calculus 1 (3 credits)
  • MATH 141 Calculus 2 (4 credits)

Required Courses (42 credits)

  • COMP 202 Foundations of Programming (3 credits) *
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 252 Honours Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 362 Honours Algorithm Design (3 credits)
  • MATH 235 Algebra 1 (3 credits)
  • MATH 248 Honours Advanced Calculus (3 credits)
  • MATH 251 Honours Algebra 2 (3 credits)
  • MATH 255 Honours Analysis 2 (3 credits)
  • MATH 350 Graph Theory and Combinatorics (3 credits)

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

Complementary Courses (33 credits)

3 credits selected from:

  • MATH 242 Analysis 1 (3 credits)
  • MATH 254 Honours Analysis 1 (3 credits) *

* It is strongly recommended that students take MATH 254.

18 credits in Mathematics, at least 12 credits selected from:

  • MATH 356 Honours Probability (3 credits) *
  • MATH 387 Honours Numerical Analysis (3 credits)
  • MATH 454 Honours Analysis 3 (3 credits) **
  • MATH 455 Honours Analysis 4 (3 credits) ***
  • MATH 456 Honours Algebra 3 (3 credits) +
  • MATH 457 Honours Algebra 4 (3 credits) ++

** Not open to students who have taken MATH 354.

*** Not open to students who have taken MATH 355.

+ Not open to students who have taken MATH 370.

++ Not open to students who have taken MATH 371.

The remaining credits should be selected from honours courses given by the Department of Mathematics and Statistics.

12 credits in Computer Science, selected from Computer Science courses at the 300 level or above excluding COMP 364 and COMP 396. ECSE 508 may also be taken.

Joint Honours Statistics and Computer Science (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.

More Information

Students may complete this program with a minimum of 76 credits or a maximum of 79 credits depending on whether or not they are exempt from taking COMP 202.

Program Prerequisites

Students entering the Joint Honours in Statistics and Computer Science are normally expected to have completed the courses below 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.

  • MATH 133 Linear Algebra and Geometry (3 credits)
  • MATH 140 Calculus 1 (3 credits)
  • MATH 141 Calculus 2 (4 credits)

Required Courses (46 credits)

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

** Students take either MATH 251 or MATH 247, but not both.

  • COMP 202 Foundations of Programming (3 credits) *
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 252 Honours Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 362 Honours Algorithm Design (3 credits)
  • MATH 235 Algebra 1 (3 credits)
  • MATH 247 Honours Applied Linear Algebra (3 credits) **
  • MATH 248 Honours Advanced Calculus (3 credits)
  • MATH 251 Honours Algebra 2 (3 credits) **
  • MATH 255 Honours Analysis 2 (3 credits)
  • MATH 356 Honours Probability (3 credits)
  • MATH 357 Honours Statistics (3 credits)
  • MATH 533 Honours Regression and Analysis of Variance (4 credits)

Complementary Courses (33 credits)

18 credits in Mathematics selected as follows:

3 credits selected from:

  • MATH 242 Analysis 1 (3 credits)
  • MATH 254 Honours Analysis 1 (3 credits) *

* It is strongly recommended that students take MATH 254.

3 credits selected from:

  • MATH 387 Honours Numerical Analysis (3 credits)
  • MATH 397 Honours Matrix Numerical Analysis (3 credits)

At least 8 credits selected from:

  • MATH 523 Generalized Linear Models (4 credits)
  • MATH 524 Nonparametric Statistics (4 credits)
  • MATH 525 Sampling Theory and Applications (4 credits)
  • MATH 556 Mathematical Statistics 1 (4 credits)
  • MATH 557 Mathematical Statistics 2 (4 credits)

The remaining Mathematics credits selected from:

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

  • MATH 350 Graph Theory and Combinatorics (3 credits)
  • MATH 352 Problem Seminar (1 credit)
  • MATH 454 Honours Analysis 3 (3 credits)
  • MATH 545 Introduction to Time Series Analysis (4 credits)
  • MATH 578 Numerical Analysis 1 (4 credits) **
  • MATH 587 Advanced Probability Theory 1 (4 credits)
15 credits in Computer Science selected as follows:

At least 6 credits selected from:

  • COMP 424 Artificial Intelligence (3 credits)
  • COMP 462 Computational Biology Methods (3 credits)
  • COMP 526 Probabilistic Reasoning and AI (3 credits)
  • COMP 540 Matrix Computations (3 credits) **
  • COMP 547 Cryptography and Data Security (4 credits)
  • COMP 551 Applied Machine Learning (4 credits)
  • COMP 552 Combinatorial Optimization (4 credits)
  • COMP 564 Computational Gene Regulation (3 credits)
  • COMP 566 Discrete Optimization 1 (3 credits)
  • COMP 567 Discrete Optimization 2 (3 credits)

The remaining Computer Science credits are selected from COMP courses at the 300 level or above excluding COMP 396.

Joint Honours Computer Science and Biology (79 credits)

This honours program will train students in the fundamentals of biology - with a focus on molecular biology - and will given them computational and mathematical skills needed to manage, analyze, and model large biological datasets. Two integrative features of the program are a three-credit joint independent studies course, and a one-credit seminar. Compared to its non-Honours counterpart, the Honours program requires additional research credits and a larger number of advanced courses.

More Information

Students must have and maintain a minimum CPGA of 3.5. Students may complete this program with a maximum of 79 credits or a minimum of 75 credits. This depends upon the student's choice of required courses and whether or not the student is exempt from taking COMP 202.

Program prerequisites: To ensure they meet the core requirements of the program it is highly recommended that the following courses be selected by U0 students: BIOL 111-112, CHEM 110-120, MATH 133, MATH 140-141 or MATH 150-151, PHYS 101-102 or PHYS 131-142. Note that MATH 150-151 provides equivalence for required course MATH 222, it is also advisable to take COMP 202 during U0 if possible. It is highly recommended that Freshman BIOL, CHEM, MATH and PHYS courses be selected with an adviser to ensure they meet the core requirements of the COMP-BIO program.

Required Courses (58 credits)

Required Mathematics and Statistics Courses

15 credits from the following:

  • MATH 222 Calculus 3 (3 credits) *
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)

* Students with CEGEP-level credit for the equivalents of MATH 222 and/or CHEM 212 (see http://www.mcgill.ca/students/courses/plan/transfer/for accepted equivalents) may not take these courses at McGill and should replace them with elective courses to satisfy the total credit requirement for their degree.

Required Computer Science Courses

12-16 credits from:

  • COMP 202 Foundations of Programming (3 credits) **
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 252 Honours Algorithms and Data Structures (3 credits)
  • COMP 462 Computational Biology Methods (3 credits) ***
  • COMP 561 Computational Biology Methods and Research (4 credits) ***

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

*** Students take either COMP 462 or COMP 561.

Required Biology and/or Chemistry Courses

20 credits from:

  • BIOL 200 Molecular Biology (3 credits)
  • BIOL 201 Cell Biology and Metabolism (3 credits)
  • BIOL 202 Basic Genetics (3 credits)
  • BIOL 215 Introduction to Ecology and Evolution (3 credits)
  • BIOL 301 Cell and Molecular Laboratory (4 credits)
  • CHEM 212 Introductory Organic Chemistry 1 (4 credits) *
Required Joint Courses

7 credits from:

  • COMP 402D1 Honours Project in Computer Science and Biology (3 credits)
  • COMP 402D2 Honours Project in Computer Science and Biology (3 credits)
  • COMP 499 Undergraduate Bioinformatics Seminar (1 credit)

Complementary Courses (21 credits)

At least 21 credits selected from the following blocks, with the following requirements:

  • at least 9 credits from each of the following two blocks
  • 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

Note: All COMP courses at the 400 level or above (except COMP 400, 401, 499, 462, and 561).

  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 307 Principles of Web Development (2 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 322 Introduction to C++ (1 credit)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • COMP 361D1 Software Engineering Project (3 credits) *
  • COMP 361D2 Software Engineering Project (3 credits) *
  • COMP 362 Honours Algorithm Design (3 credits)

* Students must take both COMP 361D1 and COMP 361D2.

Biology Block
  • BIOL 300 Molecular Biology of the Gene (3 credits)
  • BIOL 303 Developmental Biology (3 credits)
  • BIOL 304 Evolution (3 credits)
  • BIOL 306 Neural Basis of Behaviour (3 credits)
  • BIOL 308 Ecological Dynamics (3 credits)
  • BIOL 309 Mathematical Models in Biology (3 credits)
  • BIOL 310 Biodiversity and Ecosystems (3 credits)
  • BIOL 313 Eukaryotic Cell Biology (3 credits)
  • BIOL 314 Molecular Biology of Oncogenes (3 credits)
  • BIOL 316 Biomembranes and Organelles (3 credits)
  • BIOL 319 Introduction to Biophysics (3 credits)
  • BIOL 320 Evolution of Brain and Behaviour (3 credits)
  • BIOL 370 Human Genetics Applied (3 credits)
  • BIOL 389 Laboratory in Neurobiology (3 credits)
  • BIOL 395 Quantitative Biology Seminar 1 (1 credit)
  • BIOL 416 Genetics of Mammalian Development (3 credits)
  • BIOL 434 Theoretical Ecology (3 credits)
  • BIOL 435 Natural Selection (3 credits)
  • BIOL 495 Quantitative Biology Seminar 2 (1 credit)
  • BIOL 509 Methods in Molecular Ecology (3 credits)
  • BIOL 514 Neurobiology Learning and Memory (3 credits)
  • BIOL 518 Advanced Topics in Cell Biology (3 credits)
  • BIOL 520 Gene Activity in Development (3 credits)
  • BIOL 524 Topics in Molecular Biology (3 credits)
  • BIOL 530 Advances in Neuroethology (3 credits)
  • BIOL 532 Developmental Neurobiology Seminar (3 credits)
  • BIOL 546 Genetics of Model Systems (3 credits)
  • BIOL 551 Principles of Cellular Control (3 credits)
  • BIOL 568 Topics on the Human Genome (3 credits)
  • BIOL 569 Developmental Evolution (3 credits)
  • BIOL 575 Human Biochemical Genetics (3 credits)
  • BIOL 580 Genetic Approaches to Neural Systems (3 credits)
  • BIOL 588 Advances in Molecular/Cellular Neurobiology (3 credits)
  • NEUR 310 Cellular Neurobiology (3 credits)

Joint Honours in Physics and Computer Science (66 Credits)

This program provides essential background in physics and computer science at a level sufficient to pursue courses at the 400- and 500-level in either discipline. The program is intended to be flexible to allow students to take either more physics or more computer science courses at the advanced level.

More Information

Students entering this Joint Honours program should have high standing in mathematics, physics, and computer science. To continue in this Joint Honours program, an average GPA of 3.00 in required and complementary courses is required. For Honours standing, the CGPA at graduation must be at least 3.00; for First-Class Honours, the CGPA must be above 3.50.

Note: COMP 202—or an equivalent introduction to computer programming course— is a program prerequisite. U0 students may take COMP 202 as a Freshman Science course; new U1 students should take it as an elective in their first semester.

Required Courses (63 credits)

*Note: A student who has not taken MATH 222 (or equivalent) prior to entering the program must take it in their first semester, increasing the program credits from 78 to 81. The student must then take MATH 314 in their second semester instead of MATH 248, if scheduling requires it.

  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 252 Honours Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • MATH 240 Discrete Structures (3 credits)
  • MATH 247 Honours Applied Linear Algebra (3 credits)
  • MATH 248 Honours Vector Calculus (3 credits) *
  • MATH 249 Honours Complex Variables (3 credits)
  • MATH 314 Advanced Calculus (3 credits) *
  • MATH 325 Honours Ordinary Differential Equations (3 credits)
  • PHYS 241 Signal Processing (3 credits)
  • PHYS 251 Honours Classical Mechanics 1 (3 credits)
  • PHYS 253 Thermal Physics (3 credits)
  • PHYS 257 Experimental Methods 1 (3 credits)
  • PHYS 258 Experimental Methods 2 (3 credits)
  • PHYS 350 Honours Electricity and Magnetism (3 credits)
  • PHYS 352 Honours Electromagnetic Waves (3 credits)
  • PHYS 357 Honours Quantum Physics 1 (3 credits)
  • PHYS 362 Statistical Mechanics (3 credits)
  • PHYS 457 Honours Quantum Physics 2 (3 credits)

Complementary Courses (15 credits)

At least 6 of the 15 complementary credits must come from a course at the 400- or 500-level (excluding COMP 400 and PHYS 479), and of these at least 3 must be from a COMP course.

3 or 4 credits selected from:

  • COMP 400 Project in Computer Science (4 credits)
  • PHYS 479 Honours Research Project (3 credits)

6 or 7 credits selected from:

  • COMP 303 Software Design (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 362 Honours Algorithm Design (3 credits)

Any COMP course at the 400- or 500-level (excluding COMP 400) (3 or 4 credits)

At least 4 credits selected from:

  • MATH 323 Probability (3 credits)
  • MATH 340 Discrete Mathematics (3 credits)
  • PHYS 351 Honours Classical Mechanics 2 (3 credits)
  • PHYS 359 Honours Laboratory in Modern Physics 1 (3 credits)
  • PHYS 432 Physics of Fluids (3 credits)
  • PHYS 434 Optics (3 credits)

Any number of PHYS courses at the 500 level (3 credits each)
Any number of COMP courses at the 400 or 500-level (excluding COMP 400) (3 or 4 credits each)

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.

More Information

Required Courses (54 credits)

  • COMP 202* Introduction to Computing (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Data Structures and Algorithms (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 360 Algorithm Design Techniques (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 235 Algebra 1 (3 credits)
  • MATH 236 Algebra 2 (3 credits)
  • MATH 242 Analysis 1 (3 credits)
  • MATH 315 Ordinary Differential Equations (3 credits)
  • MATH 317 Numerical Analysis or COMP 350 Numerical Computing (3 credits)
  • MATH 318 Mathematical Logic
  • MATH 323 Probability
  • MATH 340 Discrete Structures 2

Complimentary Courses (18 Credits)

  • 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.

*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.

More Information

Students entering the Joint Major in Statistics and Computer Science are normally expected to have completed the courses below or their equivalents. Otherwise they will be required to make up any deficiencies in these courses over and above the 72 credits of required courses.

  • MATH 133 Linear Algebra and Geometry (3 credits)
  • MATH 140 Calculus 1 (3 credits)
  • MATH 141 Calculus 2 (4 credits)

Required Courses (51 credits)

  • COMP 202 Foundations of Programming (3 credits) *
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits) **
  • COMP 360 Algorithm Design (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 223 Linear Algebra (3 credits) ***
  • MATH 235 Algebra 1 (3 credits)
  • MATH 236 Algebra 2 (3 credits) ***
  • MATH 242 Analysis 1 (3 credits)
  • MATH 314 Advanced Calculus (3 credits)
  • MATH 317 Numerical Analysis (3 credits) **
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)
  • MATH 423 Regression and Analysis of Variance (3 credits)

* Students who have sufficient knowledge in a programming language do not need to take COMP 202 but can replace it with an additional Computer Science complementary course.

** Students take either COMP 350 or MATH 317, but not both.

*** Students take either MATH 223 or MATH 236, but not both.

Complementary Courses (21 credits)

12 credits in Mathematics selected from:
  • MATH 327 Matrix Numerical Analysis (3 credits)
  • MATH 340 Discrete Structures 2 (3 credits) *
  • MATH 350 Graph Theory and Combinatorics (3 credits) *
  • MATH 352 Problem Seminar (1 credit)
  • MATH 410 Majors Project (3 credits)
  • MATH 427 Statistical Quality Control (3 credits)
  • MATH 447 Introduction to Stochastic Processes (3 credits)
  • MATH 523 Generalized Linear Models (4 credits)
  • MATH 524 Nonparametric Statistics (4 credits)
  • MATH 525 Sampling Theory and Applications (4 credits)
  • MATH 545 Introduction to Time Series Analysis (4 credits)
  • MATH 578 Numerical Analysis 1 (4 credits) **

* Students take either MATH 340 or MATH 350, but not both

.

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

9 credits in Computer Science selected as follows:

At least 6 credits selected from:

  • COMP 424 Artificial Intelligence (3 credits)
  • COMP 462 Computational Biology Methods (3 credits)
  • COMP 526 Probabilistic Reasoning and AI (3 credits)
  • COMP 540 Matrix Computations (3 credits) **
  • COMP 547 Cryptography and Data Security (4 credits)
  • COMP 551 Applied Machine Learning (4 credits)
  • COMP 564 Computational Gene Regulation (3 credits)
  • COMP 566 Discrete Optimization 1 (3 credits)
  • COMP 567 Discrete Optimization 2 (3 credits)

The remaining Computer Science credits are selected from COMP courses at the 300 level or above (except COMP 396 and COMP 431) and ECSE 508.

Joint Major Computer Science and Biology (73 credits)

This program will train students in the fundamentals of biology and will give them computational and mathematical skills needed to manage, analyze, and model large biological datasets.

More Information

Students may complete this program with a maximum of 73 credits or a minimum of 69 credits. This depends upon the student's choice of required courses and whether or not the student is exempt from taking COMP 202.

Program prerequisites: To ensure they meet the core requirements of the program it is highly recommended that the following courses be selected by U0 students: BIOL 111-112, CHEM 110-120, MATH 133, MATH 140-141 or MATH 150-151, PHYS 101-102 or PHYS 131-142. Note that MATH 150-151 provides equivalence for required course MATH 222. It is also advisable to take COMP 202 during U0 if possible.

Required Courses (52 credits)

Required Mathematics and Statistics Courses

12 credits from:

  • MATH 222 Calculus 3 (3 credits) *
  • MATH 223 Linear Algebra (3 credits)
  • MATH 323 Probability (3 credits)
  • MATH 324 Statistics (3 credits)

* Students with CEGEP-level credit for the equivalents of MATH 222 and/or CHEM 212 (see http://www.mcgill.ca/students/courses/plan/transfer/for accepted equivalents) may not take these courses at McGill and should replace them with elective courses to satisfy the total credit requirement for their degree.

Required Computer Science Courses

12-16 credits from:

  • COMP 202 Foundations of Programming (3 credits) **
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits) ***
  • COMP 462 Computational Biology Methods (3 credits) +
  • COMP 561 Computational Biology Methods and Research (4 credits) +

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

*** Students are advised to take MATH 240 before COMP 251 (MATH 240 is in the list of Complementaries below).

+ Students take either COMP 462 or COMP 561.

Required Biology and/or Chemistry Courses

20 credits from:

  • BIOL 200 Molecular Biology (3 credits)
  • BIOL 201 Cell Biology and Metabolism (3 credits)
  • BIOL 202 Basic Genetics (3 credits)
  • BIOL 215 Introduction to Ecology and Evolution (3 credits)
  • BIOL 301 Cell and Molecular Laboratory (4 credits)
  • CHEM 212 Introductory Organic Chemistry 1 (4 credits) *
Required Joint Courses

4 credits from:

  • COMP 401 Project in Biology and Computer Science (3 credits)
  • COMP 499 Undergraduate Bioinformatics Seminar (1 credit)

Complementary Courses (21 credits)

At least 21 credits selected from the following blocks, with the following requirements:

  • at least 9 credits from each of the following two blocks
  • 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

Note: All COMP courses at the 400 level or above (except COMP 400, 401, 499, 462, and 561).

  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 303 Software Design (3 credits)
  • COMP 307 Principles of Web Development (2 credits)
  • COMP 310 Operating Systems (3 credits)
  • COMP 322 Introduction to C++ (1 credit)
  • COMP 330 Theory of Computation (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • COMP 360 Algorithm Design (3 credits)
  • COMP 361D1 Software Engineering Project (3 credits) *
  • COMP 361D2 Software Engineering Project (3 credits) *
  • MATH 240 Discrete Structures 1 (3 credits)

* Students must take both COMP 361D1 and COMP 361D2.

Biology Block
  • BIOL 300 Molecular Biology of the Gene (3 credits)
  • BIOL 303 Developmental Biology (3 credits)
  • BIOL 304 Evolution (3 credits)
  • BIOL 306 Neural Basis of Behaviour (3 credits)
  • BIOL 308 Ecological Dynamics (3 credits)
  • BIOL 309 Mathematical Models in Biology (3 credits)
  • BIOL 310 Biodiversity and Ecosystems (3 credits)
  • BIOL 313 Eukaryotic Cell Biology (3 credits)
  • BIOL 314 Molecular Biology of Oncogenes (3 credits)
  • BIOL 316 Biomembranes and Organelles (3 credits)
  • BIOL 319 Introduction to Biophysics (3 credits)
  • BIOL 320 Evolution of Brain and Behaviour (3 credits)
  • BIOL 370 Human Genetics Applied (3 credits)
  • BIOL 389 Laboratory in Neurobiology (3 credits)
  • BIOL 395 Quantitative Biology Seminar 1 (1 credit)
  • BIOL 416 Genetics of Mammalian Development (3 credits)
  • BIOL 434 Theoretical Ecology (3 credits)
  • BIOL 435 Natural Selection (3 credits)
  • BIOL 495 Quantitative Biology Seminar 2 (1 credit)
  • BIOL 509 Methods in Molecular Ecology (3 credits)
  • BIOL 514 Neurobiology Learning and Memory (3 credits)
  • BIOL 518 Advanced Topics in Cell Biology (3 credits)
  • BIOL 520 Gene Activity in Development (3 credits)
  • BIOL 524 Topics in Molecular Biology (3 credits)
  • BIOL 530 Advances in Neuroethology (3 credits)
  • BIOL 532 Developmental Neurobiology Seminar (3 credits)
  • BIOL 546 Genetics of Model Systems (3 credits)
  • BIOL 551 Principles of Cellular Control (3 credits)
  • BIOL 568 Topics on the Human Genome (3 credits)
  • BIOL 569 Developmental Evolution (3 credits)
  • BIOL 575 Human Biochemical Genetics (3 credits)
  • BIOL 580 Genetic Approaches to Neural Systems (3 credits)
  • BIOL 588 Advances in Molecular/Cellular Neurobiology (3 credits)
  • NEUR 310 Cellular Neurobiology (3 credits)

Joint Major in Physics and Computer Science (66 Credits)

The Major Physics and Computer Science is designed to give motivated students the opportunity to combine the two fields in Physics and CS in a way that will distinguish them from the graduates of either field by itself.

More Information

Students entering Physics programs from the Freshman program must have successfully completed the courses below or their equivalents. Quebec students must have completed the DEC with appropriate science and mathematics courses.

  • CHEM 110 General Chemistry 1 (4 credits)
  • CHEM 120 General Chemistry 2 (4 credits)
  • PHYS 131 Mechanics and Waves (4 credits)
  • PHYS 142 Electromagnetism and Optics (4 credits)

One of:

  • BIOL 111 Principles: Organismal Biology (3 credits)
  • BIOL 112 Cell and Molecular Biology (3 credits)

MATH 133 and either MATH 140/141 or MATH 150/151.

  • MATH 133 Linear Algebra and Geometry (3 credits)
  • MATH 140 Calculus 1 (3 credits)
  • MATH 141 Calculus 2 (4 credits)
  • MATH 150 Calculus A (4 credits)
  • MATH 151 Calculus B (4 credits)

U1 Required Courses (21 credits)

  • COMP 250 Introduction to Computer Science (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 223 Linear Algebra (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)
  • PHYS 230 Dynamics of Simple Systems (3 credits)
  • PHYS 257 Experimental Methods 1 (3 credits)
  • PHYS 258 Experimental Methods 2 (3 credits)

U2 Required Courses (24 credits)

  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 302 Programming Languages and Paradigms (3 credits)
  • COMP 350 Numerical Computing (3 credits)
  • MATH 314 Advanced Calculus (3 credits)
  • MATH 315 Ordinary Differential Equations (3 credits)
  • PHYS 232 Heat and Waves (3 credits)
  • PHYS 241 Signal Processing (3 credits)

U3 Required Courses (21 credits)

  • COMP 360 Algorithm Design (3 credits)
  • MATH 323 Probability (3 credits)
  • PHYS 331 Topics in Classical Mechanics (3 credits)
  • PHYS 339 Measurements Laboratory in General Physics (3 credits)
  • PHYS 340 Majors Electricity and Magnetism (3 credits)
  • PHYS 446 Majors Quantum Physics (3 credits)
  • PHYS 489 Special Project (3 credits)

Minor Computer Science (24 credits)

This Minor is 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. Thus, the Minor is useful for students majoring in any discipline. It can be taken in conjunction with any program in the Faculty of Science (with the exception of other programs in Computer Science) and in the Faculty of Engineering (with some exceptions in Electrical and Computer Engineering).

Students should declare the minor and obtain approval for the selection of courses by completing a Minor Approval form. More information about this process can be found on the CS Minor page

More Information

Students must obtain approval from the adviser of their main program. Students are strongly encouraged to talk to an adviser of the School of Computer Science before choosing the complementary courses. Approval must be given by the School for the particular selection of courses to be credited toward the Minor. This should be done before registering for the final term of studies.

Students may receive credit toward their Computer Science Minor by taking certain approved courses outside the School of Computer Science. These courses must have a high computer science content. A student will not be permitted to receive more than 6 credits from such courses. These courses must be approved by the School of Computer Science in advance. If a student's Major program requires Computer Science courses, up to 6 credits of Computer Science courses may be used to fulfil both Major and Minor requirements.

Required Courses (9 credits)

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

  • COMP 202 Foundations of Programming (3 credits)
  • COMP 206 Introduction to Software Systems (3 credits)
  • COMP 250 Introduction to Computer Science (3 credits)

Complementary Courses (15 credits)

15 credits selected from the courses below and computer science courses at the 300 level or above (except COMP 364 and COMP 396).

Note: COMP 251 is a prerequisite for many of the other complementary courses.

  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)