Useful Links:
- 1A class schedule
- 1A midterm schedule
- LEARN (course material)
- Quest (transcripts and schedules)
- Cohort schedule (including proposed times for viewing videos)
- University Important Dates (when classes start, when is reading week, when are exams, etc)
- Email (check this daily once the term starts)
- Piazza (for course Q&A)
- First-year students
Fall 2022 Class reps
Academic reps:
EngSoc Reps:
MathSoc Reps:
SE Society Reps:
WiSE:
WEEF Reps:
Athletic Reps:
Yearbook Rep:
2024 Divisional meetings
- Mon Sep 30 at 4:30
- Mon Oct 28 at 5:30
- Mon Nov 25 at 5:30
2022 - 2023 Course sequence
Term | Course and Title | Cls | Tut | Lab |
---|---|---|---|---|
1A Fall 2022 |
CS 137 Programming Principles | 3 | 1 | 2 |
ECE 105 Classical Mechanics | 3 | 1 | 1.25 | |
MATH 115 Linear Algebra for Engineering | 3 | 2 | 0 | |
MATH 117 Calculus 1 for Engineering | 3 | 2 | 0 | |
MATH 135 Algebra for Honours Mathematics | 3 | 1 | 0 | |
SE 101 Introduction to Methods of Software Engineering* | 1 | 0 | 2 | |
1B Winter 2023 |
SE 102 Seminar | 1 | 0 | 0 |
CS 138 Introduction to Data Abstraction and Implementation | 3 | 1 | 2 | |
ECE 106 Electricity and Magnetism | 3 | 1 | 1.25 | |
ECE 124 Digital Circuits and Systems | 3 | 1 | 1.25 | |
ECE 140 Linear Circuits | 3 | 2 | 1.25 | |
MATH 119 Calculus 2 for Engineering | 3 | 2 | 0 | |
2A Fall 2023 |
SE 201 Seminar | 1 | 0 | 0 |
CHE 102 Chemistry for Engineers (see note 7) | 3 | 2 | 0 | |
CS 241 Foundations of Sequential Programs | 3 | 1 | 2 | |
ECE 222 Digital Computers | 3 | 1 | 1.25 | |
SE 212 Logic and Computation | 3 | 1 | 0 | |
STAT 206 Statistics for Software Engineering (see note 5) | 3 | 1 | 0 | |
Communication Elective (see note 6) | 3 | + | + | |
2B Spring 2024 |
SE 202 Seminar | 1 | 0 | 0 |
CS 240 Data Structures and Data Management | 3 | 0 | 3 | |
CS 247 Software Engineering Principles ** | 3 | 1 | 3 | |
CS 348 Introduction to Database Management | 3 | 0 | 0 | |
ECE 192 Engineering Economics and Impact on Society | 2 | 1 | 0 | |
MATH 239 Introduction to Combinatorics | 3 | 1 | 0 | |
Elective (see note 1) | 3 | + | + | |
WKRPT 200 Work-term Report | ||||
3A Winter 2025 |
SE 301 Seminar | 1 | 0 | 0 |
CS 341 Algorithms | 3 | 0 | 3 | |
CS 349 User Interfaces ** | 3 | 0 | 1 | |
MATH 213 Advanced Mathematics for Software Engineers | 3 | 1 | 0 | |
SE 350 Operating Systems | 3 | 1 | 1.25 | |
SE 465 Software Testing and Quality Assurance ** | 3 | 1 | 3 | |
Elective (see note 1 and 2) | 3 | + | + | |
3B Fall 2025 |
SE 302 Seminar | 1 | 0 | 0 |
CS 343 Concurrent and Parallel Programming | 3 | 0 | 3 | |
ECE 358 Computer Networks | 3 | 1 | 1.5 | |
SE 380 Introduction to Feedback Control | 3 | 1 | 1.25 | |
SE 390 Design Project Planning ** | 2 | 0 | 2 | |
SE 464 Software Design and Architectures ** | 3 | 1 | 3 | |
Elective (see note 1 and 2) | 3 | + | + | |
WKRPT 300 Work-term Report | ||||
4A Spring 2026 |
SE 401 Seminar | 1 | 0 | 0 |
SE 463 Software Requirements Specification and Analysis ** | 3 | 1 | 3 | |
SE 490 Design Project 1 ** | 2 | 0 | 9 | |
Three Electives (see notes 1 and 3) | 3 | + | + | |
WKRPT 400 Work-term Report | ||||
4B Winter 2027 |
SE 402 Seminar | 1 | 0 | 0 |
SE 491 Design Project 2 ** | 2 | 0 | 2 | |
Four Electives (see notes 1 and 3) | 3 | + | + |
Advanced technical electives (ATEs)
The three Advanced Technical Electives 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.
The SE Enrichment Opportunities web page gives some guidance on selecting electives strategically.
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 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:
- ECE 313 Digital Signal Processing
- ECE 320 Computer Architecture
- ECE 327 Digital Hardware Systems
- ECE 340 Electronic Circuits 2
- ECE 409 Cryptography and System Security
- ECE 416 Advanced Topics in Networking
- ECE 417 Image Processing
- ECE 423 Embedded Computer Systems
- ECE 454 Distributed Computing
- ECE 455 Embedded Software
- ECE 457A Cooperative and Adaptive Algorithms
- ECE 457B Fundamentals of Computational Intelligence
- ECE 457C Reinforcement Learning
- ECE 458 Computer Security
- ECE 459 Programming for Performance
- ECE 481 Digital Control Systems
- ECE 486 Robot Dynamics and Control
- ECE 488 Multivariable Control Systems
- ECE 493 Special Topics in Electrical and Computer Engineering
- ECE 495 Autonomous Vehicles
One additional course from the CS and ECE Lists above, or from the Extended List below.
Extended List
- CO 331 Coding Theory
- CO 342 Introduction to Graph Theory
- CO 351 Network Flow Theory
- CO 353 Computational Discrete Optimization
- CO 367 Nonlinear Optimization
- CO 456 Introduction to Game Theory
- CO 481 Introduction to Quantum Information Processing
- CO 485 The Mathematics of Public-Key Cryptography
- CO 487 Applied Cryptography
- MSCI 343 Human-Computer Interaction
- MSCI 446 Introduction to Machine Learning
- MSCI 543 Analytics and User Experience
- MTE 544 Autonomous Mobile Robots
- MTE 546 Multi-Sensor Data Fusion
- SE 498 Advanced Topics in Software Engineering
- STAT 440 Computational Inference
- STAT 441 Statistical Learning - Classification
- STAT 442 Data Visualization
- STAT 444 Statistical Learning - Advanced Regression
- SYDE 533 Conflict Resolution
- SYDE 543 Cognitive Ergonomics
- SYDE 548 User-Centred Design Methods
- SYDE 552 Computational Neuroscience
- SYDE 556 Simulating Neurobiological Systems
- SYDE 575 Image Processing
Science electives
Natural science courses --- including cognitive science. Alternate courses may be chosen in consultation with the SE academic advisors.
The SE Enrichment Opportunities web page gives some guidance on selecting electives strategically.
Two of
- BIOL 110, BIOL 120, (BIOL 130 and BIOL 130L), BIOL 150, BIOL 165, BIOL 211, 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 234, PHYS 263, PHYS 275, PHYS 280, PHYS 334, PHYS 335, PHYS 375, PHYS 380
- Cognitive Science: PSYCH 207, PSYCH 261, PSYCH306, PSYCH307
- SCI 238, SCI 250
Linkage electives
Three courses, at least one from each of the areas of Societal Issues, Humanities and Social Sciences, and Communications, as specified below. Students should be aware that these courses may have enrolment limits, or may not fit their schedules.
The SE Enrichment Opportunities web page gives some guidance on selecting electives strategically.
One course on Societal Issues:
- Complementary Studies Elective List A, CS 492
One additional course on Humanities and Social Sciences:
One course on Communications:
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 three electives in 4A and four electives in 4B, instead of two in 4A and five 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.
- Students may replace STAT 206 and one of their unrestricted electives with the combination of STAT 230 and STAT 231.
- The linkage elective on communication 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.
- CHE 102 is treated as an elective for the purpose of reduced load; that is, students may take CHE 102 either before or after their 2A term. Students may take CHEM 120 instead of CHE 102.
Communication Skills 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 Communication List in the 2A term. This elective list parallels the Mathematics Communication Skills Requirements List 1. Communication skills are further developed and evaluated in three work-term reports (described below) and in SE 101, SE 390, SE 490, and SE 491.
Three Work-term Reports (WKRPT)
Work term reports are listed as part of the Software Engineering curriculum; they are treated as courses that a BSE student must successfully complete to satisfy the plan requirements. They appear on all grade reports and transcripts, but they are not used in calculating term averages.
Each work-term report requirement is satisfied by earning a grade of satisfactory or better on a work-term report related to the previous term's co-op employment. Each work-term report must be submitted at the beginning of the academic term in which it is listed as a course; it is due seven days after the first official day of lectures. Reports submitted after the due date will receive a failing grade and will be evaluated the following academic term.
Failed work-term reports contribute to a student's accumulated failed-course count. They also appear on a student's transcript. Once a failure has cleared, the original grade will still be listed on the transcript but will be annotated with a credit (CR) in the "sup" field.
Five Professional Development (PD) Courses
Five professional development courses are required as described in the BASc and BSE specific degree requirements section on Work Terms. Two core PD courses are specified for all engineering students: PD 19 and PD 20. 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 three core PD courses (PD 10, PD 19, and PD 20) and two PD elective courses. Software Engineering students are automatically enrolled in PD 10, PD 19, and PD 20 but must enrol in the elective PD courses using the normal Quest enrolment process.
Use of this information for the purposes of solicitation of business or contributions is forbidden.