Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Science and Everything 1 Big Ideas in Computer Science l “Mathematics is the Queen of the Sciences” Carl Friedrich Gauss l What is Computer Science?

Similar presentations


Presentation on theme: "Computer Science and Everything 1 Big Ideas in Computer Science l “Mathematics is the Queen of the Sciences” Carl Friedrich Gauss l What is Computer Science?"— Presentation transcript:

1 Computer Science and Everything 1 Big Ideas in Computer Science l “Mathematics is the Queen of the Sciences” Carl Friedrich Gauss l What is Computer Science?  Why study it, what is it, why is it interesting (or not)? l Historically  What can we program, what can we program efficiently l Present  Lots of data, lots of connectivity, lots of inferences l Future  Where do we go from here?

2 Computer Science and Everything 2 What is Computer Science at Duke? l What we tell you it is  A bunch of courses useful in some majors l What you want it to be or imagine it to be  Independent study, new courses, interdepartmental major l What will it be in one year or two?  New courses, new professors, new majors, … l What is it outside of Duke?  Similar but different!

3 Computer Science and Everything 3 Scientists and Engineers l Scientists build to learn, engineers learn to build –Fred Brooks Why is Programming Fun? First is the sheer joy of making things Second is the pleasure of making things that are useful Third is the fascination of fashioning complex puzzle- like objects of interlocking moving parts Fourth is the joy of always learning Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff.

4 Computer Science and Everything 4 What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple --- it is the art of programming a computer. It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex. C.A.R. (Tony) Hoare

5 Computer Science and Everything 5 What is Computer Science? l Computer science is no more about computers than astronomy is about telescopes. Edsger Dijkstra l Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing! Richard Feyneman http://www.wordiq.com

6 Computer Science and Everything 6 What is Computer Science? l What does a computer scientist do? l What does a programmer do? l What does a systems administrator do? l What do you want to do?

7 Computer Science and Everything 7 What can be programmed? l What class of problems can be solved ?  G5, 1000Mhz Pentium III, Cray, pencil?  Alan Turing proved some things, hypothesized others Halting problem, Church-Turing thesis l What class of problems can be solved efficiently ?  Problems with no practical solution What does practical mean?  Problems for which we can’t find a practical solution Solving one solves them all Would you rather be rich or famous?

8 Computer Science and Everything 8 Classes of Problems Easy Hard Impossible Unknown Approximable

9 Computer Science and Everything 9 What Computers Can’t Do? l Algorithms, Distributed Systems, Networks, Bioinformatics, Graphics, Software Design, Probability, Modeling, Artificial Intelligence, Architecture, Programming, Statistics, Databases, Linear Algebra, Scientific Computing

10 Computer Science and Everything 10 Schedule students, minimize conflicts l Given student requests, available teachers  write a program that schedules classes  Minimize conflicts l Add a GUI too  Web interface  … I can’t write this program because I’m too dumb

11 Computer Science and Everything 11 One better scenario I can’t write this program because it’s provably impossible

12 Computer Science and Everything 12 Another possible scenario I can’t write this program but neither can all these famous people

13 Computer Science and Everything 13 Entscheidungsproblem l What can we program? l What can't we program? l Can we write a program that will determine if any program P will halt when run on input S ?  Input to halt: P and S  Output: yes/no halts

14 Computer Science and Everything 14 The halting problem: writing doesHalt def doesHalt(progName, progInput): #if progName halts on progInput return true #else return false #real login hidden (patented or trade-secret?) l Python IDE is a program that reads other programs  Can a word counting program count its own words? The doesHalt method might simulate, analyze, …  One program/function that works for any program/input

15 Computer Science and Everything 15 How to tell if Foo stops on 123 456 def easy(progName, progInput): if doesHalt(“Foo”, “123 456”): print "halts" else: print "does NOT halt” l Can user enter name of program? Enter the input?  Is there a problem with this program?

16 Computer Science and Everything 16 Consider the program confuse.py def confuse(progName, progInput): if doesHalt(progName, progInput): while(true): # loop forever else: return "does not halt!" We want to show writing doesHalt is impossible  Proof by contradiction:  Assume possible, show impossible situation results l Can a program read a program? Itself?

17 Computer Science and Everything 17 Can we write confuse.py? l Legal if doesHalt exists  What have we assumed? l What are consequences of running confuse on itself?  Trouble? programinput doesHalt confuse if doesHalt(..,..) loop else exit confuse

18 Computer Science and Everything 18 What's a meta catalog? Top 10 sites? l Consider a website of interesting sites  Does the website list itself? Is this a problem? l Consider a website that lists every useless website  Would this be a useful resource?  Does the website list itself? JuicyCampus? l What about a site of all the sites that list themselves?  Site of all sites that don't list themselves? nolist.com  http://www.kottke.org/06/11/delicious-will-eat-itself http://www.kottke.org/06/11/delicious-will-eat-itself

19 Computer Science and Everything 19

20 Computer Science and Everything 20 Not impossible, but impractical l Towers of Hanoi  How long to move n disks? l What combination of switches turns the light on?  Try all combinations, how many are there?  Is there a better way?

21 Computer Science and Everything 21 Travelling Salesperson l Visit every city exactly once l Minimize cost of travel or distance l Is there a tour for under $2,000 ? less than 6,000 miles? l Is close good enough?  Within 10% of optimal  Within 50% of optimal  … Try all paths, from every starting point -- how long does this take? a, b, c, d, e, f, g b, a, c, d, e, f, g...

22 Computer Science and Everything 22 http://xkcd.com/399http://xkcd.com/399/

23 Computer Science and Everything 23 Are hard problems easy? l P = easy problems, NP = “hard” problems  P means solvable in polynomial time Difference between N, N 2, N 10 ?  NP means non-deterministic, polynomial time guess a solution and verify it efficiently l Question: P = NP ?  if yes, a whole class of difficult problems, the NP- complete problems, can be solved efficiently  if no, none of the hard problems can be solved efficiently  showing the first problem was NP complete was an exercise in intellectual bootstrapping, satisfiability/Cook/(1971)

24 Computer Science and Everything 24 Theory and Practice l Number theory: pure mathematics  What’s a prime number?  How many are there?  How many numbers? l Computer Science  Primality is “easy” Yes or no  Factoring is “hard” What are the factors?  Encryption is possible top secret public-key cryptography randomized primality testing

25 Computer Science and Everything 25 In Re Boucher 2007 WL 4246473 314983

26 Computer Science and Everything 26 US Patent 5,990,495 l What’s a patent for? l How long does it last? l What can you do if patent violated? l Do you play guitar hero?

27 Computer Science and Everything 27 Photomosaic, us patent 6,137,498 l http://www.flickr.com/photos/tags/macosaix/ http://www.flickr.com/photos/tags/macosaix/ l http://en.wikipedia.org/wiki/Photographic_mosaic http://en.wikipedia.org/wiki/Photographic_mosaic l Drug patents? l Gene patents?

28 Computer Science and Everything 28 Issues in Voting ender: Smith, Ed [address redacted]@sequoiavote.com To: felten@cs.princeton.edu, appel@princeton.edu Subject: Sequoia Advantage voting machines from New Jersey Date: Fri, Mar 14, 2008 at 6:16 PM Dear Professors Felten and Appel: As you have likely read in the news media, certain New Jersey election officials have stated that they plan to send to you one or more Sequoia Advantage voting machines for analysis. I want to make you aware that if the County does so, it violates their established Sequoia licensing Agreement for use of the voting system. Sequoia has also retained counsel to stop any infringement of our intellectual properties, including any non-compliant analysis. We will also take appropriate steps to protect against any publication of Sequoia software, its behavior, reports regarding same or any other infringement of our intellectual property. Very truly yours, Edwin Smith VP, Compliance/Quality/Certification Sequoia Voting Systems As you have likely read in the news media, certain New Jersey election officials have stated that they plan to send to you one or more Sequoia Advantage voting machines for analysis. I want to make you aware that if the County does so, it violates their established Sequoia licensing Agreement for use of the voting system. We will also take appropriate steps to protect against any publication of Sequoia software, its behavior, reports regarding same or any other infringement of our intellectual property. www.freedom-to-tinker.com

29 Computer Science and Everything 29 Computer Science in a Nutshell


Download ppt "Computer Science and Everything 1 Big Ideas in Computer Science l “Mathematics is the Queen of the Sciences” Carl Friedrich Gauss l What is Computer Science?"

Similar presentations


Ads by Google