Session 1: Why Our Code Breaks (and What a Proof Is)
Overview
Orientation session. We look at software that passed its tests and failed anyway, then turn to what it means to prove something and what a well-written proof looks like on paper.
Lecturer
Jad Abou Hawili — Teaching Assistant (jka15@mail.aub.edu) (CS + Applied Math Alumnus)
Session Information
- Date and Time: Monday 21 September 2026 — 17:30-19:30
- Place: Nicely 212
- Online Meeting Link
- Meeting Number: 2550 601 9224
- Session Recording (not available due to technical issues)
Core Concepts
- Course mechanics: structure, the five problem sets, certification, and the academic integrity policy
- Real-world software disasters: Ariane 5 ($370M, integer overflow), Therac-25 (race condition, patient deaths), and Heartbleed (buffer over-read) vulnerabilities
- The limits of testing: finite inputs vs infinite possibilities, Dijkstra’s principle, and a live demo
- Statements, hypotheses, conclusions; the anatomy of a proof
- True vs provable
- Basic set notation as vocabulary: ∈, ⊆, ∪, ∩, , ∅, and set-builder notation
- What a well-written proof looks like on paper and its “marking criteria”
Slides
Session 1 Slides: Download PDF
Credit: The above slides were prepared by Daniel Dia.
Readings
Exercises & Extra Steps
- Practice (not collected): write out, in full sentences, a proof that the sum of two even integers is even
Navigation
Questions? Reach out on the course WhatsApp!