First of all, Dr. Liskov was an amazing and energetic speaker - enough to keep 2000 jet-lagged women wide awake through an intense technical walk through the history or structured programming languages at 8:30 in the morning. Fascinating and inspiring!
My notes mostly come from my twitter feed, as well as Teri Oda's, and the Grace Hopper Conference wiki. Hope you get something from them as well!
Friday morning was full of extreme technical talks, beginning with the 8:30 AM keynote from Barbara Liskov, Professor at MIT and 2008 ACM Turing Award Winner. Dr. Liskov regaled us with the evolution of programming languages by describing a series of must-read papers and the advances she made to this are of the science. She started in computer systems, and in those days, it was the job of the programmer to make up for the lack of
system resources and under provisioned systems.
Dr. Liskov's advice:
- "Reading programs is much more important than writing them." (she notes people will be reading your program for years to come and you only write it once - comment!)
- "Don't try to work on a problem when you get too tired. The solution won't come to you until you're rested."
- "Programmers think in terms of programming languages...if the language supports and idea it's much more accessible to them."
- "Dataless Programming", R. M. Balzer, 1967.
- "Go To Statement Considered Harmful", E. Dijkstra, 1968.
- "Definition mechanisms in extensible programming languages", S. Schuman, P. Jorrand, 1970.
- "Hierarchical program structures", O. Dahl, C. A. R. Hoare, 1972.
- "Program Development by Stepwise Refinement", N. Wirth, 1971.
- "Information Distribution Aspects of Design Methodology", D.L. Parnas, 1971.
- "Global variable considered harmful", W. Wulf, M. Shaw, 1973.
- "Programming with abstract data types", B. Liskov, S. Zilles, 1974.
- "The connections between modules are the assumptions which the modules make about each other." Parnas in Liskov, 1980
- "A design methodology for reliable software systems.", B. Liskov, 1972.
- "Data abstraction and hierarchy", B. Liskov, 1987.
want students to learn. C# and Java have those, but are harder to learn."
[Update: Thank you, Kelly, for the additional papers!]