Skip to menu Skip to content Skip to footer
Course profile

Principles of Program Analysis (CSSE4630)

Study period
Sem 2 2024
Location
St Lucia
Attendance mode
In Person

Course overview

Study period
Semester 2, 2024 (22/07/2024 - 18/11/2024)
Study level
Undergraduate
Location
St Lucia
Attendance mode
In Person
Units
2
Administrative campus
St Lucia
Coordinating unit
Elec Engineering & Comp Science School

Program analysis is used for: code optimisation in compilers, finding programs errors and potential security flaws. This course examines techniques for performing static analysis of computer code and the implementation of software tools for performing such analyses. Topics include: data flow analysis; constraint- based analysis; abstract interpretation; and type and effect systems.

This course investigates advanced forms of program analysis --- mostly static analysis (done without executing the program), but also some kinds of dynamic analysis (symbolic execution, etc).

The goal of program analysis is to learn more about a particular program, to enable:

  • sophisticated compiler optimisations;
  • automatic detection of certain kinds of bugs;
  • automatic guarantees (proofs) that certain class of errors will never occur (for example, null pointer errors or array bounds overflow);
  • detection of possible cyber-security vulnerabilities.

Course requirements

Assumed background

Prerequisite: COMP4403 Compilers and Interpreters

This course builds on COMP4403, so you are assumed to have good understanding of concepts like:

  • how interpreters and compilers work;
  • abstract internal representation of programs in terms of abstract syntax trees and symbol tables;
  • simple type systems that check the well formedness of a program.

You should also have good programming skills (Java / Scala), and good understanding of discrete mathematics and logic.

Prerequisites

You'll need to complete the following courses before enrolling in this one:

COMP4403

Incompatible

You can't enrol in this course if you've already completed the following:

CSSE7630

Course contact

Course coordinator

Associate Professor Mark Utting

EdStem is the preferred place for asking general questions (either privately or publicly).

Individual consultations can be via Zoom or in person by contacting Mark Utting (CSSE4630@eecs.uq.edu.au).

Course staff

Lecturer

Associate Professor Mark Utting

Timetable

The timetable for this course is available on the UQ Public Timetable.

Aims and outcomes

  1. To teach you how to automate the detection of bugs and cyber-security vulnerabilities in programs.
  2. To enable you to evaluate the benefits and limitations of various static and dynamic program analysis techniques.
  3. To empower you to apply existing program analysis tools and to develop new analysis tools.

Learning outcomes

After successfully completing this course you should be able to:

LO1.

Explain the fundamental concepts of program analysis.

LO2.

Evaluate the benefits and limitations of alternative program analysis approaches.

LO3.

Use program analysis tools to automatically find errors or check the correctness of programs.

LO4.

Design and implement correct analysis algorithms for simple program analysis tasks.

Assessment

Assessment summary

Category Assessment task Weight Due date
Quiz Test 1: concept quizzes
  • Online
10%

31/07/2024 2:00 pm

13/08/2024 1:00 pm

28/08/2024 2:00 pm

11/09/2024 2:00 pm

Computer Code Assignment 1: Static Analysis
  • Online
20%

3/10/2024 4:00 pm

Computer Code Assignment 2: Dynamic Analysis
  • Online
10%

25/10/2024 4:00 pm

Examination Final Exam
  • Hurdle
  • Identity Verified
  • In-person
60%

End of Semester Exam Period

2/11/2024 - 16/11/2024

A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.

Assessment details

Test 1: concept quizzes

  • Online
Mode
Written
Category
Quiz
Weight
10%
Due date

31/07/2024 2:00 pm

13/08/2024 1:00 pm

28/08/2024 2:00 pm

11/09/2024 2:00 pm

Other conditions
Time limited.

See the conditions definitions

Learning outcomes
L01, L02

Task description

These fortnightly concept quizzes will test your understanding of the program analysis concepts and techniques covered in the first half of the course, including static analysis concepts, type systems, lattice theory, dataflow analysis, and fixed-point algorithms.

Submission guidelines

This test will be an online quiz typically conducted during the second half of the Wednesday computer workshop sessions, on even weeks (2,4,6,8).

However, Week 4 has a public holiday on that Wednesday, so the quiz will be done in the second half of the Tuesday lecture, 13 August 2024.

Deferral or extension

You cannot defer or apply for an extension for this assessment.

No extensions available and 100% late penalty applied for the weekly online quizzes. To accommodate unforeseen circumstances such as illness, your quiz score will be based on the best 3 out of 4 submissions.

Late submission

You will receive a mark of 0 if this assessment is submitted late.

Assignment 1: Static Analysis

  • Online
Mode
Product/ Artefact/ Multimedia
Category
Computer Code
Weight
20%
Due date

3/10/2024 4:00 pm

Learning outcomes
L03, L04

Task description

This assignment involves extending a static analysis tool to handle additional language features, to perform new kinds of analysis, and to compare the results against other analysis tools. Full details of the language extensions and files for the static analysis tool will be provided via Blackboard.  The use of generative AI tools to aid with programming or writing is permitted provided you explain how you have used them, where you have used them, and correctly reference the tool that you used.

Submission guidelines

The assignments will be collected electronically via online submission. Your assignment submission must be accompanied by a declaration that your submission is your original work.

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

Marked assignments with feedback and/or detailed solutions with feedback will be released to students within 7-14 days.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

Assignment 2: Dynamic Analysis

  • Online
Mode
Product/ Artefact/ Multimedia
Category
Computer Code
Weight
10%
Due date

25/10/2024 4:00 pm

Learning outcomes
L03, L04

Task description

This assignment will involve using dynamic program analysis tools to detect bugs in programs and to measure and maximise test coverage.

The detailed files and instructions for this task will be available on Blackboard.  The use of generative AI tools to aid with programming or writing is permitted provided you explain how you have used them, where you have used them, and correctly reference the tool that you used.

 

Submission guidelines

The assignments will be collected electronically via online submission. Your assignment submission must be accompanied by a declaration that your submission is your original work.

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

Marked assignments with feedback and/or detailed solutions with feedback will be released to students within 7-14 days.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

Final Exam

  • Hurdle
  • Identity Verified
  • In-person
Mode
Written
Category
Examination
Weight
60%
Due date

End of Semester Exam Period

2/11/2024 - 16/11/2024

Other conditions
Time limited.

See the conditions definitions

Learning outcomes
L01, L02, L03

Task description

Delivery Mode  On-campus in-person paper-based invigilated central exam.

Timing  The final exam will be scheduled at a fixed time for all students – i.e. students will complete the exam simultaneously.

Permitted Materials  The exam is closed book, but students may bring one double sided A4 page of notes into the exam. Communication with other people is not permitted.

More details on the content of the final examination will be provided via the course web page on BlackBoard.

Hurdle requirements

At least 40% in the exam is needed to pass the course.

Exam details

Planning time 10 minutes
Duration 120 minutes
Calculator options

Any calculator permitted

Open/closed book Closed Book examination - specified written materials permitted
Materials

One double-side A4 pages of notes permitted. Must be submitted with the exam.

Exam platform Paper based
Invigilation

Invigilated in person

Submission guidelines

Deferral or extension

You may be able to defer this exam.

Course grading

Full criteria for each grade is available in the Assessment Procedure.

Grade Description
1 (Low Fail)

Absence of evidence of achievement of course learning outcomes.

Course grade description: 0% <= MARK < 20%

2 (Fail)

Minimal evidence of achievement of course learning outcomes.

Course grade description: 20% <= MARK < 45%

3 (Marginal Fail)

Demonstrated evidence of developing achievement of course learning outcomes

Course grade description: 45% <= MARK < 50% and Exam >= 40%

4 (Pass)

Demonstrated evidence of functional achievement of course learning outcomes.

Course grade description: 50% <= MARK < 65% and Exam >= 40%

5 (Credit)

Demonstrated evidence of proficient achievement of course learning outcomes.

Course grade description: 65% <= MARK < 75% and Exam >= 55%

6 (Distinction)

Demonstrated evidence of advanced achievement of course learning outcomes.

Course grade description: 75% <= MARK < 85% and Exam >= 65%

7 (High Distinction)

Demonstrated evidence of exceptional achievement of course learning outcomes.

Course grade description: 85% <= MARK <= 100% and Exam >= 75%

Additional course grading information

The assessment consists of a test (T1), two assignments (A1 and A2), and a final examination (Exam). You should complete all three progressive assessments and the final examination.

Your total MARK for the course will be calculated as follows:

ᅠᅠᅠ MARK = 0.1*T1 + 0.2*A1 + 0.1*A2 +0.6*Exam

where T1, A1 and A2 stand for the test/assignment marks (out of 100) and Exam stands for your examination mark (out of 100).

The final mark will be rounded to the nearest whole number. At the discretion of the course coordinator, final grades may be scaled.

Supplementary assessment

Supplementary assessment is available for this course.

Additional assessment information

Having Troubles?

If you are having difficulties with any aspect of the course material you should seek help. Speak to the course teaching staff.

If external circumstances are affecting your ability to work on the course, you should seek help as soon as possible. The University and UQ Union have organisations and staff who are able to help, for example, UQ Student Services are able to help with study and exam skills, tertiary learning skills, writing skills, financial assistance, personal issues, and disability services (among other things).

Complaints and criticisms should be directed in the first instance to the course coordinator. If you are not satisfied with the outcome, you may bring the matter to the attention of the School of EECS Director of Teaching and Learning.


Artificial Intelligence (AI) and Machine Translation (MT) are emerging tools that may support students in completing these assessment tasks. Students may appropriately use AI and/or MT in completing these assessment tasks. Students must clearly reference any use of AI or MT in each instance. A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct.

Learning resources

You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.

Library resources

Find the required and recommended resources for this course on the UQ Library website.

Additional learning resources information

The course discussion board will use EdStem. You will receive an email with directions about this in Week 1.

We will be using several program analysis frameworks, including the following:

Learning activities

The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.

Filter activity type by

Please select
Clear filters
Learning period Activity type Topic
Multiple weeks

From Week 1 To Week 13
(22 Jul - 27 Oct)

Problem-based learning

Monday Problem-Based-Learning Session

The problem-based-learning session each week will be used to work through a series of exercises collaboratively as a class and individually, as well as introduce new concepts (short lectures), and new tools (interactive demos).

This problem based learning session will sometimes involve teaching staff helping individual students at close range. Please feel free to wear a face mask if you wish to.

Learning outcomes: L01, L02, L03, L04

Lecture

Tuesday Lecture

The lecture each week will be used to introduce new material and to work through examples.

This lecture will be face-to-face, but recorded for students who cannot join the live class.

Learning outcomes: L01, L02, L03, L04

Workshop

Workshop / Practical session

Work through concept and programming exercises, using program analysis tools, and writing analysis algorithms.

This workshop will sometimes involve teaching staff helping individual students at close range, e.g. at a computer screen. Please feel free to wear a face mask if you wish to.

Learning outcomes: L03, L04

Policies and procedures

University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:

Learn more about UQ policies on my.UQ and the Policy and Procedure Library.

School guidelines

Your school has additional guidelines you'll need to follow for this course: