- What was John Backus's key idea for a compiler that could translate mathematical notation into machine code?
- Why were engineers surprised by how efficient the code FORTRAN's compiler produced actually was?
Operating Systems and Software
System software and the engineering of programs.
- What role did Alan Perlis play in designing ALGOL, and why is it considered the ancestor of languages like Pascal, C, and Java?
- Which programming language features pioneered by LISP spread into later languages?
- What was Dijkstra's argument against the GOTO statement in his famous Turing Award-era writing?
- What were the EWDs, and why are Dijkstra's handwritten manuscripts still read today?
- Why did the Altair 8800 episode prove that software mattered more than hardware in personal computing?
- Why were Backus's colleagues skeptical that a compiler could produce machine code efficient enough to replace hand-written assembly?
- What are preconditions, postconditions, and loop invariants, and how do they let you prove a program correct?
- How did Robert Floyd's 1967 paper 'Assigning Meanings to Programs' lay the groundwork for Hoare logic?
- Where is formal program verification used today in situations where a software bug would be catastrophic?
- What is Hoare logic, and how does it use preconditions and postconditions to prove a program behaves as specified?
- Why did Tony Hoare call the null pointer his 'billion-dollar mistake'?
- What is the Unix philosophy of small tools and pipes, and why did it spread into so many later operating systems?
- Which modern operating systems trace their design back to Thompson and Ritchie's work at Bell Labs?
- What design philosophy did Niklaus Wirth pursue across Euler, ALGOL W, Pascal, and Modula?
- What does Wirth's Law claim about the relationship between software and hardware performance over time?
- Where do Hopcroft and Tarjan's algorithms show up invisibly in modern computing infrastructure?
- What is temporal logic, and why did Amir Pnueli think it was suited to describing computer programs?
- How does temporal logic let you express properties like 'the system will eventually respond' with mathematical precision?
- What discipline grew out of Pnueli's 1977 paper, and what does it let computers do?
- What went wrong on IBM's OS/360 project that Fred Brooks later analysed in The Mythical Man-Month?
- Why does adding programmers to a late software project make it later, according to Brooks's law?
- What is the 'surgical team' model Brooks proposed as an alternative staffing structure?
- Why did programmers in the 1960s and 1970s choose to represent years with only two digits?
- Roughly how much did governments and companies spend worldwide on Y2K remediation?
- Why did storing years as two digits threaten computer systems at the 1999-to-2000 rollover?
- How much was spent worldwide preparing for the Y2K bug, and on what?
- What problem with simulating ships in a harbor led Dahl and Nygaard to invent the programming language Simula?
- What is a 'class' in object-oriented programming and how did Simula introduce the concept?
- How did the ideas in Simula spread into Smalltalk, C++, and Java over the following decades?
- What made the Smalltalk language a paradigm shift rather than an added feature?
- What techniques did Frances Allen develop for analyzing programs before they run?
- How do data-flow analysis and loop transformations make compiled programs run faster?
- What is model checking and how does it differ from testing a system by running it?
- Why can't ordinary software testing catch the rare-corner bugs that matter most in safety-critical systems?
- Where is model checking used today, such as in processor design or protocol verification?
- What does the Liskov Substitution Principle require of a subclass so it can safely replace its parent class?
- What does Lamport's TLA+ specification language let engineers do before deploying a distributed algorithm?
- What theoretical foundations did Aho and Ullman provide for compiler design at Bell Labs?
- Why is the 1977 textbook known as the 'Dragon Book' still a standard reference for computer science students?
- How do Aho and Ullman's algorithms still operate, invisibly, in every compiler and interpreter used today?
- What software libraries did Jack Dongarra build that underpin modern scientific computing?
- How does the Message Passing Interface standard let code run across thousands of processors?
- Why did LINPACK become the benchmark for ranking the world's fastest supercomputers?
- How did JPL engineers write and transmit a software patch to fix a spacecraft 24 billion kilometres away?
- How does Pattern-Oriented Instructional Design (POID) model instructional design as a connection of reusable patterns?
- What role do GoalPattern, ProcessPattern, and ContentPattern play in systematizing the design of educational technologies?