Papers, die man gelesen haben muss
Davon gibt es natürlich viele. Und auch viele Listen von Papers, die man gelesen haben muss. Das Problem dabei
ist, dass diese Listen entweder sehr kurz (und/oder allgemein, etwa diese hier oder sehr lang (und/oder speziell, etwa diese hier sind. Ausserdem hat da natürlich jeder Autor seine eigene Meinung. Hier also meine Liste ;-)
Allgemeines und historisches
Also die, die wirklich jeder gelesen haben sollte
- Vannevar Bush, As we may think, 1945
Bush beschreibt hier die Memex, eine mechanische Version des WWW. Das Prinzip von
Hypertext-Systemen und kollaborativen Texten wie Wikipedia wird hier ebenso vorweggenommen wie google glass
- Mark Weiser, The computer for the 21st century, Scientific american, 1991, im Netz z.B. hier
- A.M. Turing, Computing Machinery and intelligence, 1950
Turing beschreibt und analysiert hier den berühmnten
Turing-Test zur Entscheidung, ob ein Computer (-Programm) intelligent ist und definiert hierzu Intelligenz als Imitation
menschlichen Verhaltens
- Richard Feynman, Plenty of Room an the Bottom, 1959
Ein Vortrag über die Möglichkeiten der Nanotechnologie
- Richard Feynman, Cargo Cult Science, 1974
Nicht speziell über Computer, aber trotzdem lesenswertes Plädoyer für wissenschaftliches Vorgehen.
- Die Diskussion zwischen Tanenbaum und Torvalds über die Linux-Architektur
- S. Keshav, How to read a paper, 2013
Kein Klassiker, aber eine gute (kurze) Anleitung, wie man eine wissenschaftliche Veröffentlichung liest.
- Barry Schwartz, What 'Learning How to Think' Really Means, eine sehr interessante Reflexion darüber, warum wir das alles hier eigentlich machen.
Programmierung und Programmiersprachen
- Edsger W.Dijkstra, A Case against the GO To Statement, 1968
Das Argument für die strukturierte Programmierung.
- Jack Crenshaw, Let's build a compiler, 1988-1995
Verständliche Einführung in den Compilerbau
- Peter Norvig, Teach Yourself Programming in Ten Years
Eine Antwort auf die ganzen xxx in 21 days Bücher von einem der KI-Gurus
- Bjarne Stroustrup, Sixteen ways to stack a cat, 1990
Verschiedene Programmierstile am Beispiel eines Stacks erklärt
- Paul Graham, The Hundred-Year Language, 2003
Paul Graham analysiert, wie die ideale Programmiersprache aussehen sollte (und landet bei LISP).
Datenbanken
- Der revolutionäre Artikel von F. C. Codd, A Relational Model of Data for
Large Shared Data Banks ist nicht nur der definierende Artikel zu relationalen Datenbanken, vor allem zur Datenunabhängigkeit, sondern einer der einflussreichsten Artikel in der Informatik überhaupt. Diese entscheidende Innovation erklärt wesentlich den Erfolg relationaler Datenbanken. Für seine Arbeit an relationalen Datenbanken erhielt Codd den Turing-Preis, sowas wie den Nobelpreis in der Informatik.
Einen interessanter Blogpost zum Hintergrund und zur Einordnung der Leistung von Codd gibt's hier.
- The design and implementation of INGRES liefert dann die technischen Details, wie man das erreicht. Referenz
- Chen schlug 1976 das Entity Relationship Modell (ERM) vor, das sich breit durchgesetzt hat und bis heute zur konzeptionellen Datenmodellierung verwendet wird.
- J. Hellerstein, M. Stonebraker, J. Hamilton, Architecture of a database system (2007) ist eine vergleichsweise knappe Darstellung dessen, was eine "klassische" relationale Datenbank ausmacht. Quasi ein "one stop shop" von den Datnbank-Gurus. Z.B. hier
- Wer es wirklich wissen will, kommt um die "Readings in Database Systems" aka Redbook nicht rum.
Verteilte Systeme
- Dennis M. Ritchie and Ken Thompson, The UNIX TimeSharing System z.B. hier. Die Grundlage moderner Betriebssysteme.
- Vinton G. Cerf & Robert E. Kahn, A Protocol for Packet Network Intercommunication lesbare Version. Architektur und Core-Protokolle des Internets. Da es (noch) keinen Abschnitt über Netzwerke gibt, halt hier. Das Internet ist ja immerhin das grösste Verteilte System, das es gibt.
- Whitfield Diffie and Martin Hellman, New Directions in Cryptography z.B. hier. Das Paper zur public key Kryptographie und damit die Grundlage für die sichere Kommunikation mit Partnern, die man sonst nicht erreichen kann. Damit Grundlage des eBusiness.
- Russel Sandberg, The Sun Network Filesystem: Design, Implementation and Experience Lesbare Version