History of Computer Science Mechanical Inventions Before 1900s
Antikythera 80 B.C.E. navigational aid predicted motion of stars and planets
Other Early Inventions Abacus Astrolabe (one below dated 1212 A.D.)
John Napier 1614 Napier “bones” calculate logarithms
Blaise Pascal Mechanical adding machine (1642-1645), the “pascaline”
“First” Calculating Machine Originally credited Gottfried Wilhelm Leibniz (1671) , , Wilhelm Schickard invented one in 1623 to calculate ephemerides
Joseph-Marie Jacquard Jacquard loom used punched cards for patterns in weaving silk (1801)
First Computer Graphics?
Charles Babbage Difference engine: calculate trigonometric and logarithmic tables (1823-1834), completed 1991 Analytical engine: precursor to modern computer (~1834, never built) Broke Vigenère cipher
Ada Lovelace Interested in Babbage’s Analytical engine First “programmer” algorithm program
William Stanley Jevons 1869 “Logic Piano” solved Boolean logic problems (syllogisms) faster than could be done by hand ~ 3 feet tall keys (logical operations) + levers + letters press keys and appropriate letters appear showing the result
Herman Hollerith Punched cards for US 1890 census data (saved $5 Mil and several years of processing time) Tabulating Machine Company IBM
Ideas Advance in Mathematics
Russell & Whitehead 1910-1913 Write Principia Mathematica, which attempted to construct the foundations of mathematics on a rigorous logical basis. Bertrand Alfred North Russell Whitehead
Leonardo Torres y Quevedo 1911-1913: Built some electro-mechanical calculating devices, including one that played simple chess endgames against a human.
David Hilbert 1928 (1) Is mathematics complete? Can every mathematical statement be either proved or disproved? (2) Is mathematics consistent? Is it true that statements such as "0 = 1" cannot be proved by valid methods? (3) Is mathematics decidable? Is there a mechanical method that can be applied to any mathematical assertion and (at least in principle) eventually tell whether that assertion is true or not?
Kurt Gödel Answered Hilbert’s first two questions in 1931
Alan Turing 1936 Answered Hilbert’s last question (as did Alonzo Church) and proved the Halting Problem 1936 Turing Machine Breaking Enigma 1939-40 “bombes” (secret until 1970) 1950 Turing test for AI
1941 Konrad Zuse Developed the “Z3” first operational, general-purpose, program-controlled calculator
1944 Howard Aiken 1943: Automatic Sequence Controlled Calculator (renamed Harvard Mark I) for simple arithmetic. Used by US Navy for ballistics and gunnery calculations
1946 ENIAC vs Pentium 150MHz 16Mb RAM IBM ThinkPad 755 CX: 150x106 +/second stores 16x106 digits 11.7”x8.3”, 6.1 lbs 5000 +/second stores 200 digits 10ft tall, 1800 ft.2, 30 tons [ENIAC considered first electronic digital computer (Mauchly & Eckert) until info. on Colossus released in 1970]
1944 EDVAC stored-program electronic computer Mauchly, Eckert, and John von Neumann Maurice Wilkes builds EDSAC in 1948 (based on EDVAC), first stored-program digital computer
Grace Hopper Worked with: Credited with: 1944: Aiken on Harvard Mark I 1949: Eckert and Mauchly on UNIVAC Credited with: 1951: first “computer” bug 1952: first compiler 1959: COBOL
Hardware Revolutions 1947: Transistor invented by John Bardeen, Walter Brattain, and William Shockley who were awarded the 1956 Nobel Prize in physics. 1949: Jay Forrester invents magnetic core memory 1959: Jack Kilby (Texas Instruments) and Robert Noyce (Fairchild Semiconductor) invent the integrated circuit
1950s Idea Revolutions 1956: Edsger Dijkstra develops algorithms for minimum spanning trees and shortest path in a graph 1957: FORTRAN by John Backus et. al. 1958: LISP by John McCarthy, Algol by Alan Perlis, John Backus, Peter Naur, et. al.
1960s More programming languages Fred Brooks: operating systems Chomsky and Rabin: automata theory Hoare: program correctness + quicksort 1968: computer mouse by Engelbart 1969-1971: Hoff and Faggin (Intel) design first microprocessor. Knuth’s 3-volume “The Art of Computer Programming” ARPAnet: precursor to Internet
1970s Major advances in database theory (Codd) UNIX (Thompson & Ritchie), C (Kernighan and Ritchie) RISC architecture Cray supercomputers Advances in algorithms and computational complexity (Karp, Cook) Public-key cryptosystems (RSA) Start of Usenet
1980s Rise of personal computers (Jobs and Wozniak, founders of Apple) 1981: first computer viruses first successful marketable PC 1984: Apple Macintosh 1987: the US National Science Foundation starts NSFnet, precursor to part of today's Internet.
1990s Parallel computing Biological computing e.g. Human Genome Project Quantum computing Growth of Internet and WWW Size/cost decrease and power increase of hardware Nano-technology