- Wirth - "Program development by stepwise refinement" - which pointed out that a program is a series of design decisions, and these decisions give rise to a family of related programs, corresponding to different design choices.
- Parnas - "Information Distribution Aspects of Design Methodology". I haven't read this one! I thought I had read all his papers. It sounded a lot like his modularity paper. "The connections between modules are the assumptions that the modules make about each other."
- Liskov - "A Design Methodology for Reliable Systems"
- Balzer - Dataless Programming - I read this one a long time ago but I don't remember it and ought to read it again
- Dahl and Hoare - Hiearchical Program Structures", in "Structured Programming" from 1972.
- Morris - "Protection in Programming Languages" - I don't think I read this one
- Wolf and Shaw - "Global Variables Considerd Harmful"
- Liskov and Zilles - "Programming with Abstract Datatypes"
- Goodenough - "Exception Handling" Issues and a Proposed Notation"
The world has changed! Students tend to think these papers are boring. "Everybody knows that!"Boring possibly given today's "advances" from there, but too many fundamentals and much history is ignored and deliberately forgotten in computer science. Time to re-read and re-learn the principles in some of these - maybe we haven't "advanced" so much at all..