SWEN 438Special Topic: Automated Program Analysis
The course will look at different techniques that can be used to automatically discover bugs and vulnerabilities in software. The course covers both static and dynamic techniques and discusses the pros and cons of various approaches. Students will develop their own program analyses, and learn how to use existing state-of-the-art tools.
On this page
Course details
- Dates
- 7 Jul 2025 to 9 Nov 2025
- Starts
- Trimester 2
- Fees
- NZ$1,197.60 for
- International fees
- NZ$5,477.70
- Lecture start times
- Monday 11.00am
- Wednesday 11.00am
- Campus
- Kelburn
- Estimated workload
- Approximately 150 hours or 8.8 hours per week for 17 weeks
- Points
- 15
Entry restrictions
- Prerequisites
- COMP 261, 30 300-level points from COMP, CYBR, NWEN, SWEN
- Corequisites
- None
- Restrictions
- None
Taught by
School of Engineering and Computer Science—Faculty of Engineering
About this course
This course focuses on engineering practices for automated software quality assessment, covering both source code and binary analysis. It explores a range of static and dynamic techniques used to evaluate software quality.
Building on knowledge from 300-level software engineering courses, students will apply these concepts in weekly labs, alternating with help desk sessions designed to support progress on assignment tasks.
Course learning objectives
Students who pass this course will be able to:
Explain the basic principles of static and dynamic program analysis.
Assess the properties of different program analyses with respect to recall, soundness, precision, provenance and scalability.
Use the standard program representations and computational models for static program analysis.
Use state-of-the-art static program analysis tools for bug and vulnerability detection, and interpret the analysis results.
Understand and use code instrumentation.
Use advanced testing techniques including automated input and test generation.
Explain the causes of test flakiness and strategies how to mitigate them.
Write formal grammars to define domain-specific languages and generate parsers for those grammars.
How this course is taught
During the trimester there will be two lectures and four hours of help desk per week.
Assessment
- Exam (2 hours, during assessment period) Type: IndividualMark: 40%
- Assignment 1 Type: IndividualMark: 20%
- Assignment 2 Type: IndividualMark: 20%
- Assignment 3 Type: IndividualMark: 20%
Assessment dates and extensions
Once you've signed up to this course, you can use to see due dates for assessments and information about extensions.
Mandatory requirements
There are no mandatory requirements for this course.
Group work
This course includes two individual assessment items based on group work over Course Weeks 2-12 including the mid-trimester break.
Lecture times and rooms
What you’ll need to get
You do not need to get any texts or equipment for this course.
Who to contact

Selected offering
SWEN 438
7 Jul–9 Nov 2025
Trimester 2 · CRN 18597