CS 152 Programming Paradigms A History of Computation

  • Slides: 31
Download presentation
CS 152 Programming Paradigms A History of Computation Thaddeus Aid Department of Computer Science

CS 152 Programming Paradigms A History of Computation Thaddeus Aid Department of Computer Science San Jose State University Spring 2016 Creative Commons Attribution-Share. Alike 4. 0 International License 1

Why Study Computer Science? • The point is not to understand the world, but

Why Study Computer Science? • The point is not to understand the world, but to transform it. ~ Karl Marx Creative Commons Attribution-Share. Alike 4. 0 International License 2

Before History…. • Before numbers…. . Source Wikipedia Commons Creative Commons Attribution-Share. Alike 4.

Before History…. • Before numbers…. . Source Wikipedia Commons Creative Commons Attribution-Share. Alike 4. 0 International License 3

Then comes… • The tally sticks led to numbers, and numbers lead to mathematics

Then comes… • The tally sticks led to numbers, and numbers lead to mathematics • The formalization of numbers allowed for the discovery of arithmetic • The Hindu-Arabic numbering system allowed for the further development of math • There is quite a lot that you can figure out with some numbers, some operators, a piece of paper, and a stick of charcoal • The purpose of computing is insight, not numbers. ~ Richard Hamming Creative Commons Attribution-Share. Alike 4. 0 International License 4

 • [Computer science] is not really about computers -- and it's not about

• [Computer science] is not really about computers -- and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes. . . and geometry isn't really about using surveying instruments. ~ Hal Abelson • So what is Computer Science about? • Understanding problems in order to solve them. • Is it a science? A math? An engineering discipline? • It is all of these, every computer built and every program engineered is an empirical experiment into the realm of nature and mathematics. Does this experiment work? Creative Commons Attribution-Share. Alike 4. 0 International License 5

2400 BCE – The Babylonian Abacus Creative Commons Attribution-Share. Alike 4. 0 International License

2400 BCE – The Babylonian Abacus Creative Commons Attribution-Share. Alike 4. 0 International License 6

100 CE - The Antikythera mechanism Creative Commons Attribution-Share. Alike 4. 0 International License

100 CE - The Antikythera mechanism Creative Commons Attribution-Share. Alike 4. 0 International License 7

200 CE – The Chinese Abacus Creative Commons Attribution-Share. Alike 4. 0 International License

200 CE – The Chinese Abacus Creative Commons Attribution-Share. Alike 4. 0 International License 8

1000 CE – The Astrolabe Creative Commons Attribution-Share. Alike 4. 0 International License 9

1000 CE – The Astrolabe Creative Commons Attribution-Share. Alike 4. 0 International License 9

1100 CE - The Torquetum Creative Commons Attribution-Share. Alike 4. 0 International License 10

1100 CE - The Torquetum Creative Commons Attribution-Share. Alike 4. 0 International License 10

Islamic Robots? • During this time, Islamic scholars also built analogue constructs that could

Islamic Robots? • During this time, Islamic scholars also built analogue constructs that could do a number of things like play flute. • Islamic Scholars also built the “Castle Clock” which could be programmed to strike a gong/bell/noise maker in order to call Muslims to prayer at the right times of day. Creative Commons Attribution-Share. Alike 4. 0 International License 11

1822 CE – Charles Babbage's Difference Engine Creative Commons Attribution-Share. Alike 4. 0 International

1822 CE – Charles Babbage's Difference Engine Creative Commons Attribution-Share. Alike 4. 0 International License 12

Babbage and Lovelace • Charles Babbage came up with the idea of a machine

Babbage and Lovelace • Charles Babbage came up with the idea of a machine that could be used to solve complex equations. • Ada Lovelace came up with the idea of using repeatable programs to change the function of the machine. She is the mother of programming. Creative Commons Attribution-Share. Alike 4. 0 International License 13

1837 CE – Babbage’s Analytical Engine Creative Commons Attribution-Share. Alike 4. 0 International License

1837 CE – Babbage’s Analytical Engine Creative Commons Attribution-Share. Alike 4. 0 International License 14

23 June 1912 – 7 June 1954 Alan Turing Creative Commons Attribution-Share. Alike 4.

23 June 1912 – 7 June 1954 Alan Turing Creative Commons Attribution-Share. Alike 4. 0 International License 15

Turing • Mathematician • Logician • Cryptanalyst • Computer Scientist • Theoretical Biologist •

Turing • Mathematician • Logician • Cryptanalyst • Computer Scientist • Theoretical Biologist • Formalized the Algorithm • Formalized Computability • Artificial Intelligence Creative Commons Attribution-Share. Alike 4. 0 International License 16

The Enigma and Bletchley Park Creative Commons Attribution-Share. Alike 4. 0 International License 17

The Enigma and Bletchley Park Creative Commons Attribution-Share. Alike 4. 0 International License 17

1947 CE – The Transistor Creative Commons Attribution-Share. Alike 4. 0 International License 18

1947 CE – The Transistor Creative Commons Attribution-Share. Alike 4. 0 International License 18

1951 CE - UNIVAC Creative Commons Attribution-Share. Alike 4. 0 International License 19

1951 CE - UNIVAC Creative Commons Attribution-Share. Alike 4. 0 International License 19

1955 CE – The Pilot ACE Creative Commons Attribution-Share. Alike 4. 0 International License

1955 CE – The Pilot ACE Creative Commons Attribution-Share. Alike 4. 0 International License 20

1958 CE – The Integrated Circuit Creative Commons Attribution-Share. Alike 4. 0 International License

1958 CE – The Integrated Circuit Creative Commons Attribution-Share. Alike 4. 0 International License 21

Dec 9, 1906 – Jan 1, 1992 – Admiral “Amazing” Grace Hopper Creative Commons

Dec 9, 1906 – Jan 1, 1992 – Admiral “Amazing” Grace Hopper Creative Commons Attribution-Share. Alike 4. 0 International License 22

Grace Hopper nee Murray • Early programmer • Invented the compiler • Lead the

Grace Hopper nee Murray • Early programmer • Invented the compiler • Lead the effort to build FORTRAN and COBOL • Coined the term “debugging” Creative Commons Attribution-Share. Alike 4. 0 International License 23

1957 CE - Fortran • Formula Translation • First Compiled Language • Considered one

1957 CE - Fortran • Formula Translation • First Compiled Language • Considered one of the fastest languages in the world • Imperetive Creative Commons Attribution-Share. Alike 4. 0 International License 24

1958 - LISP • List Processor • Favored language for AI Creative Commons Attribution-Share.

1958 - LISP • List Processor • Favored language for AI Creative Commons Attribution-Share. Alike 4. 0 International License 25

1959 CE - COBOL • Targeted business needs • Procedural Creative Commons Attribution-Share. Alike

1959 CE - COBOL • Targeted business needs • Procedural Creative Commons Attribution-Share. Alike 4. 0 International License 26

1962 - Simula • The introduction of Object Oriented Programming Creative Commons Attribution-Share. Alike

1962 - Simula • The introduction of Object Oriented Programming Creative Commons Attribution-Share. Alike 4. 0 International License 27

1964 - Speakeasy • Object Oriented Numerical package • Lead to modern languages like

1964 - Speakeasy • Object Oriented Numerical package • Lead to modern languages like Matlab and Mathmatica Creative Commons Attribution-Share. Alike 4. 0 International License 28

1969 - C • Dennis Ritchie and Ken Thompson developed this systems programming language

1969 - C • Dennis Ritchie and Ken Thompson developed this systems programming language at Bell Labs. • It is hard to overestimate the influence that C has had on the world. Creative Commons Attribution-Share. Alike 4. 0 International License 29

1972 - Prolog • Logic Programming Creative Commons Attribution-Share. Alike 4. 0 International License

1972 - Prolog • Logic Programming Creative Commons Attribution-Share. Alike 4. 0 International License 30

More languages • 1980 C++ • 1984 Matlab • 1986 Objective C • 1987

More languages • 1980 C++ • 1984 Matlab • 1986 Objective C • 1987 Perl • 1990 Haskell • 1991 Python • 1995 Java • 2007 Clojure Creative Commons Attribution-Share. Alike 4. 0 International License 31