Course coordinator
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).
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:
Prerequisite: COMP4403 Compilers and Interpreters
This course builds on COMP4403, so you are assumed to have good understanding of concepts like:
You should also have good programming skills (Java / Scala), and good understanding of discrete mathematics and logic.
You'll need to complete the following courses before enrolling in this one:
COMP4403
You can't enrol in this course if you've already completed the following:
CSSE7630
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).
The timetable for this course is available on the UQ Public Timetable.
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.
Category | Assessment task | Weight | Due date |
---|---|---|---|
Quiz |
Test 1: concept quizzes
|
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
|
20% |
3/10/2024 4:00 pm |
Computer Code |
Assignment 2: Dynamic Analysis
|
10% |
25/10/2024 4:00 pm |
Examination |
Final Exam
|
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.
31/07/2024 2:00 pm
13/08/2024 1:00 pm
28/08/2024 2:00 pm
11/09/2024 2:00 pm
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.
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.
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.
You will receive a mark of 0 if this assessment is submitted late.
3/10/2024 4:00 pm
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.
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.
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.
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.
25/10/2024 4:00 pm
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.
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.
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.
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.
End of Semester Exam Period
2/11/2024 - 16/11/2024
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.
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 |
You may be able to defer this exam.
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% |
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 is available for this course.
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.
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.
Find the required and recommended resources for this course on the UQ Library website.
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:
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Learning period | Activity type | Topic |
---|---|---|
Multiple weeks From Week 1 To Week 13 |
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 |
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.
Your school has additional guidelines you'll need to follow for this course: