Lecture 24. A Brief History of Computer Science (with thanks to Prabhakar Ragde) CS125 Course Notes Lecture 24, Slide 1

Similar documents
Theory of Computation CS3102 Spring 2014 A tale of computers, math, problem solving, life, love and tragic death

CS187 - Science Gateway Seminar for CS and Math

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

! Chris Diorio. ! Gaetano Borrielo. ! Carl Ebeling. ! Computing is in its infancy

Automata Theory. Definition. Computational Complexity Theory. Computability Theory

The Legacy of Hilbert, Gödel, Gentzen and Turing

CS 135. Designing Functional Programs

Unit 4: Computer as a logic machine

What is a Computer? computer: anything that is able to take a mathematically

MAA509: Quantum Computing and Information Introduction

Introduction to Computer Systems

The Mathematical Story. Computation: Christos H. Papadimitriou. UC Berkeley

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Complexity Theory. Ahto Buldas. Introduction September 10, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

Handouts. CS701 Theory of Computation

Quantum Computing 101. ( Everything you wanted to know about quantum computers but were afraid to ask. )

complex networks and systems i609: advanced PhD seminar I Informatics luis rocha 2019 INDIANA UNIVERSITY

Models. Models of Computation, Turing Machines, and the Limits of Turing Computation. Effective Calculability. Motivation for Models of Computation

Limits of Computation. Antonina Kolokolova

Computation. Some history...

Understanding Computation

Limits of Computation

Class 24: Computability

A Quantum Computing Approach to the Verification and Validation of Complex Cyber-Physical Systems

Propositions as Types

Outline. policies for the first part. with some potential answers... MCS 260 Lecture 10.0 Introduction to Computer Science Jan Verschelde, 9 July 2014

Fundamentals of Computer Science

The Search for the Perfect Language

CSE370: Introduction to Digital Design

Decidable Languages - relationship with other classes.

Historical Perspectives John von Neumann ( )

Computer Science. 19. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section 6.1.

INF2270 Spring Philipp Häfliger. Lecture 8: Superscalar CPUs, Course Summary/Repetition (1/2)

Ma/CS 6a Class 23: Generating Functions

Church s undecidability result

Lecture 14 Rosser s Theorem, the length of proofs, Robinson s Arithmetic, and Church s theorem. Michael Beeson

CS 275 Automata and Formal Language Theory

Gottfried Wilhelm Leibniz (1666)

1 The fact that the word algorithm is a close anagram of the Greek derived word logarithm

Great Ideas in Theoretical Computer Science

Meta-Circularity, and Vice-Versa

Digital Systems Roberto Muscedere Images 2013 Pearson Education Inc. 1

The roots of computability theory. September 5, 2016

SAU1A FUNDAMENTALS OF DIGITAL COMPUTERS

CST Part IB. Computation Theory. Andrew Pitts

Quantum Computing. Vraj Parikh B.E.-G.H.Patel College of Engineering & Technology, Anand (Affiliated with GTU) Abstract HISTORY OF QUANTUM COMPUTING-

The P-vs-NP problem. Andrés E. Caicedo. September 10, 2011

7.1 The Origin of Computer Science

Gödel, Turing, the Undecidability Results and the Nature of Human Mind

Class 23: Gödel s Theorem

Turing Machines. COMP2600 Formal Methods for Software Engineering. Katya Lebedeva. Australian National University Semester 2, 2014

How The Journey Starts

Lecture 19: Universality and Computability

Foundations of

Great Theoretical Ideas

Theory of Computation. Theory of Computation

The Turing machine model of computation

Computability, Undeciability and the Halting Problem

CS 275 Automata and Formal Language Theory

Complexity Theory Turing Machines

Virtualization. Introduction. G. Lettieri A/A 2014/15. Dipartimento di Ingegneria dell Informazione Università di Pisa. G. Lettieri Virtualization

Mathematics, Proofs and Computation

- Why aren t there more quantum algorithms? - Quantum Programming Languages. By : Amanda Cieslak and Ahmana Tarin

20. Combinational Circuits

Introduction to Quantum Computation

From Sequential Circuits to Real Computers

Welcome to GST 101: Introduction to Geospatial Technology. This course will introduce you to Geographic Information Systems (GIS), cartography,

Applications. Smartphone, tablet, game controller, antilock brakes, microprocessor, Wires

Turing Machines. Lecture 8

Lecture 24: Gödel s s Proof. Microsoft Foundation Classes. Story So Far. Quiz? PS6 Classes. sim-object. physical-object. place. mobile-object.

Creative Objectivism, a powerful alternative to Constructivism

Computer Science. 20. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section

Computer Science and State Machines

Most General computer?

Cristina Nita-Rotaru. CS355: Cryptography. Lecture 4: Enigma.

Harvard CS 121 and CSCI E-121 Lecture 22: The P vs. NP Question and NP-completeness

How Does Nature Compute?

Quantum Computing. Part I. Thorsten Altenkirch

Theory of Self-Reproducing Automata John Von Neumann. Joshua Ridens and David Shubsda

The Three Upcoming Revolutions in Physics and Astronomy that will Affect Everyone. Quantum Information Nov. 12, 2002

Theory of Computation

Computer Science and Logic A Match Made in Heaven

CS/MA 109 Quantitative Reasoning. Wayne Snyder Computer Science Department Boston University

Keith Fligg. 03-April-07

Intro To Digital Logic

1 Reductions and Expressiveness

AMIS 3600H Accounting Information Systems Spring 2016 Fisher 406

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design Boolean Algebra, Logic Gates

0 volts. 2 volts. 5 volts

Hilbert s problems, Gödel, and the limits of computation

Sequence of Topics. 1. The Nature of Truth. 2. Biography of Alan Turing ( ) 3. The Church-Turing Thesis. 4. Interactive Computing

CS 226: Digital Logic Design

Unit 8A Computer Organization. Boolean Logic and Gates

Part I. Entropy. Information Theory and Networks. Section 1. Entropy: definitions. Lecture 5: Entropy

Computational Models Lecture 7, Spring 2009

Farewell (for now) to modular arithmetic...

Logic and Mathematics. 1. Lecture

Digital Electronics Part 1: Binary Logic

CMPE12 - Notes chapter 1. Digital Logic. (Textbook Chapter 3)

Turing Centenary Lecture

Transcription:

Lecture 24 A Brief History of Computer Science (with thanks to Prabhakar Ragde) CS125 Course Notes Lecture 24, Slide 1

Why History? No shortage of good stories It helps us understand the way things are It helps us deal with the way things might be But where to begin? CS125 Course Notes Lecture 24, Slide 2

The Dawn of Computation Babylonian cuneiform (circa 2000 B.C) CS125 Course Notes Lecture 24, Slide 3

Early Computation Computer = human being performing computation Euclid s algorithm for greatest common divisor, circa 300 B.C. Al-Khwarizmi s books on algebra using Hindu-Arabic numerals, circa 800 A.D Isaac Newton (1643-1727) CS125 Course Notes Lecture 24, Slide 4

1801: Jacquard loom Loom: weaves fabric Design of fabric determined by instructions on punched cards Specification and execution are separated CS125 Course Notes Lecture 24, Slide 5

Charles Babbage England, 1791-1871 1819: Difference Engine (machine for tabulating polynomials) Babbage s design was too ambitious 1834: Analytical Engine (general-purpose computing device) CS125 Course Notes Lecture 24, Slide 6

Ada Augusta Byron England, 1815-1852 Assisted Babbage in explaining and promoting his ideas Wrote articles describing operation and use of the Analytical Engine The first computer scientist? CS125 Course Notes Lecture 24, Slide 7

Difference Engine Around 1880 Around 1990 CS125 Course Notes Lecture 24, Slide 8

1928: David Hilbert Goal of mathematics: to formally prove statements such as Every even number is the sum of two prime numbers. Proof: finite sequence ofdeductions from axioms Ideally: every statement can either be proved true or false CS125 Course Notes Lecture 24, Slide 9

Hilbert s questions Is mathematics consistent? If so, we can t prove both a statement and its opposite. Is mathematics complete? If so, we can either prove a statement, or prove its opposite. Nothing is unprovable. Is there a procedure that can determine the truth or falsity of any mathematical statement? CS125 Course Notes Lecture 24, Slide 10

1930: Kurt Gödel s answers Surprising answers: Mathematics cannot prove itself consistent If consistent, mathematics is incomplete (Gödel constructed a statement which is true but has no proof) Gödel s proofs are brilliant but complicated CS125 Course Notes Lecture 24, Slide 11

After Gödel s proof Gödel s unprovable statement was constructed in a fairly artificial way Maybe every natural statement is provable true or false? Maybe there is a procedure that can determine if a statement is unprovable? CS125 Course Notes Lecture 24, Slide 12

1936: Alan Turing Turing proved that there is no procedure to determine whether a mathematical statement has a proof. How can one prove that such a procedure doesn t exist? By precisely defining what a procedure is, and showing that every procedure fails to answer the question CS125 Course Notes Lecture 24, Slide 13

Turing s proof Turing defined a formal model of computation His proof is much simpler than Gödel s Key idea: programs that use other programs as data (central to computer science today) His proof shows that many natural questions we wish to ask about programs cannot be answered by programs (e.g. do two programs compute the same function?) All this before electronic computers even existed! CS125 Course Notes Lecture 24, Slide 14

But he was not the first! Alonzo Church (1903-1995) had already published another uncomputability proof Church s proof resembled Gödel s, and was more complicated than Turing s proof CS125 Course Notes Lecture 24, Slide 15

The Church-Turing thesis The two formal models of computation described by Church and Turing were quite different, but proved to be equivalent This is true of all reasonable models Turing s model was more intuitive and influenced the design of hardware and early software Church s model was more mathematical, and influenced later software, and methods to formally describe and reason about programming languages CS125 Course Notes Lecture 24, Slide 16

1940: Alan Turing and Enigma: German cipher machine used to encipher radio transmissions Encryption was based on a secret key whose discovery would crack the code Turing and other British mathematicians were recruited to use statistical methods to discover the secret keys in use Enigma CS125 Course Notes Lecture 24, Slide 17

1940-44: Colossus Series of machines developed to crack Enigma Colossus succeeded in deciphering German communications It was the world s first electronic general purpose computer CS125 Course Notes Lecture 24, Slide 18

Turing after the war Worked at designing computer hardware and software at UK universities 1950: Turing test what would a program have to do to be considered intelligent? 1954: untimely death at age 42 CS125 Course Notes Lecture 24, Slide 19

1944-5: ENIAC, U. Penn, USA CS125 Course Notes Lecture 24, Slide 20

1944-5: ENIAC, U. Penn, USA CS125 Course Notes Lecture 24, Slide 21

1944-5: ENIAC, U. Penn, USA CS125 Course Notes Lecture 24, Slide 22

John von Neumann (1903-1957) EDVAC report(1946) Described key aspects of modern computers (CPU, memory, stored program) CS125 Course Notes Lecture 24, Slide 23

1947: the transistor Solid-state switch Not fragile, leaky, or slow, like vacuum tubes or relays Rapidly miniaturized Moore s Law (1965): density of transistors on a chip doubles every 18 months CS125 Course Notes Lecture 24, Slide 24

1950: Grace Murray Hopper Wrote first compiler (translated high level language into machine language) Key player in standardization of COBOL language (especially Englishlike syntax) CS125 Course Notes Lecture 24, Slide 25

Grace Murray Hopper, 1906-92 CS125 Course Notes Lecture 24, Slide 26

FORTRAN (1957) DIMENSION A[10] I1 = 1 DO 3,5,6 J=1,10 3 I1 = I1 + I2 I2 = I1 - I2 5 A[J] = I1 6 STOP CS125 Course Notes Lecture 24, Slide 27

LISP (1959) (defun fhelper (n) (if (= n 1) (1 1) (let (pl (fhelper (- n 1))) (defun fib (n) (cons (+ (car pl) (cadr pl)) pl)))) (reverse (fhelper n))) CS125 Course Notes Lecture 24, Slide 28

ALGOL (1960) begin integer prev, curr, j, a[10]; prev := 0; curr := 1; for j := 1 step 1 to 10 do begin curr := curr + prev; prev := curr - prev; a[j] := curr; end end CS125 Course Notes Lecture 24, Slide 29

1950-60 s At this point, computers were large, standalone devices owned by corporations and universities. They used punched cards and paper printouts, or dumb terminals displaying lines of monospaced font like this. I think there is a world market for maybe 5 computers. IBM Chair, Thomas Watson. Computers in the future may have only 1000 vacuum tubes and perhaps weigh only 1½ tons. Popular Mechanics, 1949 Networks, personal computers and graphical displays changed all that. CS125 Course Notes Lecture 24, Slide 30

1969: ARPAnet Network connecting computers separated geographically (with dedicated phone lines) 1972: e-mail, syntax userid@machine 1974-7: other networks (Tymnet, UUnet) 1979: Usenet (newsgroups) 1982: Internet Protocol (IP) CS125 Course Notes Lecture 24, Slide 31

1975: Altair Microprocessor kit for under $500 256 bytes (!) memory No keyboard, nomonitor, no storage device BASIC compiler developed by Bill Gates and Paul Allen CS125 Course Notes Lecture 24, Slide 32

Personal Computers 1976: Apple I board 1977: complete machines (Apple II, Commodore PET, Radio Shack TRS- 80) 1981: IBM PC (with DOS supplied by Microsoft) Steve Jobs and Steve Wozniak with Apple I (all of it) 640K ought to be enough for anybody. Bill Gates, 1981. CS125 Course Notes Lecture 24, Slide 33

Windows and Mice 1968: Doug Englebart s mouse (Stanford Research Institute) 1972: Xerox Alto (windowing system with mouse) 1984: Apple Macintosh (first commercially successful system based on graphical user interface) CS125 Course Notes Lecture 24, Slide 34

1989: The World-Wide Web Developed by Tim Berners-Lee at CERN as means of information exchange among scientists Ideas from Vannevar Bush (1945), Ted Nelson (1965), Doug Englebart 1993: NCSA Mosaic graphical browser developed CS125 Course Notes Lecture 24, Slide 35

Development of Java 1991, Sun Microsystems: The Green Project formed to determine the next wave of computing Digitally controlled consumer devices and computers Group focused on designing tools for the new field of interactive TV That didn t quite work as hoped, but CS125 Course Notes Lecture 24, Slide 36

Development of Java, continued SUN realized the supporting language had larger applications the World Wide Web (and more!) 1995: Netscape licensed it for its browser 1995: SUN released it to the public Java (formerly OAK) Primary designer: James Gosling (of Calgary) CS125 Course Notes Lecture 24, Slide 37

What s next? Molecular computing Biological computing Quantum computing Nanotechnology Ubiquitous computing? CS125 Course Notes Lecture 24, Slide 38