Duke University Computer Science 1 Why Computer Science is Uglier and Prettier than Mathematics Owen Astrachan Duke University

Slides:



Advertisements
Similar presentations
Algorithm Analysis.
Advertisements

Lecture 19. Reduction: More Undecidable problems
Computability & Complexity. Scenario I can’t write this program because I’m too dumb.
1 The Limits of Computation Intractable and Non-computable functions.
CS420 lecture one Problems, algorithms, decidability, tractability.
Nathan Brunelle Department of Computer Science University of Virginia Theory of Computation CS3102 – Spring 2014 A tale.
CSE332: Data Abstractions Lecture 27: A Few Words on NP Dan Grossman Spring 2010.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 Graphs.
A Computer Science Tapestry 1.1 A Computer Science Tapestry Exploring Programming and Computer Science with C++ Second Edition Owen Astrachan Duke University.
The Theory of NP-Completeness
CSE 326: Data Structures NP Completeness Ben Lerner Summer 2007.
Analysis of Algorithms CS 477/677
Public Key Cryptography Topical Lecture Week 10. PUBLIC AB Public Key Cryptography A: Hey B, send me an encoded message. This is how you encode a message.
CS10 The Beauty and Joy of Computing Lecture #23 : Limits of Computing Thanks to the success of the Kinect, researchers all over the world believe.
Halting Problem. Background - Halting Problem Common error: Program goes into an infinite loop. Wouldn’t it be nice to have a tool that would warn us.
A Computer Science Tapestry 1.1 Wake up with CPS 006 Program Design and Methodology I Jeff Forbes
CPS Today’s topics l Computability ä Great Ideas Ch. 14 l Artificial Intelligence ä Great Ideas Ch. 15 l Reading up to this point ä Course Pack.
SIGCSE Tradeoffs, intuition analysis, understanding big-Oh aka O-notation Owen Astrachan
(c) , University of Washington
Introduction to Programming (in C++) Conclusions Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
Chapter 11 Limitations of Algorithm Power. Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples:
Cs3102: Theory of Computation Class 18: Proving Undecidability Spring 2010 University of Virginia David Evans.
Scott Perryman Jordan Williams.  NP-completeness is a class of unsolved decision problems in Computer Science.  A decision problem is a YES or NO answer.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
1 Ethics of Computing MONT 113G, Spring 2012 Session 13 Limits of Computer Science.
A Computer Science Tapestry 11.1 From practice to theory and back again In theory there is no difference between theory and practice, but not in practice.
CSE 326: Data Structures NP Completeness Ben Lerner Summer 2007.
1 7.Algorithm Efficiency What to measure? Space utilization: amount of memory required  Time efficiency: amount of time required to process the data.
CSC 172 P, NP, Etc. “Computer Science is a science of abstraction – creating the right model for thinking about a problem and devising the appropriate.
Genome Revolution: COMPSCI 006G 1.1 FOCUS COMPSCI 006G Genome Revolution Owen Astrachan
CompSci CompSci 6 Programming Design and Analysis I Dietolf (Dee) Ramm
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?
Cliff Shaffer Computer Science Computational Complexity.
Halting Problem Introduction to Computing Science and Programming I.
Compsci 100, Fall What is Computing? Informatics? l What is computer science, what is its potential?  What can we do with computers in our lives?
CompSci What can be computed l What class of problems can be solved? ä Google Datacenter, Desktop computer, Cell phone, pencil? ä Alan Turing proved.
Compsci 06/101, Spring What is Computing? Informatics? l What is computer science, what is its potential?  What can we do with computers in.
Software Design 14.1 CPS 108 l Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful.
Beauty and Joy of Computing Limits of Computing Ivona Bezáková CS10: UC Berkeley, April 14, 2014 (Slides inspired by Dan Garcia’s slides.)
Quicksort CSE 2320 – Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington 1.
CPS 100, Fall What is Computing? Informatics? l What is computer science, what is its potential?  What can we do with computers in our lives?
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
CS10: The Beauty and Joy of Computing Lecture #22 Limits of Computing Warning sign posted at Stern Hall. Also, Apple releases new operating.
Limits to Computation How do you analyze a new algorithm? –Put it in the form of existing algorithms that you know the analysis. –For example, given 2.
Computability Heap exercise. The class P. The class NP. Verifiers. Homework: Review RELPRIME proof. Find examples of problems in NP.
David Evans Class 16: NP-Completeness / The Story so Far CS150: Computer Science University of Virginia Computer Science.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
A Computer Science Tapestry 10.1 From practice to theory and back again In theory there is no difference between theory and practice, but not in practice.
The Beauty and Joy of Computing Lecture #23 Limits of Computing Researchers at Facebook and the University of Milan found that the avg # of “friends” separating.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 7 Time Complexity Some slides are in courtesy.
CSE 311 Foundations of Computing I Lecture 28 Computability: Other Undecidable Problems Autumn 2011 CSE 3111.
Compsci 101, Fall LWoC l Review Recommender, dictionaries, files  How to create recommendations in order? food.txt  Toward a Duke eatery-recommender.
NPC.
CS216: Program and Data Representation University of Virginia Computer Science Spring 2006 David Evans Lecture 8: Crash Course in Computational Complexity.
Fundamentals of Informatics Lecture 12 The Halting Problem Bas Luttik.
Compsci 06/101, Fall What is Computing? Informatics? l What is computer science, what is its potential?  What can we do with computers in our.
Duke University Computer Science 1 Topics since last test l More invariants l Pixmap l Sorting & Templates  Selection sort  Insertion sort  Quicksort.
Chapter 12 Theory of Computation Introduction to CS 1 st Semester, 2014 Sanghyun Park.
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
The Linear and Binary Search and more Lecture Notes 9.
Introduction to Computing Science and Programming I
CompSci 6 Introduction to Computer Science
What is Computing? Informatics?
Unsolvable Problems December 4, 2017.
Topics since last test More invariants Pixmap Sorting & Templates
Topics since last test More invariants Pixmap Sorting & Templates
Algorithms CSCI 235, Spring 2019 Lecture 36 P vs
What is Computer Science at Duke?
Presentation transcript:

Duke University Computer Science 1 Why Computer Science is Uglier and Prettier than Mathematics Owen Astrachan Duke University

Duke University Computer Science 2 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

Duke University Computer Science 3 What can be programmed? l What class of problems can be solved? ä G4, 500Mhz Pentium III, Cray, pencil? ä Alan Turing proved somethings, 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

Duke University Computer Science 4 Schedule students, minimal 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

Duke University Computer Science 5 One better scenario I can’t write this program because it’s provably impossible

Duke University Computer Science 6 Another possible scenario I can’t write this program but neither can all these famous people

Duke University Computer Science 7 The halting problem: writing DoesHalt bool DoesHalt(const string& progname, const string& s) // post: returns true if progname halts given s // as input, false otherwise int main() { string f = PrompString("enter filename "); string s = PromptString("input for "+filename); if (DoesHalt(f,s)) cout << "does halt" << endl; else cout << "does not halt" << endl; } l A compiler is a program that reads other programs as input ä Can a word counting program count its own words? The DoesHalt function might simulate, analyze, … ä One program/function that works for any program/input

Duke University Computer Science 8 Consider the program confuse.cpp #include "halt.h" int main() { string f = PrompString("enter filename "); if (DoesHalt(f,f)) { while (true) { // do nothing forever } return 0; } We want to show writing DoesHalt is impossible ä Proof by contradiction: ä Assume possible, show impossible situation results

Duke University Computer Science 9 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?

Duke University Computer Science 10 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? 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...

Duke University Computer Science 11 Complexity Classifications l This route hits all cities for less than $2, verify properties of route efficiently. l Hard to find optimal solution Pack trucks with barrels, use minimal # trucks Ideas? Problems are the “same hardness”: solve one efficiently, solve them all

Duke University Computer Science 12 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 can be solved efficiently---one problem is reducible to another ä if no, none of the hard problems can be solved efficiently ä showing the first problem was in NP was an exercise in intellectual bootstrapping (1971)

Duke University Computer Science 13 Theory and Practice l Number theory: pure mathematics ä How many prime numbers are there? ä How do we factor? ä How do we determine primeness? l Computer Science ä Primality is “easy” ä Factoring is “hard” ä Encryption is possible top secret public-key cryptography randomized primality testing

Duke University Computer Science 14 Shafi Goldwasser l RCS professor of computer science at MIT ä Co-inventor of zero- knowledge proof protocols How do you convince someone that you know something without revealing “something” l Consider card readers for dorms ä Access without tracking Work on what you like, what feels right, I now of no other way to end up doing creative work

Duke University Computer Science 15 Why is programming fun? What delights may its practitioner expect as a reward? 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. Fred Brooks

Duke University Computer Science 16 What is computer science? l What is a computation? ä Can formulate this precisely using mathematics ä Can say “anything a computer can compute” ä Study both theoretical and empirical formulations, build machines as well as theoretical models l How do we build machines and the software that runs them? ä Hardware: gates, circuits, chips, cache, memory, disk, … ä Software: operating systems, applications, programs l Art, Science, Engineering ä How do we get better at programming and dealing with abstractions ä What is hard about programming?

Duke University Computer Science 17 Simple, Elegant, Deep a b c b a (a+b) 2 = c 2 + 4(½ ab)

Duke University Computer Science 18 The selection problem l In a list of N ordered items, find the k th smallest ä Highest salary, median, 90%, … ä Solve the problem, then solve it efficiently l Suppose we can re-arrange the items ä Where is k th smallest? It’s x It’s before x It’s after x x<= x> x

Duke University Computer Science 19 The Selection Problem l In a list of N ordered items, find the k th smallest ä Highest salary, median, 90%, … ä Solve the problem, then solve it efficiently double Select(apvector & a, int left, int right, int k) // pre: left <= right // post: return k-th smallest in a[left..right] { if (left == right) return a[left]; int p = Partition(a, left, right); // re-arrange a int size = p – left + 1; // left sublist if (k <= size) return Select(a, left, p, k); else return Select(a, p+1, right, k-size); }

Duke University Computer Science 20 Partition, the picture and invariant x<= x> x x ? ? ? The desired state, where we want to go The initial state The intermediate state, and invariant x <= x > x?? p

Duke University Computer Science 21 Partition: the code int Partition(apvector & a, int left, int right) // pre: left <= right, and legal indices for a // post: return index and re-arrange elements in a // so a[left..index] <= a[index+1..right] { int p=left; int k; for(k=left+1; k <= right; k++) { if (a[k] <= a[left]) { p++; Swap(a[k], a[p]); } Swap(a[left],a[p]); return p; } x <= x > x?? p

Duke University Computer Science 22 Quicksort, the code void QuickSort(apvector & a, int left, int right) // pre: left <= right, and legal indices for a // post: a[left] <= … <= a[right] { if (left <= right) { int p = Partition(a,left,right); QuickSort(a,left, p-1); QuickSort(a, p+1, right); } l Why is this fast? When is it slow? ä Invented in 1960, hard to understand, why? ä Usable in mission critical applications? Introsort in 1998

Duke University Computer Science 23 C.A.R. (Tony) Hoare (b. 1934) l Won Turing award in 1980 l Invented quicksort, but didn’t see how simple it was to program recursively l Developed mechanism and theory for concurrent processing l In Turing Award speech used “Emporer’s New Clothes” as metaphor for current fads in programming “ Beginning students don’t know how to do top-down design because they don’t know which end is up ”

Duke University Computer Science 24 Practice with invariants l Remove zeros from an array, leave order of non- zeros unchanged (AP exam, 1987) l Sketch/write a solution ä Make it run, make it right, make it fast non-zeros ? ? ? (ignored) k lnz

Duke University Computer Science 25 Shoulders of Giants Newton: “If I have seen farther it is because I have stood on the shoulders of giants.” Robert Burton: “a dwarf standing on the shoulders of a giant may see farther than the giant himself.”

Duke University Computer Science 26 Richard Stallman (born 1953) l Described by some as “world’s best programmer” ä Wrote/developed GNU software tools, particularly g++ ä Believes all software should be free, but like “free speech”, not “free beer” ä Won MacArthur award for his efforts and contributions ä League for Programming Freedom l Gnu/Linux is a free operating system and computing environment ä Heavy industry/web use ä Wintel killer?? Local tie-in: Red Hat Linux, headquarted in Durham, NC IPO in 1999 at $14 One month later at $110+ Markets “free” product