Bachelor of Arts and Science (B.A.&Sc.)

Major Concentration Software Engineering (37 credits)

The Major Concentration Software Engineering focuses on the techniques and methodology required to design and develop complex software systems and covers the subject commonly known as "Software Engineering."

More Information

MATH 133, MATH 140, and MATH 141 (or their equivalents) must be completed prior to taking courses in this program.

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

Required Courses (30 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 421 Database Systems (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 and can replace it with additional computer science complementary course credits.

Complementary Courses (7 credits)

6-7 credits from:

  • COMP 322 Introduction to C++ (1 credit)
  • COMP 361D1 Software Engineering Project (3 credits)
  • COMP 361D2 Software Engineering Project (3 credits)
  • COMP 529 Software Architecture (4 credits)
  • COMP 533 Model-Driven Software Development (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.

Major Concentration Computer Science (36 credits)

This Major concentration represents an in-depth introduction to computer science and its sub-areas. Students that are interested in further study in Computer Science can combine the Major Concentration Computer Science with the Supplementary Minor in Computer Science to constitute a program very close to the Major Computer Science offered by the Faculty of Science. For further information, please consult the Program Adviser.

More Information

Students with two programs in the same department/unit must have a third program in a different department/unit to be eligible to graduate. Please refer to the Faculty of Arts regulations for "Faculty Degree Requirements," "About Program Requirements," and "Departmental Programs" for the Multi-track System options.

Required Courses (21 credits)

MATH 133, MATH 140, and MATH 141 (or their equivalents) should be completed prior to taking courses in this program.

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

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

Complementary Courses (15 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 credits are selected from COMP 230 and COMP courses at the 300 level or above (except COMP 364, COMP 396).

Minor Concentration Computer Science (18 credits)

The Minor Concentration Computer Science is designed for students who want to gain a basic understanding of computer science principles and may be taken in conjunction with any program in the Faculty of Arts.

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 should declare the minor at the beginning of the penultimate year and obtain approval for the selection of courses by completing a Minor Approval form, and present it to the Minor Advisor, Prof. Muthucumaru Maheswaran, McConnell Bldg., room 754. This form is available in Room 320, McConnell Engineering Bldg. Note: Please return a copy of the form to the Undergraduate CS office as well. McConnell Bldg., room 320.

Students are strongly encouraged to talk to an adviser of the School before choosing their complementary courses to ensure they follow an approved course sequence.

MATH 133, MATH 140, and MATH 141 (or their equivalents) should be completed prior to taking courses in this program.

Required Courses (9 credits)

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

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

Complementary Courses (9 credits)

9 credits selected from the following list or from Computer Science (COMP) courses at the 300 level or above excluding COMP 364 and COMP 396.

  • COMP 230 Logic and Computability (3 credits)
  • COMP 251 Algorithms and Data Structures (3 credits)
  • COMP 273 Introduction to Computer Systems (3 credits)
  • COMP 280 History and Philosophy of Computing (3 credits)
  • MATH 222 Calculus 3 (3 credits)
  • MATH 240 Discrete Structures 1 (3 credits)