Thinking for Programmers by Leslie Lamport.
From the webpage:
Leslie Lamport inventor of Paxos and developer of LaTeX introduces techniques and tools that help programmers think above the code level to determine what applications and services should do and ensure that they do it. Depending on the task, the appropriate tools can range from simple prose to formal, tool-checked models written in TLA+ or PlusCal.
Deeply impressive but marred by the lack of video and the slides from the presentation.
My favorite quote from the presentation:
“Writing is nature’s way of letting you know how sloppy your thinking is.” Guindon.
Leslie talks about the his use of TLA, which:
stands for the Temporal Logic of Actions, but it has become a shorthand for referring to the TLA+ specification language and the PlusCal algorithm language, together with their associated tools.
Advocates creating and debugging specifications as opposed to debugging code.
Would better design avoid future Heartbleed bugs?