Schedule
The table below shows the topics intended to be covered in each week of semester. The order or delivery date of lectures on this page may change during the semester.
- For lecture slides and lab worksheets see the Resources page.
- For recordings of the lectures, visit UWA’s LMS (Learning Management System).
Recommended readings
In most cases, a good C textbook and a good operating systems textbook will cover all the background you need to know for a topic on the schedule.
However, if something in the lectures or labs is unclear, you may find it useful to refer to a textbook on security or secure coding. Unfortunately there is no one textbook that covers all the topics we look at in CITS3007, but the schedule below gives recommended readings for each topic. Online copies of most readings are available via the LMS (look under “Unit Readings”). The readings may be added to or modified as the semester progresses.
References in the reading list are to the sources listed here (click here to expand):
- Good11
-
- Goodrich, M, and R Tamassia, Introduction to Computer Security (Pearson, 2011)
- Koh21
-
- Kohnfelder, L, Designing Secure Software (No Starch Press, 2021)
- Sea13
-
- Seacord, R, Secure Coding in C and C++ (2nd ed; Addison-Wesley, 2013)
- Sea20
-
- Seacord, R, Effective C: An Introduction to Professional C Programming (No Starch Press, 2020)
- Smi08
-
- Smith, S and J Marchesini, The Craft of System Security (Addison-Wesley, 2008)
- Vie03
-
- Viega, J and M Messier, Secure Programming Cookbook for C and C++ (O’Reilly Media, 2003)
Week | Lecture | Lab | Reading | Assessment |
---|---|---|---|---|
1
26 Feb |
|
No labs this week |
|
|
2
4 Mar |
Memory and arithmetic errors |
Linux C development environment |
|
|
3
11 Mar |
Access control |
Static and dynamic analysis tools |
|
|
4
18 Mar |
Input validation and sanitization |
String-handling and |
|
|
5
25 Mar |
Program analysis and testing |
Memory and arithmetic errors |
|
|
1 Apr |
no class – non-teaching week |
|||
6
8 Apr |
Concurrency bugs |
Input validation and IPC |
|
|
7
15 Apr |
Inter-process communication |
Multi-language analysis tools |
|
|
8
22 Apr |
Secure software development |
Fuzzing |
|
|
9
29 Apr |
Secure software development |
TBA |
Refer to previous week |
|
10
6 May |
Cryptography introduction |
Race conditions and secure file operations |
|
|
11
13 May |
Cryptography |
Cryptography |
Refer to previous week |
|
12
20 May |
revision |
no labs |
|