This course will introduce you to the mathematical foundations behind programming languages and the principles of rigorous program reasoning. Students will become confident computational thinkers with an appreciation for how software design can be guided by contract-based reasoning and how modern software implementations can be safeguarded by language features such as type systemsand principled program analysis.These techniques are the basis for several professional activities in computer science:- Designing, specifying, and standardising programming languages (e.g. ISO [C/C++], ECMA [JS], W3C [Wasm])- Developing program analysis and bug-finding tools (e.g. Typescript, Facebook's Infer)- Conducting formal verification of safety-critical systems (e.g. CompCert). This course also serves as a gateway to more advanced research topics in computer science, such as type theory, separation logic, and mechanised theorem proving.
Academic Units | 3 |
Exam Schedule | Thu Nov 27 2025 00:00:00 GMT+0000 (Coordinated Universal Time) 17:00-19:00 |
Grade Type | Letter Graded |
Department Maintaining | CSC(CE) |
Prerequisites |
Index | Type | Group | Day | Time | Venue | Remark |
---|---|---|---|---|---|---|
10519 | LEC/STUDIO | SCL4 | MON | 0930-1120 | ONLINE | Teaching Wk10 |
10519 | LEC/STUDIO | SCL4 | MON | 0930-1120 | LT20 | Teaching Wk1-9,11-13 |
10519 | TUT | SCEL | MON | 1130-1220 | ONLINE | Teaching Wk10 |
10519 | TUT | SCEL | MON | 1130-1220 | LT20 | Teaching Wk2-9,11-13 |
0930
1030
1130
1230
1330
1430
1530
1630
1730
SC3270
LEC/STUDIO | ONLINE
Teaching Wk10
SC3270
TUT | ONLINE
Teaching Wk10
SC3270
LEC/STUDIO | LT20
Teaching Wk1-9,11-13
SC3270
TUT | LT20
Teaching Wk2-9,11-13
We would encourage you to review with the following template.
AY Taken: ...
Assessment (Optional): ...
Topics (Optional): ...
Lecturer (Optional): ...
TA (Optional): ...
Review: ...
Final Grade (Optional): ...