Course Information

Course Description

Analysis and discussion of seminal works in computer science. Emphasis on works that changed the course of computing and continue to this day to provoke and stimulate. We will study foundational ideas that are at the core of personal computing, the Web, modern AI, computer system design, computer networks, computer graphics, modern cryptography, and more.

Through immersion in original literature, we can more deeply comprehend the present state of computing, its origins, its underlying assumptions, and its major open questions. In connecting students with the ideas that shaped computer science, the course aims to instill lasting inspiration and a deep understanding of major trends in the field.

The course will feature a number of guests, including some of the authors.

Handouts

Schedule

Day Topic Required Reading Recommended Reading
March 29 Course introduction Edmund C. Berkeley, Giant Brains or Machines That Think (1949) [excerpts]
March 31 Towards digital computing
(guest: Phil Levis)
Luigi F. Menabrea, Sketch of the Analytical Engine Invented by Charles Babbage, with notes by Ada Lovelace (1843)

Howard Aiken, Proposed Automatic Calculating Machine (1937)

John von Neumann, First Draft of a Report on the EDVAC (1945)
April 5 The dawn of artificial intelligence
John von Neumann, The General and Logical Theory of Automata (1948)

Alan M. Turing, Computing Machinery and Intelligence (1950)
Alan M. Turing, Intelligent Machinery (1948)

Claude E. Shannon, Computers and Automata (1953)

John R. Searle, Minds, Brains, and Programs (1980) [with commentary]
April 7 Early successes Claude E. Shannon, Programming a Computer for Playing Chess (1950)

Arthur L. Samuel, Some Studies in Machine Learning Using the Game of Checkers (1959)
Marvin Minsky, Steps Toward Artificial Intelligence (1960)
April 12 Intelligence beyond logical reasoning
Rodney A. Brooks, Intelligence Without Representation (1991)

Rodney A. Brooks, Intelligence Without Reason (1991)
John McCarthy, Marvin Minsky, Nathaniel Rochester, Claude E. Shannon, A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence (1955)

Hans P. Moravec, Locomotion, Vision and Intelligence (1984)
April 14 Modeling human reasoning
(guest: Daphne Koller)
Judea Pearl, Probabilistic Reasoning in Intelligent Systems (1988) [excerpts] David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, Learning Representations by Back-Propagating Errors (1986)
April 19 Representing humanity's knowledge
Vannevar Bush, As We May Think (1945)

Tim Berners-Lee et al., World-Wide Web: The Information Universe (1992)
Theodor H. Nelson, A File Structure for the Complex, the Changing, and the Indeterminate (1965)

Tim Berners-Lee, Information Management: A Proposal (1989)
April 21 Towards personal computing
J. C. R. Licklider, Man-Computer Symbiosis (1960)

John McCarthy, The Home Information Terminal (1970)

Alan C. Kay, A Personal Computer for Children of All Ages (1972)
John McCarthy, Memorandum to P. M. Morse Proposing Time Sharing (1959)

J. C. R. Licklider and Welden E. Clark, On-Line Man-Computer Communication (1962)

Alan C. Kay and Adele Goldberg, Personal Dynamic Media (1977)

Charles P. Thacker et al., Alto: A Personal Computer (1979)
April 26 Augmenting human intellect
(guests: Douglas C. Engelbart and William English)
Douglas C. Engelbart et al., Presentation at the Fall Joint Computer Conference (December 9, 1968) Douglas C. Engelbart and William K. English, A Research Center for Augmenting Human Intellect (1968)

Douglas C. Engelbart, Augmenting Human Intellect: A Conceptual Framework (1962)
April 28 The birth of computer graphics
Ivan E. Sutherland, Sketchpad: A Man-Machine Graphical Communication System (1963) Ivan E. Sutherland, The Ultimate Display (1965)
May 3 Computer-mediated communication
J. C. R. Licklider and Robert W. Taylor, The Computer as a Communication Device (1970) Douglas C. Engelbart, Intellectual Implications of Multi-Access Computer Networks (1970)

Jim Hollan and Scott Stornetta, Beyond Being There (1992)
May 5 Cryptography and security
(guest: Whitfield Diffie)
Whitfield Diffie and Martin E. Hellman, New Directions in Cryptography (1976) Ronald L. Rivest, Adi Shamir, and Leonard Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems (1978)

Ken Thompson, Reflections on Trusting Trust (1984)

Ross Anderson, Why Cryptosystems Fail (1993)
May 10 Project 1 presentations
May 12 Project 1 presentations
May 17 Computability and complexity
(guest: Luca Trevisan)
Alan M. Turing, On Computable Numbers, with an Application to the Entscheidungsproblem (1936)

Stephen A. Cook, The Complexity of Theorem Proving Procedures (1971)
Michael O. Rabin and Dana Scott, Finite Automata and Their Decision Problems (1959)

Richard M. Karp, Reducibility Among Combinatorial Problems (1972)
May 19 Operating systems
(guest: John Ousterhout)
Dennis M. Ritchie and Ken Thompson, The UNIX Time-Sharing System (1974) Edsger W. Dijkstra, The Structure of the "THE"-Multiprogramming System (1967)
May 24 System design
(guest: Dawson Engler)
David Parnas, On the Criteria to be Used in Decomposing Systems into Modules (1972)

Jerome H. Saltzer, David P. Reed, and David D. Clark, End-to-End Arguments in System Design (1984)
Butler Lampson, Hints for Computer System Design (1983)
May 26 Computer networks
(guest: Nick McKeown)
David D. Clark, The Design Philosophy of the DARPA Internet Protocols (1988) Paul Baran, On Distributed Communications Networks (1964)

Vinton G. Cerf and Robert E. Kahn, A Protocol for Packet Network Intercommunication (1974)

Barry M. Leiner et al., A Brief History of the Internet (2009)
May 31 Memorial Day, no class
June 2 Project 2 presentations

Assignments

Before each class session, every student must individually submit a short critique on each of the required readings (see the handout for more information).

Critiques are due by 7:00am the day of the class. Use the online submission system to submit your critiques. Log in with your SUNet username and password. Submissions in plain text are strongly encouraged, though you may also attach a PDF if you really need to. Please avoid MS Word (.doc) files, we cannot guarantee to open them correctly.

The submission system automatically closes at 7:00am sharp and late submissions will not be accepted. Please be on time.