Emerald Bay, Lake Tahoe

Software Engineering (CSE 403), Autumn 2026


Software engineering goes well beyond programming. It includes processes from defining a product to shipping and maintaining that product. Software engineering requires strong technical skills, but also strong teamwork and communication skills. Get ready to learn software engineering principles first hand, improve your technical skills, and ship a product.

Meetings

Staff

Please send all general inquiries to cse403-staff(at)cs.washington.edu

If necessary, you can provide anonymous feedback.

To request an appointment, send an email listing several times you are available.

Communication

Course project


Syllabus

Course description

In this course, students learn software engineering principles, techniques, and tools, and students gain practical experience with them. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. The practical experience centers on a quarter-long team project, in which a software development project is carried through all the stages of the software life cycle. Particular emphasis is placed on communication skills and on developing maintainable software. In-class activities further provide a hands-on experience in using state-of-the-art techniques and tools.

Prerequisites

Course format

The class meets three times a week for lectures. Additionally, individual groups meet twice a week during section (Tuesday and Thursday) for team and project meetings. The Tuesday and Thursday meetings are required. All class meetings are in-person. Classroom material is enhanced with assigned readings and in-class activities. A major component of the course is teamwork on a group project. Individual contributions include reading assignments, peer review, and participation.

Grading

Grades will be based on a group project, in-class exercises, assignments, and participation:

Late policy

Assignments must be submitted on Canvas by the due date and time. Unless otherwise noted, all times are given in PDT (Pacific Time). The submission site remains open for 24 hours after the deadline. Assignments submitted within 24 hours after the deadline will incur a 20% penalty. Assignments will not be accepted after the submission site is closed.

You can find the general course policies here.


Schedule

Date Topic Materials Readings Assignments

09/30 Introduction Pitch pairs (due 10/01)
Project pitch (due 10/06)
10/01 Project pitch work Due: Pitch pairs
10/02 The Joel Test

10/05 Software development life cycle
10/06 Scrum and teams Due: Project pitch
10/07 Requirements and use cases Project preferences (due 10/07)
Team setup (due 10/08)
10/08 Project group forming Due: Team setup
Requirements (due 10/13)
10/09 In-class activity

10/12 In-class activity
10/13 Team meeting Due: Requirements
10/14 Architecture Architecture & Design (due 10/20)
10/15 Project meeting
10/16 Design and style

10/19 Data modelling
10/20 Team meeting Due: Architecture & Design
10/21 Best practices Testing & CI (due 10/27)
10/22 Project meeting
10/23 Testing and CI

10/26 Testing part 2
10/27 Team meeting Due: Testing & CI
10/28 Version control and Git Beta Release (due 11/03)
10/29 Project meeting
10/30 In-class exercise (Code defenders) In-class: Code defenders (due 10/30)

11/02 Build systems
11/03 Team meeting Due: Beta Release
11/04 Exam review: come with questions Usability (due 11/10)
11/05 Project meeting
11/06 Midterm exam

11/09 Mutation-based testing
11/10 Team meeting Due: Usability
11/11 No class (Veterans Day) Peer Review (due 11/17)
11/12 Project meeting
11/13 In-class exercise (Testing) In-class: Testing (due 11/13)

11/16 Debugging
11/17 Team meeting Due: Peer Review
11/18 In-class exercise (Debugging) Users (due 11/24)
In-class: Debugging (due 11/18)
11/19 Project meeting
11/20 Test automation

11/23 Program analysis
11/24 Team meeting Due: Users
11/25 In-class exercise (AI-assisted coding) Final Release (due 12/01)
In-class: GenAI (due 11/25)
11/26 No class (Thanksgiving)
11/27 No class (Native American Heritage Day)

11/30 Advanced program analysis
12/01 Team meeting Due: Final Release
12/02 Optional in-class exercise (Z3) Individual reflection (due 12/08)
In-class: Z3 (due 12/02)
12/03 Project meeting: demos
12/04 Exam

12/09 No meeting in final exam slot