The Honours Software Engineering plan leads to a Bachelor of Software Engineering (BSE) degree.
Admissions
The Software Engineering Board, in consultation with the faculties of Engineering and Mathematics and their admissions committees, determines the admission requirements for Software Engineering.
For details on admission information, see the Admissions section of this Calendar.
Options, Specializations, Minors, and Joint Honours
Software Engineering students are considered as both Mathematics and Engineering students, and can thus take advantage of degree enhancements available to students from either faculty. These enhancements take the form of additional plans such as options, specializations, minors, and joint honours.
Software Engineering students are eligible for either the Artificial Intelligence Option (Engineering) or the Artificial Intelligence Specialization (Computer Science), but cannot graduate with both degree enhancements. See the full list of Computer Science specializations or the full list of Options, Specializations and Electives for Engineering Students.
The following Mathematics Joint Honours plans are also approved as additional plans for BSE students:
BSE students are not eligible to add Joint Computer Science (Bachelor of Mathematics), Joint Bachelor of Computer Science plans, or stand-alone BMath Honours plans from the Faculty of Mathematics. BSE students pursuing a Joint Honours plan are not required to satisfy the Table 2 Faculty Core Courses requirements in the degree requirements for all Mathematics students. These students are still required to fulfil all requirements for the BSE.
BSE students may be eligible to add other options, specializations, or minors in Mathematics, Engineering, or other faculties, subject to the approval of the Software Engineering associate director. Students should be aware that adding plans will constrain their choice of electives, and may require additional courses. Thus, it is advisable to start preparing for additional plans in the first and second years. Students should also consider the benefits of not adding plans, in that they are better able to personalize their curriculum if they have more flexibility in choosing their electives. Students interested in pursuing additional academic plans, see invalid credential combinations.
Software Engineering Awards
Students in the Bachelor of Software Engineering plan are eligible for Awards of Excellence in the Faculty of Mathematics. Students in the Bachelor of Software Engineering plan are eligible for Awards of Excellence in the Faculty of Engineering.
Honours Software Engineering
The Software Engineering plan is offered jointly by the David R. Cheriton School of Computer Science and the Department of Electrical and Computer Engineering; it is only offered in the co-operative 8-stream.
Students will be considered members of both the Faculty of Engineering and the Faculty of Mathematics, although for administrative purposes they will be registered officially in a separate unit. Students will be promoted based on the Examinations and Promotions rules used in the Faculty of Engineering. A non-voting representative from the Faculty of Mathematics will sit on the Engineering Examinations and Promotion Committee, to provide insight into the policies, philosophies, culture, and requirements that pertain to Mathematics students. The Software Engineering plan is also considered an Honours Mathematics plan for purposes of student access to Mathematics courses. The Software Engineering advisor will advise students on how to achieve their academic goals.
Legend for Study/Work Sequence Table
Key |
Description |
F,W,S |
F=fall term, W=winter term, S=spring term |
1,2,3,4 plus A or B |
Denotes academic year and term. |
WT |
Denotes scheduled work terms. |
Study/Work Sequence
Sequence |
F |
W |
S |
F |
W |
S |
F |
W |
S |
F |
W |
S |
F |
W |
Stream 8 |
1A |
1B |
WT |
2A |
WT |
2B |
WT |
3A |
WT |
3B |
WT |
4A |
WT |
4B |
Academic Curriculum
The term-by-term academic component of the curriculum is as follows:
Term 1A (Fall)
- CS 137 Programming Principles
- ECE 105 Classical Mechanics
- MATH 115 Linear Algebra for Engineering
- MATH 117 Calculus 1 for Engineering
- MATH 135 Algebra for Honours Mathematics
- SE 101 Introduction to Methods of Software Engineering
Term 1B (Winter)
Term 2A (Fall)
- CHE 102 Chemistry for Engineers
- CS 241 Foundations of Sequential Programs
- ECE 222 Digital Computers
- SE 201 Seminar
- SE 212 Logic and Computation
- STAT 206 Statistics for Software Engineering
- Undergraduate Communication Requirement (see Note 5)
Term 2B (Spring)
- CS 240 Data Structures and Data Management
- CS 247 Software Engineering Principles
- CS 348 Introduction to Database Management
- ECE 192 Engineering Economics and Impact on Society
- MATH 239 Introduction to Combinatorics
- SE 202 Seminar
- Elective (see Note 1)
Term 3A (Winter)
- CS 341 Algorithms
- CS 349 User Interfaces
- MATH 213 Signals, Systems, and Differential Equations
- SE 301 Seminar
- SE 350 Operating Systems
- SE 465 Software Testing and Quality Assurance
- Elective (see Notes 1 and 2)
Term 3B (Fall)
- CS 343 Concurrent and Parallel Programming
- ECE 358 Computer Networks
- SE 302 Seminar
- SE 380 Introduction to Feedback Control
- SE 390 Design Project Planning
- SE 464 Software Design and Architectures
- Elective (see Notes 1 and 2)
Term 4A (Spring)
- SE 401 Seminar
- SE 463 Software Requirements Specification and Analysis
- SE 490 Design Project 1
- Three electives (see Notes 1 and 3)
Term 4B (Winter)
- SE 402 Seminar
- SE 491 Design Project 2
- Four electives (see Notes 1 and 3)
Advanced Technical Electives
The three advanced technical electives (ATEs) comprise fourth-year CS or ECE course offerings. Students are advised to plan ahead when selecting ATEs. Most ATEs are not offered every term, and some ATEs have other ATEs as prerequisites. The academic advisors may approve other courses.
CS List
One of the following CS courses:
- CS 360 Introduction to the Theory of Computing
- CS 365 Models of Computation
- CS 370 Numerical Computation
- CS 371/AMATH 242 Introduction to Computational Mathematics
- CS 442 Principles of Programming Languages
- CS 444 Compiler Construction
- CS 448 Database Systems Implementation
- CS 449 Human-Computer Interaction
- CS 450 Computer Architecture
- CS 451 Data-Intensive Distributed Computing
- CS 452 Real-time Programming
- CS 454 Distributed Systems
- CS 457 System Performance Evaluation
- CS 458 Computer Security and Privacy
- CS 462 Formal Languages and Parsing
- CS 466 Algorithm Design and Analysis
- CS 479 Neural Networks
- CS 480 Introduction to Machine Learning
- CS 484 Computational Vision
- CS 485 Statistical and Computational Foundations of Machine Learning
- CS 486 Introduction to Artificial Intelligence
- CS 487 Introduction to Symbolic Computation
- CS 488 Introduction to Computer Graphics
- CS 489 Advanced Topics in Computer Science
ECE List
One of the following ECE courses:
One additional course from the CS and ECE Lists above, or from the Extended List below.
Extended List
Science Course Electives
Normally, the science course electives (SCEs) are in the natural sciences, chosen from the list below. Alternate courses may be chosen in consultation with the SE academic advisors.
Two of
- BIOL 110, (BIOL 130 and BIOL 130L), BIOL 150, BIOL 165, BIOL 211, BIOL 220, BIOL 239, (BIOL 240 and BIOL 240L), BIOL 241, BIOL 273, (BIOL 373 and BIOL 373L)
- CHE 161
- (CHEM 123 and CHEM 123L), CHEM 209, (CHEM 237 and CHEM 237L), CHEM 254, (CHEM 262 and CHEM 262L), CHEM 266, CHEM 356, CHEM 404
- EARTH 121, EARTH 122, EARTH 123, EARTH 221, EARTH 270, EARTH 281
- ECE 231, ECE 403, ECE 404, ECE 405
- ENVE 275
- ENVS 200
- NE 222
- PHYS 124, PHYS 175, PHYS 233, PHYS 234, PHYS 263, PHYS 275, PHYS 280/BIOL 280, PHYS 334, PHYS 335, PHYS 375, PHYS 380
- PSYCH 207, PSYCH 261, PSYCH 306, PSYCH 307
- SCI 201, SCI 238, SCI 250
Linkage Electives
Three linkage electives (LEs) courses as specified below. Students should be aware that these courses may have enrolment limits, or may not fit their schedules.
One course on Impact of Technology and/or Engineering on Society:
One additional course on Humanities and Social Sciences (excluding courses concentrated on development of language or other skills):
One course on Communications (see Note 5)
Notes
- There are 10 electives. These electives must include three Advanced Technical Electives, two Science Course Electives, and three Linkage Electives. For their remaining two electives, students may choose to take additional courses from the elective lists above or any other 0.5 credit course(s) for which they meet the requisites. Advanced Technical Electives may not be taken before the 3A term.
- Students must take one elective in third year, but can choose to take it in either 3A or 3B. Students may take electives in both terms if they choose.
- Students may choose to take four electives in 4A and three electives in 4B, instead of three in 4A and four in 4B.
- Students enrolled in Software Engineering will only be permitted to use the WD and WF (see Grades for descriptions) provisions used in the Faculty of Mathematics to withdraw from extra courses taken above the degree requirements.
- The linkage elective on communication (Undergraduate Communication Requirement) is normally taken in the 2A term. It must be completed with a grade of at least 60% prior to enrolling in the 3A term.
Undergraduate Communication Requirement
Strong communication skills are essential to academic, professional, and personal success. As such, Software Engineering students must take a course from the Linkage Elective Undergraduate Communication Requirement List in the 2A term. This elective list is intended to include all of Mathematics Undergraduate Communication Requirement List 1, and selections from Mathematics Undergraduate Communication Requirement List 2. Communication skills are further developed and evaluated in PD 11, SE 101, SE 390, SE 490, and SE 491.
Professional Development Courses
Five professional development (PD) courses are required; see Work Terms for BASc and BSE degree for details. Two core PD courses are specified for all engineering students: PD 19 and PD 20. One core PD course is specified for all mathematics students, PD 11. Due to the importance of understanding the legal and ethical ramifications of software development, Software Engineering students are also required to take PD 10. This course replaces one of the PD electives, such that Software Engineering students have four core PD courses (PD 10, PD 11, PD 19, and PD 20) and one PD elective course. Software Engineering students are automatically enrolled in PD 19 and PD 20 but must enrol in PD 10, PD 11, and the elective PD course using the normal Quest enrolment process.