Metadata
Title
Academic Plans and Requirements
Category
undergraduate
UUID
7fef2f3c73b84758b2d3dc20c4a58a67
Source URL
https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/p...
Parent URL
https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/p...
Crawl Time
2026-03-18T05:16:13+00:00
Rendered Raw Markdown
# Academic Plans and Requirements

**Source**: https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Software-Engineering.html
**Parent**: https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Bus-Admin-Computer-Sci-Double-Degree-Reqmnt-1.html

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| |  |  | | --- | --- | |  |  | | 2022-2023 | [The Undergraduate Calendar](https://academic-calendar-archive.uwaterloo.ca/) | | - [The Undergraduate Studies Calendar](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/uWaterloo-Undergraduate-Calendar-Access.html) - [General Information](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-General-Information.html) - [Calendar of Events and Academic Deadlines](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/uWaterloo-Calendar-Events-and-Academic-Deadlines.html) - [Admissions](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Admissions.html) - [Fees](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Fees.html) - [Awards and Financial Aid](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Awards-and-Financial-Aid.html) - [Co-operative Education & Career Action](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Co-operative-Education-Career-Action.html) - [University Policies, Guidelines, and Academic Regulations](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Policies-Guidelines-Academic-Regulations.html) - [Faculty of Arts](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Arts.html) - [Faculty of Engineering](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Engineering.html) - [Faculty of Environment](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Environment.html) - [Faculty of Health](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Health.html) - [**Faculty of Mathematics**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/u-Waterloo-Faculty-of-Mathematics.html)  - [About the Faculty of Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-About-the-Faculty-of-Mathematics.html) - [List of Academic Programs/Plans](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-List-of-Academic-Programs-or-Plans.html) - [Admission to Specific Honours Academic Plans](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Admission-Specific-Honours-Academic-Plans.html) - [Bachelor of Computer Science and Bachelor of Mathematics Plan Combinations](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-BCS-and-BMath-Academic-Plan-Combinations.html) - [**Academic Plans and Requirements**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Academic-Plans-and-Requirements.html)  - [Degree Requirements for all Math students](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Degree-Requirements-for-Math-students.html) - [Actuarial Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Actuarial-Science-1.html) - [Applied Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Applied-Mathematics-1.html) - [Combinatorics and Optimization](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Combinatorics-and-Optimization1.html) - [Computational Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computational-Mathematics-1.html) - [Computer Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computer-Science-1.html) - [Computing and Financial Management](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computing-and-Financial-Management.html) - [Mathematics/Business](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematics-or-Business.html) - [Mathematical Optimization](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematical-Optimization1.html) - [Mathematical Studies](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematical-Studies-1.html) - [Mathematics/Teaching](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematics-or-Teaching.html) - [Plans for Students outside the Mathematics Faculty](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Plans-for-Students-outside-Mathematics-Fac.html) - [Pure Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Pure-Mathematics-1.html) - [**Software Engineering**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Software-Engineering.html)  - [**Software Engineering**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Software-Engineering.html)  - [Statistics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Statistics-1.html)  - [Faculty Policies](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Faculty-Policies.html) - [Courses - Faculty of Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/Courses-Faculty-of-Mathematics.html) - [Courses - Undergraduate](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Course-Descriptions-Index.html)  - [Faculty of Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Science.html) - [Social Work](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Social-Work.html) - [Minors, Options, Diplomas, Certificates](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Minors-Options-Diplomas-Certificates.html) - [Undergraduate Course Descriptions](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Course-Descriptions-Index.html) - [Amendments](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Amendments.html) | |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | |  | | --- | | Academic Plans and Requirements Software Engineering | | |  | | --- | | Software Engineering | |  | | 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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Admissions.html) 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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Minors-Options-Diplomas-Certificates.html#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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computer-Science-1.html) or the full list of [Options, Specializations and Electives for Engineering Students](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-BASc-and-BSE-Options-Electives-Engineering1.html).  The following Mathematics Joint Honours plans are also approved as additional plans for BSE students:   - [Joint Applied Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-AM-Degree-Requirements-Joint-Applied-Math.html) - [Joint Combinatorics and Optimization](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Joint-Combinatorics-and-Optimization1.html) - [Joint Pure Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Joint-Pure-Mathematics1.html), and - [Joint Statistics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Joint-Statistics1.html)   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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Acad-Regs-Invalid-Credential-Combinations.html). 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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-BASc-and-BSE-Examinations-and-Promotions.html) 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](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS137) Programming Principles (3 LEC,1 TUT,2 LAB) - [ECE 105](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE105) Classical Mechanics (3 LEC,1 TUT, 1.25 LAB) - [MATH 115](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH115) Linear Algebra for Engineering (3 LEC,2 TUT) - [MATH 117](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH117) Calculus 1 for Engineering (3 LEC,2 TUT) - [MATH 135](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH135) Algebra for Honours Mathematics (3 LEC,1 TUT) - [SE 101](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE101) Introduction to Methods of Software Engineering (1 SEM,2 LAB)  ---  Term 1B (Winter)  - [CS 138](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS138) Introduction to Data Abstraction and Implementation (3 LEC,1 TUT,2 LAB) - [ECE 106](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE106) Electricity and Magnetism (3 LEC,1 TUT,1.25 LAB) - [ECE 124](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE124) Digital Circuits and Systems (3 LEC,1 TUT,1.25 LAB) - [ECE 140](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE140) Linear Circuits (3 LEC,2 TUT,1.25 LAB) - [MATH 119](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH119) Calculus 2 for Engineering (3 LEC,2 TUT) - [SE 102](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE102) Seminar (1 SEM)  ---  Term 2A (Fall)  - [CHE 102](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHE.html#CHE102) Chemistry for Engineers (see Note 7) (3 LEC,2 TUT) - [CS 241](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS241) Foundations of Sequential Programs (3 LEC,1 TUT,2 LAB) - [ECE 222](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE222) Digital Computers (3 LEC,1 TUT,1.25 LAB) - [SE 201](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE201) Seminar (1 SEM) - [SE 212](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE212) Logic and Computation (3 LEC,1 TUT) - [STAT 206](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT206) Statistics for Software Engineering (see Note 5) (3 LEC,1 TUT) - Undergraduate Communication Requirement (see Note 6)  ---  Term 2B (Spring)  - [CS 240](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS240) Data Structures and Data Management (3 LEC,3 LAB) - [CS 247](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS247) Software Engineering Principles (3 LEC,1 TUT, 3 LAB-unscheduled) - [CS 348](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS348) Introduction to Database Management (3 LEC,1 LAB) - [ECE 192](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE192) Engineering Economics and Impact on Society (2 LEC,1 TUT) - [MATH 239](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH239) Introduction to Combinatorics (3 LEC,1 TUT) - [SE 202](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE202) Seminar (1 SEM) - Elective (see Note 1) - [WKRPT 200](https://ucalendar.uwaterloo.ca/2223/COURSE/course-WKRPT.html#WKRPT200) Work-term Report  ---  Term 3A (Winter)  - [CS 341](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS341) Algorithms (3 LEC,3 LAB) - [CS 349](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS349) User Interfaces (3 LEC,1 LAB-unscheduled) - [MATH 213](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH213) Signals, Systems, and Differential Equations (3 LEC,1 TUT) - [SE 301](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE301) Seminar (1 SEM) - [SE 350](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE350) Operating Systems (3 LEC,1 TUT,1.25 LAB) - [SE 465](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE465) Software Testing and Quality Assurance (3 LEC,1 TUT,3 LAB-unscheduled) - Elective (see Notes 1 and 2)  ---  Term 3B (Fall)  - [CS 343](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS343) Concurrent and Parallel Programming (3 LEC,3 LAB) - [ECE 358](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE358) Computer Networks (3 LEC,1 TUT,1.25 LAB) - [SE 302](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE302) Seminar (1 SEM) - [SE 380](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE380) Introduction to Feedback Control (3 LEC,1 TUT,1.25 LAB) - [SE 390](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE390) Design Project Planning (2 LEC,2 PRJ,LAB-unscheduled) - [SE 464](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE464) Software Design and Architectures (3 LEC,1 TUT,3 LAB-unscheduled) - Elective (see Notes 1 and 2) - [WKRPT 300](https://ucalendar.uwaterloo.ca/2223/COURSE/course-WKRPT.html#WKRPT300) Work-term Report  ---  Term 4A (Spring)  - [SE 401](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE401) Seminar (1 SEM) - [SE 463](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE463) Software Requirements Specification and Analysis (3 LEC,1 TUT,3 LAB-unscheduled) - [SE 490](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE490) Design Project 1 (2 LEC,9 PRJ,LAB-unscheduled) - Three Electives (see Notes 1 and 3) - [WKRPT 400](https://ucalendar.uwaterloo.ca/2223/COURSE/course-WKRPT.html#WKRPT400) Work-term Report  ---  Term 4B (Winter)  - [SE 402](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE402) Seminar (1 SEM) - [SE 491](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE491) Design Project 2 (2 LEC,2 PRJ,LAB-unscheduled) - 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](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS360) Introduction to the Theory of Computing - [CS 365](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS365) Models of Computation - [CS 370](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS370) Numerical Computation - [CS 371](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS371) Introduction to Computational Mathematics - [CS 442](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS442) Principles of Programming Languages - [CS 444](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS444) Compiler Construction - [CS 448](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS448) Database Systems Implementation - [CS 449](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS449) Human-Computer Interaction - [CS 450](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS450) Computer Architecture - [CS 451](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS451) Data-Intensive Distributed Computing - [CS 452](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS452) Real-time Programming - [CS 454](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS454) Distributed Systems - [CS 457](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS457) System Performance Evaluation - [CS 458](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS458) Computer Security and Privacy - [CS 462](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS462) Formal Languages and Parsing - [CS 466](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS466) Algorithm Design and Analysis - [CS 479](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS479) Neural Networks - [CS 480](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS480) Introduction to Machine Learning - [CS 484](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS484) Computational Vision - [CS 485](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS485) Statistical and Computational Foundations of Machine Learning - [CS 486](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS486) Introduction to Artificial Intelligence - [CS 487](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS487) Introduction to Symbolic Computation - [CS 488](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS488) Introduction to Computer Graphics - [CS 489](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS489) Advanced Topics in Computer Science  ECE List One of the following ECE courses:   - [ECE 313](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE313) Digital Signal Processing - [ECE 320](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE320) Computer Architecture - [ECE 327](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE327) Digital Hardware Systems - [ECE 340](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE340) Electronic Circuits 2 - [ECE 409](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE409) Cryptography and System Security - [ECE 416](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE416) Advanced Topics in Networking - [ECE 417](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE417) Image Processing - [ECE 423](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE423) Embedded Computer Systems - [ECE 454](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE454) Distributed Computing - [ECE 455](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE455) Embedded Software - [ECE 457A](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE457A) Co-operative and Adaptive Algorithms - [ECE 457B](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE457B) Fundamentals of Computational Intelligence - [ECE 457C](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE457C) Reinforcement Learning - [ECE 458](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE458) Computer Security - [ECE 459](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE459) Programming for Performance - [ECE 481](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE481) Digital Control Systems - [ECE 486](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE486) Robot Dynamics and Control - [ECE 488](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE488) Multivariable Control Systems - [ECE 493](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE493) Special Topics in Electrical and Computer Engineering - [ECE 495](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE495) Autonomous Vehicles   One additional course from the CS and ECE Lists above, or from the Extended List below. Extended List  - [CO 331](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO331) Coding Theory - [CO 342](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO342) Introduction to Graph Theory - [CO 351](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO351) Network Flow Theory - [CO 353](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO353) Computational Discrete Optimization - [CO 367](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO367) Nonlinear Optimization - [CO 456](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO456) Introduction to Game Theory - [CO 481](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO481) Introduction to Quantum Information Processing - [CO 485](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO485) The Mathematics of Public-Key Cryptography - [CO 487](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO487) Applied Cryptography - [MSCI 343](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MSCI.html#MSCI343) Human-Computer Interaction - [MSCI 446](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MSCI.html#MSCI446) Introduction to Machine Learning - [MSCI 543](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MSCI.html#MSCI543) Analytics and User Experience - [MTE 544](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MTE.html#MTE544) Autonomous Mobile Robots - [MTE 546](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MTE.html#MTE546) Multi-Sensor Data Fusion - [SE 498](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE498) Advanced Topics in Software Engineering - [STAT 440](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT440) Computational Inference - [STAT 441](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT441) Statistical Learning - Classification - [STAT 442](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT442) Data Visualization - [STAT 444](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT444) Statistical Learning - Advanced Regression - [SYDE 533](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE533) Conflict Resolution - [SYDE 543](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE543) Cognitive Ergonomics - [SYDE 548](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE548) User-Centred Design Methods - [SYDE 552](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE552) Computational Neuroscience - [SYDE 556](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE556) Simulating Neurobiological Systems - [SYDE 575](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SYDE.html#SYDE575) Image Processing  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](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL110), [BIOL 120](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL120), ([BIOL 130](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL130) and [BIOL 130L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL130L)), [BIOL 150](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL150), [BIOL 165](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL165), [BIOL 211](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL211), [BIOL 239](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL239), ([BIOL 240](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL240) and [BIOL 240L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL240L)), [BIOL 241](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL241), [BIOL 273](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL273), ([BIOL 373](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL373) and [BIOL 373L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html#BIOL373L)) - [CHE 161](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHE.html#CHE161) - ([CHEM 123](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM123) and [CHEM 123L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM123L)), [CHEM 209](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM209), ([CHEM 237](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM237) and [CHEM 237L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM237L)), [CHEM 254](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM254), ([CHEM 262](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM262) and [CHEM 262L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM262L)), [CHEM 266](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM266), [CHEM 356](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM356), [CHEM 404](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM404) - [EARTH 121](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH121), [EARTH 122](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH122), [EARTH 123](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH123), [EARTH 221](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH221), [EARTH 270](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH270), [EARTH 281](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html#EARTH281) - [ECE 231](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE231), [ECE 403](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE403), [ECE 404](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE404), [ECE 405](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECE.html#ECE405) - [ENVE 275](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENVE.html#ENVE275) - [ENVS 200](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENVS.html#ENVS200) - [NE 222](https://ucalendar.uwaterloo.ca/2223/COURSE/course-NE.html#NE222) - [PHYS 124](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS124), [PHYS 175](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS175), [PHYS 234](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS234), [PHYS 263](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS263), [PHYS 275](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS275), [PHYS 280](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS280), [PHYS 334](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS334), [PHYS 335](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS335), [PHYS 375](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS375), [PHYS 380](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html#PHYS380) - [SCI 238](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SCI.html#SCI238), [SCI 250](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SCI.html#SCI250)  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 Societal Issues:   - [CS 492](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS492), [Complementary Studies Elective](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-BASc-and-BSE-Complementary-Studies-Engineering.html) List A   One additional course on Humanities and Social Sciences:   - [Complementary Studies Elective](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-BASc-and-BSE-Complementary-Studies-Engineering.html) List C   One course on Communications (see Note 6)   - [ENGL 109](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html#ENGL109) - [ENGL 119](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html#ENGL119) - [ENGL 129R](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html#ENGL129R)/[EMLS 129R](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EMLS.html#EMLS129R) - [ENGL 209](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html#ENGL209) - [ENGL 210E](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html#ENGL210E) - [EMLS 101R](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EMLS.html#EMLS101R) - [EMLS 102R](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EMLS.html#EMLS102R) - [SPCOM 100](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SPCOM.html#SPCOM100) - [SPCOM 223](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SPCOM.html#SPCOM223)  Notes  1. 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. 2. 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. 3. Students may choose to take three electives in 4A and four electives in 4B, instead of two in 4A and five in 4B. 4. Students enrolled in Software Engineering will only be permitted to use the WD and WF (see [Grades](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Acad-Regs-Grades.html) for descriptions) provisions used in the Faculty of Mathematics to withdraw from extra courses taken above the degree requirements. 5. Students may replace [STAT 206](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT206) and one of their unrestricted electives with the combination of [STAT 230](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT230) and [STAT 231](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT231). 6. 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. 7. [CHE 102](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHE.html#CHE102) is treated as an elective for the purpose of reduced load; that is, students may take [CHE 102](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHE.html#CHE102) either before or after their 2A term. Students may take [CHEM 120](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html#CHEM120) instead of [CHE 102](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHE.html#CHE102).  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](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-Undergraduate-Communication-Requirement.html) 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 three work-term reports (described below) and in [SE 101](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE101), [SE 390](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE390), [SE 490](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE490), and [SE 491](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SE.html#SE491). Three Work-term Reports Work-term reports (WKRPTs) 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. Professional Development Courses Five professional development (PD) courses are required as described in the BASc and BSE specific degree requirements section on [Work Terms](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/ENG-BASc-and-BSE-Work-Terms.html). Two core PD courses are specified for all engineering students: [PD 19](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD19) and [PD 20](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD20). Due to the importance of understanding the legal and ethical ramifications of software development, Software Engineering students are also required to take [PD 10](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD10). This course replaces one of the PD electives, such that Software Engineering students have three core PD courses ([PD 10](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD10), [PD 19](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD19), and [PD 20](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD20)) and two PD elective courses. Software Engineering students are automatically enrolled in [PD 10](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD10), [PD 19](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD19), and [PD 20](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PD.html#PD20) but must enrol in the elective PD courses using the normal Quest enrolment process. | | | | ---   Office of the Registrar  University of Waterloo  Ira G. Needles Hall  200 University Avenue West  Waterloo, Ontario, Canada N2L 3G1   519-888-4567 | | | |