CMPT 479 / CMPT 745: Software Engineering
Spring 2021

Instructor:Nick Sumner
Venue:MWF - Canvas Video - 3:30-4:20
Mode:Live Streamed & Recorded
Email:wsumner@sfu.ca
Class mailing list:cmpt-745@sfu.ca (archive)
Discussion Forums:On CourSys
Office:On Discord
Office Hours:Wednesday - 4:30-5:30
TA: Shadab Romani

NOTE: Due to Covid-19, this class will be streamed live with recordings made available afterward. In some cases, recordings may be made in advance, and class time may be used for additional discussion. To take full advantage of the course, students should plan to attend the live streams and ask questions.


Software development is a time consuming and error prone process. This course will explore modern aspects of 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 primarily lecture oriented, but several days in class will be set aside for working through material and gaining practical experience. 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 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 two weeks will cover more introductory material, while the later weeks will cover more advanced material, tentatively exploring:

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

Assignments: 50% Exams: 25% Term Project: 25%

Late Policy

All students have up to 3 days that they can spend throughout the semester to submit small assignments 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 Statement

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 during or after the course constitutes academic dishonesty. Do not post your solutions to assignments to GitHub.