CICS 191FY1: The History of Computing
In the fall of 2021 I taught a first year seminar for computer science students at UMass Amherst about the history of computing from ancient computers like the Antikythera mechanism to modern iPhones, as well as what the future of computing might hold.
This site serves as an archive of the course materials (slides, assignments, etc.) I created. It’s not complete yet, but most of the important stuff is here.
Week 0: welcome, syllabus stuff, contributions of ancient civilizations
- Slides on Babylonian mathematics, abacuses, logic, the Antikythera mechanism, the Euclidean algorithm, Caesar’s cipher, al-Kindi, and Panini’s Sanskrit grammar.
Week 1: early computers and the foundations of computer science
- Prep. work on Ada Lovelace’s notes about Charles Babbage’s analytical engine, and Alan Turing’s paper where he first introduces his famous Turing machines to the world.
- Sketch of the Analytical Engine invented by Charles Babbage by Luigi Menabrea with notes by Ada Lovelace (1842)
- On computable numbers, with an application to the Entscheidungsproblem by Alan Turing (1936)
- Slides on Napier’s bones, the Pascaline, the stepped reckoner, the Jacquard loom, Hollerith’s tabulating machines, Babbage’s analytical engine, Boolean logic, the Entscheidungsproblem, Turing machines, the Church-Turing thesis, mapping reductions, the halting problem, and a few other models of computation.
Week 2: a visit from Erika Dawson Head
Erika Dawson Head, the Director of Diversity at CICS, lead a class discussion about diversity, inclusion, and microaggresions.
Week 3: WWII R&D and the beginnings of the information age
- Prep. work on The First Draft Report on the EDVAC, and an advertisement for the FLOW-MATIC programming language.
- The First Draft Report on the EDVAC by John von Neumann (1945)
- Introducing a language for automatic computing: UNIVAC FLOW-MATIC from Sperry Rand Corporation (1957)
- Slides on Claude Shannon and circuit design, the von Neumann architecture, the Atanasoff-Berry Computer, Colossus, Harvard Mark I, ENIAC and EDVAC, Z1, Z2, and Z3, the UNIVAC I, and a few others.
Week 4: a visit from CICS Advising
Advisors from the CICS Advising Office spoke to the class about course registration and planning a path to an on-time graduation.
Week 5: the journey to home PCs
- Prep. work on IBM’s press release announcing System/360, and some documents relating to Intel’s 4004 microprocessor.
- System/360 announcement from IBM (1964)
- One-Chip CPU available for low-cost dedicated computers by EDN staff (1972)
- A magazine advertisement for the Intel 4004 is reproduced on the second page of this article. I couldn’t find the original source.
- 4004 single chip 4-bit p-channel microprocessor, a data sheet from Intel
- Slides on vacuum tubes, transistors, MOSFETs, integrated circuits, IBM System/360, the DEC PDP-11, and the Intel 4004.
Week 6: milestones in artificial intelligence
- Prep. work on the early psychotherapist chatbot ELIZA, and AlexNet, the neural network that spurred the modern resurgence of deep learning research.
- ELIZA—a computer program for the study of natural language communication between man and machine by Joseph Weizenbaum (1966)
- ImageNet classification with deep convolutional neural networks by Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton (2012)
- How to read a paper by Srinivasan Keshav (2007)
- Slides on the Turing test, the Chinese room argument, the Dartmouth workshop, ELIZA, symbolic AI and the first AI winter, expert systems and the second AI winter, neural networks, deep learning, and GANs.
Week 7: computing-related subcultures
- Prep. work on the Free Software Foundation’s definition of “free” (as in freedom) software, and the Jargon File.
- What is Free Software? by the Free Software Foundation (mostly Richard Stallman)
- The Jargon File version 4.4.7 (2003)
- Slides on hacker culture, Tech Model Railroad Club and hacks at MIT more generally, the free software movement, crypto-anarchism, the Silk Road, social media and the Arab Spring, neo-Luddism/anarcho-primitivism, the Unabomber, and Industrial Society and its Future.
Week 8: modern computing
- Prep. work on Steve Yegge’s famous Google+ post about platforms and accessibility, and a court’s findings in an antitrust case against Microsoft.
- Steve Yegge’s post (2011)
- U.S. V. Microsoft: Court’s Findings Of Fact by Thomas Penfield Jackson (1999)
- Slides on the Xerox Alto, the Apple II, the IBM PC, DOS, the Apple Macintosh, the browser wars, the dot-com bubble, cloud computing, the Motorola DynaTAC, the IBM Simon, and the Apple iPhone.
Week 9: programming languages
- Prep. work on Grace Hopper’s The Education of a Computer, and some essays about the design of Lisp.
- The Education of a Computer by Grace Hopper (1952)
- The Rise of “Worse-is-Better” by Richard P. Gabriel (1991)
- The Lisp Curse by Rudolf Winestock (2011)
- Slides on high- vs. low-level programming languages, context-free grammars, very early languages (lambda calculus, Plankalkül, Short Code, Autocode), Fortran, COBOL, Lisp, C, and Rust.
Week 10: computing at UMass Amherst
- Slides on the history of the computer science department at UMass Amherst, computational complexity theory and Barrington’s theorem, nondeterminism and the Immerman-Szelepcsényi theorem, reinforcement learning, super-Turing computation, and transactional memory.
Week 11: the future of computing
- Prep. work on various essays about decentralized finance, self-driving cars, AI safety, and quantum computing.
- Why Decentralization Matters by Chris Dixon (2018)
- Cryptocurrency is an abject disaster by Drew DeVault (2021)
- The Implications of Robot Cars and Taxis by Brad Templeton
- Ai Mid 2021. Self Driving Car Meets Reality by Filip Piekniewski (2021)
- No Time Like The Present For AI Safety Work by Scott Alexander (2015)
- I Still Don’t Get Foom by Robin Hanson (2014)
- Reasons to believe II: quantum edition by Scott Aaronson (2006)
- Quantum computing as a field is obvious bullshit by Scott Locklin (2019)
- Slides on Bitcoin, Ethereum, NFTs, self-driving cars, AI safety, and quantum computing.