a brief history of computer science
DESCRIPTION
A Brief History of Computer Science. William Klostermeyer. Typical Conversation. A: What do you do? B: I’m a computer scientist. A: How come when I’m on screen X in MS Y.Z I can’t print file Q?. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/1.jpg)
A Brief History of Computer Science
William Klostermeyer
![Page 2: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/2.jpg)
Typical ConversationA: What do you do?B: I’m a computer scientist.A: How come when I’m on screen X in MS Y.Z I can’t print file Q?
![Page 3: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/3.jpg)
“Computer science is no more about computers than astronomy is about telescopes.”
E. Dijkstra (1972 Turing Award winner)
![Page 4: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/4.jpg)
What is computer science?Sometimes called computing or computing science.
Not so much about computers, but computing.
![Page 5: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/5.jpg)
Areas of Computer ScienceHardware/Architecture Building chips, machines, devicesSoftware Building programs, systems, databasesTheory Determines what is possible: underlies all other areas of computing.
![Page 6: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/6.jpg)
History of computer sciencePre-dates modern computers by
more than 2000 years!Digital computers make it more
practical to compute.“Computer” was a job title for
people around time of WWII
![Page 7: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/7.jpg)
Computers Electronic computers created
because of need for them: Ballistics computations Codebreaking Census calculations
![Page 8: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/8.jpg)
Algorithm Precise set of instructions to solve
a problem. How to play blackjack: draw two cards; compute total while (total < 17) draw a card
add cards to total end
![Page 9: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/9.jpg)
Mathematics of Algorithms Hilbert (1928): “Can every problem
be solved by a mechanical procedure?”
Turing (1936): NO! There exist problems no computer can solve.
Alan Turing: developedmodel of computation
![Page 10: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/10.jpg)
Programs Computer programs implement
algorithms and are written in a computer language (Java, C, etc.)
Interested in efficient (FAST) algorithms/programs
![Page 11: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/11.jpg)
Hard Problems Hilbert’s 10th problem (1900): Does
there exist an algorithm to find integer solutions to Diophantine equations?
x + 2y2 = 0 (use quadratic formula)
x6 + y6 = z6
![Page 12: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/12.jpg)
Hilbert’s 10th problem Matiyasevich proved in 1970 that
no algorithm exists to solve arbitrary Diophantine equations.
Some problems yield themselves to algorithms, some don’t. Some yield themselves to EFFICIENT algorithms!
![Page 13: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/13.jpg)
“Computer science is the systematic study of algorithmic processes”
From an ACM study (1989)
![Page 14: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/14.jpg)
Ancient Algorithms Babylonians knew how to
approximate square roots (500 B.C.)
Newton’s method (1600’s) generalizes this to find zeroes of polynomial
“Numerical” algorithms
![Page 15: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/15.jpg)
Euclid’s Algorithm 300 B.C. GCD(x, y) greatest common divisor of x & y
Still in use today!
![Page 16: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/16.jpg)
GCD Algorithm Euclid(12, 9) = Euclid(9, 3) = Euclid(3, 0) = 3
Euclid(a, b): if b=0 return b else return Euclid (b, a mod b)
![Page 17: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/17.jpg)
Prime Numbers x is prime if nothing divides x
evenly except 1 and x
Some primes:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31
Big primes useful in cryptography
![Page 18: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/18.jpg)
Sieve of Eratosthenes 250 B.C. Algorithm to determine if x is prime:x=17. List all numbers from 2 to 16.Start with 2. If 2 does not divide 17,cross 2 and all multiples of 2 off list.Go to next uncrossed number on list and
repeat. If all numbers crossed off, then x is prime.
![Page 19: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/19.jpg)
Primality Testing Eratosthenes method notfast for LARGE numbers(hundreds of digits) Fast probabilistic methodsdeveloped in ’70’s, ’80’s(have a small chance of error)
![Page 20: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/20.jpg)
Breakthrough! 2002: after centuries of searching,
a fast algorithm found (polynomial-time
algorithm, no chance of error)IIT professor and two undergrads:
![Page 21: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/21.jpg)
Uses of Prime Numbers Large primes needed in
cryptography (to securely send information over internet)
RSA encryption algorithm based on assumption that factoring large integers into primes is difficult.
![Page 22: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/22.jpg)
Sending Messages Securely
Alice BobAlice wants to send to Bob, not reveal key
![Page 23: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/23.jpg)
Sending Messages Securely
Alice Bob
![Page 24: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/24.jpg)
Sending Messages Securely
Alice Bob
![Page 25: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/25.jpg)
Sending Messages Securely
Alice Bob
![Page 26: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/26.jpg)
How can Alice do it? Alice puts lock on box Alice sends box to Bob Bob puts his lock on Bob sends to Alice Alice removes her lock Alice sends to Bob Bob removes his lock!
![Page 27: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/27.jpg)
RSA Algorithm1. Find P and Q, two large (e.g.,
1024-bit) prime numbers. 2. Choose E such that E is greater
than 1, E is less than PQ, and E and (P-1)(Q-1) are relatively prime. E must be odd.
3. Compute D such that (DE - 1) is evenly divisible by (P-1)(Q-1).
![Page 28: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/28.jpg)
RSA cont.1. The encryption function is
C = (T^E) mod PQ, where C is the ciphertext (a positive integer), T is the plaintext (a positive integer).
2. Your public key is the pair (PQ, E). Your private key is the number D. D used in decrypting C back into T.
No known easy methods of calculating D, P, or Q given only (PQ, E) (your public key).
![Page 29: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/29.jpg)
Factoring RSA security based on assumption that
FACTORING large integers is hard. Note that we can determine if an
integer is prime or not quickly, but factoring seems to require more work
In other words: can prove an integer is composite w/o showing factors
![Page 30: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/30.jpg)
Graph Algorithms Euler 1736: Bridges of Konigsberg
![Page 31: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/31.jpg)
Konigsberg = Graph
![Page 32: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/32.jpg)
Graphs
“Concepts from graph theory may hold
the key for everything…”
Business Week, January 22, 2002
![Page 33: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/33.jpg)
Shortest Routes Dijkstra’s Algorithm (1959): used
by www.mapquest.com
Faster algorithms found in 1990’s
![Page 34: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/34.jpg)
Traveling Salesman Salesman wants to visit N cities
and return home Minimize total distance traveled
![Page 35: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/35.jpg)
![Page 36: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/36.jpg)
![Page 37: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/37.jpg)
TSP Algorithms? No fast algorithm known to compute
best route for salesman Computing optimal route for 1000
cities would take centuries on fast computer
Must settle for near-optimal solutions: Can get very close to optimal if cities are in Euclidean plane (Arora 1999)
![Page 38: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/38.jpg)
Map Coloring Can map be colored with 4 colors
so neighboring regions have different colors (1850’s)
![Page 39: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/39.jpg)
4-color theorem Yes! (Appel & Haken 1970’s) Can be done quickly (1990’s) But some maps require only 3
colors!
![Page 40: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/40.jpg)
Easy & Hard Which is harder?
Taking a test Grading a test
Proving a theorem Checking a proof
Hilbert and von Neumann pondered this.
![Page 41: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/41.jpg)
P vs. NP P: problems that can be solved
quickly (shortest route) NP: problems whose solutions can
be checked quickly (TSP, 3-coloring)
Is this a 3-coloring?
![Page 42: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/42.jpg)
P = NP? Believed P is not equal to NP $1,000,000 reward for proof: www.claymath.org
Most important problem in Computer Science: are certain problems intrinsically hard?
![Page 43: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/43.jpg)
NP-complete problems Class of hard problems (unless P=NP) Occur in real world:
Scheduling problems, routing problems, Biological problems, etc.
Optimal solutions take too long to compute (we believe, if P not equal to NP)
Must settle for sub-optimal solutions.
![Page 44: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/44.jpg)
Example Find best match for criminal’s DNA
sequence in a database:AATCCGATAGGATATTCCAGATCGATTACCGATAGACATGTACAGGCAATCAGATACAAATCCGAAAACCC
![Page 45: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/45.jpg)
Sequence Assembly Assemble small overlapping
sequences into single long sequence
AAAATCGC, CGCATAAA, GCATCTCATT
CGCATAAAATCGCATCTATT
Can be hard if you start with lots of fragments
![Page 46: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/46.jpg)
Complexity Theory Interested in categorizing how hard
(complex) problems are. Key concept is a “proof” that an
object satisfies some conditions. How might we “prove” that 11 is
prime?
See that none of 2, 3, 5, 7 divide 11.
![Page 47: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/47.jpg)
Checking Proofs How do we grade a test? How do we check a proof?
xn + yn = zn, no solutions for n > 2
By reading it! By reading every word of it!
![Page 48: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/48.jpg)
PCP Theorem 1990’s was found that proofs can
be checked (with high probability) by reading only a few characters.
(Proof must be in a standard form) “Holographic” proofs: each symbol
contains essence of proof
![Page 49: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/49.jpg)
Amazing connection PCP Theorem also tells us that for
certain hard problems, finding sub-optimal solutions quickly is hard!
Hard to quickly find a route that is close to the longest possible route between two cities!
![Page 50: A Brief History of Computer Science](https://reader035.vdocuments.us/reader035/viewer/2022062301/56815d4a550346895dcb53a9/html5/thumbnails/50.jpg)
Conclusion Computer science is about:
Algorithms to solve problems!