A Computer Science Canon

“The classics are those books about which you usually hear people saying: ‘I’m rereading…’, never ‘I’m reading…’” – Italo Calvino, Why read the classics? Italian publishing 1991, translated 1999.

These writings comprise my list of the classics in computer science. In recognition of the inevitable for all efforts of this nature, the list below is biased and subjective. While I have included several historical works, many of the contemporary works have been selected on the basis of personal interest. For a more comprehensive look at the historical works, I strongly recommend Creating a computer science canon: A course of classic readings in computer science by Michael Eisenberg at the University of Colorado. My purpose of creating such a list is twofold; to enumerate those works that have profoundly shaped the computer science community, and to list those works that have influenced my own research and education. The list below strikes a balance of these two interests. Suggestions, criticisms, or comments are always appreciated.

? - 1969

1970 - 1979

1980 - 1989

1990 - 1999

2000 - 2009

2010 - present

See also Creating a computer science canon: A course of classic readings in computer science, Michael Eisenberg. University of Colorado.

On Teaching

Data Structures

“Algorithms + Data Structures = Programs” - Niklaus Wirth