CMPT 479/745: Software Engineering
Spring 2026

Instructor:Nick Sumner
Mode:In person
Venue:Tuesday: AQ 5037 2:30-4:20
Thursday: AQ 4150 2:30-3:20
Email:wsumner@sfu.ca
Discussion Forums:On CourSys
Office:TASC1 9421
Office Hours:Thursday: 3:30-4:30
TA:Check CourSys

Software development is a time consuming and error prone process. This course will explore aspects of modern software engineering including design, reliability, performance, and security. Beyond manual design and programming issues, students will gain experience with cutting edge techniques for automating aspects of software engineering and treating programs themselves as data that can be analyzed and transformed.

The material will be hands on, with several small projects in a variety of programming languages throughout the semester. Students will also be expected to complete a group term project in a direction of their choice based on material from the course. The term project will involve building a tool that automates some useful analysis/task within software engineering.

Roughly the first few weeks will cover more introductory material, while the later weeks will cover more advanced material, tentatively exploring:

Given the compressed summer Monday timeline, the schedule is tentative and subject to change. Where Mondays are cancelled, we will have an optional fallback session where any required course content will be recorded.

Reading

No books must be purchased, however, several books have may provide useful references. Some freely available books will be used for required reading. Several papers will also be required reading, either freely available or available through the SFU library proxy.

Reference Books:

Grading

Students must attain a C- or better on the final exam in the course in order to obtain a C- or better in the class.

Note, while attendance is not mandatory, students who do not attend class will most likely fail.

Late Policy

All students have up to 3 days that they can spend throughout the semester to submit exercises late. To use a late day, make a submission to the Late Days assignment on CourSys and then email the TA. You may use as many of the 3 days at a time as you wish. Fill an entry on CourSys for each day that you are using.

Academic Honesty & AI

Academic honesty plays a key role in our efforts to maintain a high standard of academic excellence and integrity. Students are advised that ALL acts of intellectual dishonesty will be handled in accordance with the SFU Academic Honesty and Student Conduct Policies (http://www.sfu.ca/policies/gazette/student.html).

Sharing of solutions to exercises constitutes dishonesty. Note that making solutions to exercises available (e.g. on github) constitutes academic dishonesty even after the class has ended. However, team solutions to the term project explicitly are allowed to be made public with team consent.

Within this course, use of AI on exercises interferes with the learning outcomes and also constitutes a violation of academic integrity. If you otherwise use Copilot and other AI tools, avoid them or disable them when working on tasks for course to avoid accidental violations.

Use of AI within the term project is encouraged for non-writing tasks but is not allowed for the writing of final project papers.

Accommodations

All student requests for accommodations for religious practices must be made in writing by the end of the first week of classes or no later than one week after a student adds a course. Students requiring accommodations as a result of a disability must contact the Centre for Accessible Learning (caladmin@sfu.ca).