This is an overview of the topics covered in this course.
We'll spend about one week for each topic.
Part I. The Prehistory of Computing
1. Ancient mathematics
- Babylonian mathematics:
Ancient origins of mathematics. Base-60 number system.
Greeks and Romans:
The notion of proof. Computing with Roman numerals.
2. Ancient Computing Machines: The Abacus and the
Antikythera Mechanism
3. More Numbers and Leibniz's Dream
- Zero. Negative numbers. Fibonacci (Liber Abaci, 1202).
Leibniz's Dream:
Binary number system.
Characteristica universalis and calculus ratiocinator.
- Readings: Davis, Ch. 1
4. 19th Century Developments
- Boolean Algebra. Babbage's Analytic Engine.
- Readings: Davis, Ch. 2
Part II. Mathematical Foundations of Computing
5. Set Theory and Symbolic Logic
- Cantor's set theory; Frege's logic. First-order logic.
- Readings: Davis, Ch. 3-4
6. Limitations
- Hilbert's Programme. Gödel's Theorems.
- Readings: Davis, Ch. 5-6
7. Models of Computation
- Turing Machines. Halting Problem. Universal computer.
- Readings: Davis, Ch. 7
Part III. The Age of Modern Computers
8. The First Universal Computers
- John von Neumann. EDVAC. ENIAC. ACE.
- Readings: Davis, Ch. 8
9. Commercial Computing 1945-1964
- Readings: Ceruzzi, Ch. 1-2
10. Chips and PCs
- Readings: Ceruzzi, Ch. 4-7
11. The Early History of Software
- FORTRAN. COBOL. ALGOL.
- Readings: Ceruzzi, Ch. 3
12. Programming Languages
- Programming paradigms. Lisp. PASCAL. C. Java
13. Computers and Minds
- Turing test. Searle's Chinese Room. Artificial intelligence.
14. The Internet
- Readings: Ceruzzi, Ch. 8-10
15. Computers now and tororrow
- iPod, XBox, etc.; quantum computing