Big Ideas in Computer Science

advertisement
Big Ideas in Computer Science





“Mathematics is the Queen of the Sciences”
Carl Friedrich Gauss
What is Computer Science?
 Why study it, what is it, why is it interesting (or not)?
Historically
 What can we program, what can we program efficiently
Present
 Lots of data, lots of connectivity, lots of inferences
Future
 Where do we go from here?
Computer Science and Everything
1
What is Computer Science at Duke?

What we tell you it is
 A bunch of courses useful in some majors

What you want it to be or imagine it to be
 Independent study, new courses, interdepartmental major

What will it be in one year or two?
 New courses, new professors, new majors, …

What is it outside of Duke?
 Similar but different!
Computer Science and Everything
2
Scientists and Engineers
Scientists build to learn, engineers learn to
Why
is Programming Fun?
build

•First is the sheer joy of making things
– Fred Brooks
•Second is the pleasure of making things that are useful
•Third is the fascination of fashioning complex puzzlelike 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.3
Computer Science and Everything
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
Computer Science and Everything
4
What is Computer Science?

Computer science is no more about computers than astronomy
is about telescopes.
Edsger Dijkstra

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
Computer Science and Everything
5
What is Computer Science?
Computer Science and Everything

What does a computer
scientist do?

What does a programmer
do?

What does a systems
administrator do?

What do you want to do?
6
What can be programmed?

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

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?
Computer Science and Everything
7
Classes of Problems
Approximable
Easy
Impossible
Hard
Unknown
Computer Science and Everything
8
What Computers Can’t Do?

Algorithms, Distributed
Systems, Networks,
Bioinformatics, Graphics,
Software Design, Probability,
Modeling, Artificial
Intelligence, Architecture,
Programming, Statistics,
Databases, Linear Algebra,
Scientific Computing
Computer Science and Everything
9
Schedule students, minimize conflicts

Given student requests,
available teachers
 write a program that
schedules classes
 Minimize conflicts

Add a GUI too
 Web interface
 …
 …
Computer Science and Everything
I can’t write
this program
because I’m too
dumb
10
One better scenario
I can’t write this
program because
it’s provably
impossible
Computer Science and Everything
11
Another possible scenario
I can’t write this
program but neither
can all these famous
people
Computer Science and Everything
12
Entscheidungsproblem

What can we program?

What can't we program?

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
Computer Science and Everything
13
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?)

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
Computer Science and Everything
14
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”

Can user enter name of program? Enter the input?
 Is there a problem with this program?
Computer Science and Everything
15
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

Can a program read a program? Itself?
Computer Science and Everything
16
Can we write confuse.py?


Legal if doesHalt exists
 What have we assumed?
What are consequences of running confuse on itself?
 Trouble?
program
input
doesHalt
confuse
confuse
if doesHalt(..,..) loop
else exit
Computer Science and Everything
17
What's a meta catalog? Top 10 sites?

Consider a website of interesting sites
 Does the website list itself? Is this a problem?

Consider a website that lists every useless website
 Would this be a useful resource?
 Does the website list itself? JuicyCampus?

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
Computer Science and Everything
18
Computer Science and Everything
19
Not impossible, but impractical

Towers of Hanoi
 How long to move n disks?

What combination of switches turns the light on?
 Try all combinations, how many are there?
 Is there a better way?
Computer Science and Everything
20
Travelling Salesperson




Visit every city exactly once
Minimize cost of travel or
distance
Is there a tour for under
$2,000 ? less than 6,000
miles?
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 ...
Computer Science and Everything
21
http://xkcd.com/399/
Computer Science and Everything
22
Are hard problems easy?

P = easy problems, NP = “hard” problems
 P means solvable in polynomial time
• Difference between N, N2, N10 ?
 NP means non-deterministic, polynomial time
• guess a solution and verify it efficiently

Question: P = NP ?
 if yes, a whole class of difficult problems , the NPcomplete 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)
Computer Science and Everything
23
Theory and Practice

Number theory: pure
mathematics
 What’s a prime number?
 How many are there?
 How many numbers?

Computer Science
 Primality is “easy”
top secret
• Yes or no

Factoring is “hard”
• What are the factors?

Encryption is possible
Computer Science and Everything
public-key cryptography
randomized primality
testing
24
In Re Boucher 2007 WL 4246473
314983
Computer Science and Everything
25
US Patent 5,990,495

What’s a patent for?

How long does it last?

What can you do if patent violated?

Do you play guitar hero?
Computer Science and Everything
26
Photomosaic, us patent 6,137,498

http://www.flickr.com/photos/tags/macosaix/

http://en.wikipedia.org/wiki/Photographic_mosaic

Drug patents?

Gene patents?
Computer Science and Everything
27
Issues in Voting
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
We will
also take Iappropriate
steps
voting machines
for analysis.
want to
to protect
any publication
of
make you aware
that ifagainst
the County
does
software, Sequoia
its behavior,
so, it violatesSequoia
their established
reports regarding
or any other
licensing Agreement
for use ofsame
the voting
infringement of our intellectual
system.
property.
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
www.freedom-to-tinker.com
Computer Science and Everything
28
Computer Science in a Nutshell
Computer Science and Everything
29
Download