Over the last few decades there has been a tremendous growth in information technology and its impact on everyday life. Complex software systems have become critical to the operation of many systems in areas such as banking, communications, manufacturing, power generation, and transportation. Progress in computer science and accumulated experience with industrial production of software have led to the emergence of software engineering as a separate discipline. The software engineering discipline has been defined as "the application of systematic, disciplined, quantifiable approaches to the development, operation, and maintenance of software"; that is, the application of engineering to software. The software engineer must apply well-defined techniques, methods, and tools to ensure the correctness, reliability, performance, maintainability, and usability of the software systems being developed.
The technical requirements of these software engineers include a strong foundation in mathematics, natural sciences, and computer science; a broad education in software engineering and design; an understanding of computers and networks; a better appreciation for all aspects of the software engineering life cycle; and the use of methodologies and tools.
The curriculum requirements are not all technical. Industry is also asking for graduates who have facility across several disciplines. Software engineering graduates need to have substantial communications, business, and reasoning skills. Graduates should be able to work in groups; make presentations to technical and non-technical audiences; write coherent well-reasoned reports; and assess the social, technical, legal, and commercial implications of the technology they help to create.
The Honours Software Engineering program leads to a Bachelor of Software Engineering degree. It has been designed to be accreditable by the Computer Sciences Accreditation Council and the Canadian Engineering Accreditation Board. Accreditation will be sought at the first opportunity.
Administrative Structure
Leadership for the Software Engineering program is provided by a Software Engineering Program Director, normally a faculty member chosen from either Computer Science or Electrical and Computer Engineering with a joint or cross appointment. The Program Director is responsible for the academic issues associated with the program's operations, including student liaison and advisement. The Associate Director of Software Engineering assists the Director in managing the program's day-to-day operations and in advising students.
The Software Engineering Program Board oversees the program's operation and evolution. This inter-faculty Board consults with the two home departments and reports to the two Faculty Councils. The Chair of the Board alternates between the Dean of the Faculty of Engineering and the Dean of Mathematics. Ex-officio members of the board include the
- Dean of Engineering
- Dean of Mathematics
- Director of the David R. Cheriton School of Computer Science
- Chair of Electrical and Computer Engineering
- Director (or Associate Director) of Undergraduate Studies (CS)
- Associate Chair of Undergraduate Studies (ECE)
- Software Engineering Program Director
In addition, the board includes four faculty members, two from Computer Science and two from Electrical and Computer Engineering; and one student from the Software Engineering program. Faculty members are appointed for two-year, renewable terms; the student member typically serves a two-term appointment. The Software Engineering Curriculum Committee is responsible for the maintenance and evolution of the program curriculum and is chaired by the Software Engineering Program Director. The committee consists of six faculty members (three from Computer Science and three from Electrical and Computer Engineering, including the appropriate Electrical and Computer Engineering Theme Area Chair and the Computer Science Director [or Associate Director] of Undergraduate Studies) and one student from the Software Engineering Program. The membership may be drawn from outside of the Board. The Software Engineering Curriculum Committee reports to the Software Engineering Program Board and consults with both the Computer Science Curriculum Committee and the Electrical and Computer Engineering Program Committee.
Admissions
The Software Engineering Program Board, in consultation with the Faculties of Engineering and Mathematics and their Admissions Committees, determines the admission requirements for the Software Engineering program.
For details on admission information, see the Specific Admission Requirements and Recommendations for Year One Programs in the Admissions chapter of this calendar.
English Language Proficiency Requirement
Students in the Software Engineering program must satisfy this requirement as set down by the Faculty of Engineering (see Engineering's English Language Proficiency Requirement section).
MINORS, OPTIONS, AND JOINT HONOURS
Although Software Engineering students are considered to be both Math and Engineering students, and can thus take advantage of most academic opportunities available to students from either Faculty, BSE students have only three options directly supported by their program: the Option in Management Sciences (from Engineering), the Business Option (from Computer Science), and the Cognitive Science Option (a university-wide option). This does not preclude students from completing the requirements for other eligible degree enhancements, such as other Options, Minors, or Joint programs; but these must be arranged by the students and completed in addition to the normal BSE degree requirements. Students must consult the Software Engineering Associate Director for eligible degree enhancements.
Students should be aware that an option will constrain the choice of elective courses and may require additional courses. Thus, it is advisable to start planning for options in the first and second years. Students should also consider the benefits of not pursuing an option, in that they are better able to personalize their curriculum if they have more flexibility in choosing their electives.
Option in Management Sciences
This option consists of six courses (see "Option in Management Sciences" under Designated Options in the Faculty of Engineering section) designed for those students who are interested in the management of technology.
Note that required course MSCI 331 and elective courses MSCI 431 and MSCI 441 are not open to Math Faculty students, which means that they are not open to Software Engineering students. Students enrolled in the option must take CO 350 in lieu of MSCI 331, and may take CS 480 in lieu of MSCI 441. CS 457 can substitute for MSCI 431. SE 362 counts towards the fulfillment of one of the three required electives in the MSCI Option.
The successful completion of these courses results in a designation on the transcript "Option in Management Sciences."
Business Option
This option consists of ten courses (see "Business Option" under Computer Science in the Faculty of Math section) designed for those students who are interested in business and marketing.
The successful completion of these courses results in a designation on the transcript "Business Option."
Cognitive Science Option
This option consists of eight courses (see "Cognitive Science Option" in the Interdisciplinary section) designed for those students who are interested in the nature of thinking and intelligence.
The successful completion of these courses results in a designation on the transcript "Cognitive Science Option."
SOFTWARE ENGINEERING AWARDS
Term Dean's Honours List
In recognition of outstanding academic achievement in an academic term, the designation "Dean's Honours List" is awarded to any BSE student who satisfies either of the following criteria:
1.1. The student is unconditionally promoted at the end of that term, and his or her term average minus his or her percentile rank from the top for that academic term is at least 80.
1.2. The student completes the academic term with a term average of at least 87% based upon a course load which includes a minimum of 2.5 units with numeric or letter grades and which does not include any failing grades or any INC, IP, or UR grades.
This designation will be reflected on the official university transcript.
Graduation "With Distinction - Dean's Honours List"
In recognition of outstanding academic achievement throughout undergraduate studies, the designation Graduation "With Distinction - Dean's Honours List" is awarded to any BSE graduate who satisfies either of the following criteria:
1.1. The student has satisfied criterion "1" of the term Dean's Honours List for at least two of the six academic terms preceding graduation, and has a cumulative average over these last six academic terms of at least 80.
1.2. The student has a cumulative average (as specified in Mathematics Faculty Policy #1) of at least 87% with no record of INC, IP, or UR grades. Any student who satisfies this criterion will have his or her name displayed in gold in the Math Faculty Colloquium Room (MC 5158).
This designation will appear on the student's official University transcript and diploma.
Some of the upper-year awards offered by the Faculties of Engineering and Mathematics are open to Software Engineering students. If such an Engineering or Mathematics award specifies that the recipient achieve term “Dean's Honours List” or “Graduating ‘With Distinction - Dean's Honours List’,” then a Software Engineering student must satisfy the appropriate Faculty's Dean's Honours List criteria in order to be eligible for the award.
Honours Software Engineering (Co-operative 8-stream only)
The Software Engineering program is offered jointly by the David R. Cheriton School of Computer Science and the Department of Electrical and Computer Engineering.
Its curriculum prepares graduates for entry into the software engineering profession. It covers the scientific and mathematical foundations of the discipline, engineering science and engineering design appropriate to the discipline, and exposes students to the ethical and societal issues associated with the discipline. Graduates will be able to apply their knowledge to produce software solutions to specific problems.
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 Examination and Promotion rules used in the Faculty of Engineering (see Examinations and Promotions section). 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 Math students. The Software Engineering Advisor will advise students on how to achieve their academic goals. Students will graduate with a Bachelor of Software Engineering.
ACADEMIC CURRICULUM
1A Fall |
C |
T |
L |
MATH 115 Linear Algebra for Engineering |
3 |
2 |
-- |
MATH 117 Calculus 1 for Engineering |
3 |
2 |
-- |
PHYS 115 Mechanics |
3 |
2 |
-- |
SE 101 Introduction to Methods of Software Engineering*** |
1 |
1 |
1 |
MATH 135 Algebra for Honours Mathematics |
3 |
1 |
-- |
CS 133 Developing Programming Principles |
2 |
2 |
2 |
|
1B Winter |
C |
T |
L |
SE 102 Seminar |
1 |
-- |
-- |
MATH 119 Calculus 2 for Engineering |
3 |
2 |
-- |
SE 112 Logic and Computation |
3 |
1 |
-- |
CS 134 Principles of Computer Science |
3 |
1 |
2 |
SE 141 Digital Circuits and Systems |
3 |
1 |
3* |
MSCI 261 Engineering Economics: Financial Management for Engineers
|
3 |
1 |
-- |
CHE 102 Chemistry for Engineers |
3 |
2 |
-- |
|
2A Fall |
C |
T |
L |
SE 201 Seminar |
1 |
-- |
-- |
STAT 206 Statistics for Software Engineering |
3 |
1 |
-- |
CS 241 Foundations of Sequential Programs |
3 |
1 |
2 |
ECE 126 Introduction to Electrostatics, Magnetism, and Electronics ** |
4 |
2 |
2 |
ECE 222 Digital Computers |
3 |
1 |
3* |
MATH 239 Introduction to Combinatorics |
3 |
1 |
-- |
WKRPT 100 Work-term Report |
|
|
|
|
2B Spring |
C |
T |
L |
SE 202 Seminar |
1 |
-- |
-- |
SE 240 Algorithms and Data Structures |
3 |
1 |
3* |
CS 246 Software Abstraction and Specification |
3 |
-- |
3 |
MATH 213 Advanced Mathematics for Software Engineers |
3 |
1 |
-- |
LE Linkage Elective |
3 |
+ |
+ |
SCE Science Elective |
3 |
+ |
+ |
WKRPT 200 Work-term Report |
TPM 000 CR/NCR |
|
3A Winter |
C |
T |
L |
SE 301 Seminar |
1 |
-- |
-- |
CS 343 Concurrent and Parallel Programming |
3 |
-- |
3 |
SE 382 Human-computer Interaction |
3 |
1 |
3* |
CS 457 System Performance Evaluation |
3 |
-- |
1 |
LE Linkage Elective |
3 |
+ |
+ |
SCE Science Elective |
3 |
+ |
+ |
|
3B Fall |
C |
T |
L |
SE 302 Seminar |
1 |
-- |
-- |
SE 463 Software Requirements Specification and Analysis |
3 |
1 |
3 |
CS 348 Introduction to Database Management |
3 |
-- |
-- |
ECE 354 Real-Time Operating Systems |
3 |
1 |
3 |
ATE Advanced Technical Elective |
3 |
+ |
+ |
LE Linkage Elective |
3 |
+ |
+ |
WKRPT 300 Work-term Report |
|
4A Spring |
C |
T |
L |
SE 401 Seminar |
1 |
-- |
-- |
SE 464 Software Design and Architectures |
3 |
1 |
3 |
ECE 428 Computer Networks and Security |
3 |
1 |
-- |
SE 362 Software Project Management |
3 |
1 |
-- |
ATE Advanced Technical Elective |
3 |
+ |
+ |
LE Linkage Elective |
3 |
+ |
+ |
WKRPT 400 Work-term Report |
|
4B Winter |
C |
T |
L |
SE 402 Seminar |
1 |
-- |
-- |
SE 465 Software Testing and Quality Assurance |
3 |
1 |
3 |
ATE Advanced Technical Elective |
3 |
+ |
+ |
ATE Advanced Technical Elective |
3 |
+ |
+ |
ATE Advanced Technical Elective |
3 |
+ |
+ |
LE Linkage Elective |
3 |
+ |
+ |
|
* Alternate weeks
** One hour of discussion per week
Five Advanced Technical Electives (ATE):
Advanced technical electives expose students to advanced software technologies, domain-specific designs, and large applications, on which they can practice their software-engineering skills. The advanced technical electives comprise primarily third- and fourth-year course offerings in CS or ECE.
One of the following CS courses (CS List):
CS 341 Algorithms
CS 360 Introduction to the Theory of Computing
CS 370 Numerical Computation
CS 442 Principles of Programming Languages
CS 444 Compiler Construction
CS 450 Computer Architecture
CS 452 Real-time Programming
CS 454 Distributed Systems
CS 462 Formal Languages and Parsing
CS 466 Algorithm Design and Analysis
CS 472 Numerical Solution of Large Sparse Systems of Equations
CS 476 Numeric Computation for Dynamic Simulation
CS 486 Introduction to Artificial Intelligence
CS 487 Introduction to Symbolic Computation
CS 488 Introduction to Computer Graphics
SE 498 Advanced Topics in Software Engineering
One of the following ECE courses (ECE list):
ECE 318 Communication Systems
ECE 324 Microprocessor Systems and Interfacing
ECE 380 Analog Control Systems
ECE 411 Digital Communications
ECE 412 Coded Digital Communications
ECE 413 Digital Signal Processing
ECE 414 Wireless Communications
ECE 418 Communications Networks
ECE 427 Digital Systems Engineering
ECE 429 Computer Structures
ECE 454 Distributed and Network Computing
ECE 457 Applied Artificial Intelligence
ECE 484 Digital Control Applications
ECE 486 Robot Dynamics and Control
ECE 488 Multivariable Control Systems
Two additional courses from the CS and ECE lists
One of
An additional course from the ECE and CS Lists
SYDE 524 Embedded Real-Time Systems Design
SYDE 533 Conflict Analysis
SYDE 558 Fuzzy Logic and Neural Networks
SYDE 575 Image Processing
ECE 391, 492A, 492B Engineering Design Project
SE 499 Project
Two Science Electives (SCE)
Normally these courses are in the natural sciences, chosen from the list below. Alternate courses may be chosen in consultation with the SE Program Advisors.
Science Elective Courses:
BIOL 130 (including 130L), 139, 140, 273, CHE 161, CHEM 28 (including 28L), EARTH 121 (including 121L), PHYS 122 (including 122L), 125, 234, 246, 275, 334, 375
Five Linkage Electives (LE)
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.
One course on Societal Issues:
CS 492, Complementary Studies Elective List A
One course on Communication:
ENGL 109, 119, 140R, 210F, 219, SPCOM 100, 223, 324, 432
Two additional courses on Humanities and Social Sciences:
Complementary Studies Elective List C
One additional course:
BUS 111W, 121W, MTHEL 400; Complementary Studies Elective List D; a foreign-language linguistics or grammar course; another course from the above three lists.
Notes
- Although the curriculum specifies the terms in which the various flavours of electives (ATE, SCE, LE) can be taken, students can alter this sequence with the consent of the SE Program Advisor.
- Students enrolled in Software Engineering will only be permitted to use the WD and WF provisions used in the Faculty of Mathematics to withdraw from extra courses taken above and beyond the degree requirements.
- CS 341 can count as an ATE only if the student takes CS 240 and CS 341 in lieu of SE 240; this decision must be made before the 2B term.
- CS 466 can be taken as an ATE only if the student takes CS 341, either as an ATE (see Note 3) or as an extra (NRNA) course.
- Foreign-language courses must be approved by the SE advisor.
Four 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 program 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 transcripts. Once a failure has cleared, the original grade will still be listed on transcripts but will be annotated with a credit (CR) in the "sup" field.
Technical Presentation Milestone (TPM)
Each student registered in Software Engineering is required to satisfy the Technical Presentation Milestone (TPM) during his or her 2B term. If admitted to the Software Engineering program after 2B, then the student must satisfy this requirement before the end of the student's first academic term in the program. The topic of the presentation is expected to be some aspect of the work-term report that the student submits in his or her 2B term. The details of the TPM requirement are provided during the student's 2A term, so that the student can plan appropriately for the presentation during the work term preceding 2B. A student who is interested in formal instruction on how to develop and deliver an oral presentation should consider taking SPCOM 223.