New: mobile timetable rebuilt — faster, more reliable, easier to use →

ModsSC3270

Reasoning About Programs

Current offering — AY2026/2027 Semester 1

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.
Total hours per week: 3 hrs

AUs3.0 AUs
Grade Type
PrerequisiteSC2001, SC2301, MH1403, MH1812
Exam26 November 2026, 5.00 pm - 7.00 pm

The Exam information shown may be subject to changes. Students are to check the finalised exam timetable with exam seat information, which will be available at the 'Examination Seating Arrangement' webpage, 2 weeks before start of examination.