What is Computer Science at Duke?

Slides:



Advertisements
Similar presentations
Lecture 19. Reduction: More Undecidable problems
Advertisements

Computability & Complexity. Scenario I can’t write this program because I’m too dumb.
CS420 lecture one Problems, algorithms, decidability, tractability.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
CSE332: Data Abstractions Lecture 27: A Few Words on NP Dan Grossman Spring 2010.
The Theory of NP-Completeness
Analysis of Algorithms CS 477/677
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.
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.
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.
Duke University Computer Science 1 Why Computer Science is Uglier and Prettier than Mathematics Owen Astrachan Duke University
1 Ethics of Computing MONT 113G, Spring 2012 Session 13 Limits of Computer Science.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 8: Complexity Theory.
Compsci 06/101, Spring What is Computing? Informatics? l What is computer science, what is its potential?  What can we do with computers in.
Discrete Structures for Computing
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.
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?
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.
Halting Problem and TSP Wednesday, Week 8. Background - Halting Problem Common error: Program goes into an infinite loop. Wouldn’t it be nice to have.
Beauty and Joy of Computing Limits of Computing Ivona Bezáková CS10: UC Berkeley, April 14, 2014 (Slides inspired by Dan Garcia’s slides.)
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.
SNU OOPSLA Lab. 1 Great Ideas of CS with Java Part 1 WWW & Computer programming in the language Java Ch 1: The World Wide Web Ch 2: Watch out: Here comes.
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.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
2101INT – Principles of Intelligence Systems Lecture 3.
“One ring to rule them all” Analogy (sort of) Lord of The Rings Computational Complexity “One problem to solve them all” “my preciousss…”
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.
Compsci 101, Fall LWoC l Review Recommender, dictionaries, files  How to create recommendations in order? food.txt  Toward a Duke eatery-recommender.
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.
1 1. Which of these sequences correspond to Hamilton cycles in the graph? (a) (b) (c) (d) (e)
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
CS10: The Beauty and Joy of Computing Lecture #21 Limits of Computing Instructor: Sean Morris UCB announces The Turing Test Tournament.
CSC 172 P, NP, Etc.
The NP class. NP-completeness
Introduction to Computing Science and Programming I
Chapter 12: Theory of Computation
Gödel's Legacy: The Limits Of Logics
Measuring Where CPU Time Goes
Lecture 2-2 NP Class.
Great Theoretical Ideas in Computer Science
Part VI NP-Hardness.
What is Computing? Informatics?
Hard Problems Introduction to NP
Unsolvable Problems December 4, 2017.
Ch. 11 Theory of Computation
Discrete Mathematics and Its Applications
Lecture 5 NP Class.
Intro to Theory of Computation
ASU 101: The ASU Experience Computer Science Perspective
ICS 353: Design and Analysis of Algorithms
How Hard Can It Be?.
1. for (i=0; i < n; i+=2) if (A[i] > A[i+1]) swap(A[i], A[i+1])
Halting Problem.
CSE 311: Foundations of Computing
CSC 380: Design and Analysis of Algorithms
Discrete Mathematics in the Real World
CSE 589 Applied Algorithms Spring 1999
CS 150: Computing - From Ada to the Web
CSC 380: Design and Analysis of Algorithms
Discrete Mathematics and Its Applications
Algorithms CSCI 235, Spring 2019 Lecture 36 P vs
Announcements Jack group member by Thursday!! Quiz-8? HW10
Week 11 - Wednesday CS221.
Presentation transcript:

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!

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?

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?

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

One better scenario I can’t write this program because it’s provably impossible

Another possible scenario I can’t write this program but neither can all these famous people

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

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

Good sites: http://del.icio.us/ What is social bookmarking? Why is del.icio.us interesting? Who posts, who visits? What about a website of interesting websites? What would you expect to find there? Would the site list itself? What about sites that list/link to themselves? What about a site with all sites that list themselves?

Bad sites: http://haz.ardo.us Sites listing bad sites (don’t visit them?) Where would this be useful? What about censorship (internationally?) Is this a good site or a bad site? What about sites that list/link themselves? Is haz.ardo.us there? Website of all the sites that don’t list themselves? Is notlisted.com listed on notlisted.com?

The halting problem: writing doesHalt public class ProgramUtils /** * Returns true if progname halts on input, * otherwise returns false (progname loops) */ public static boolean doesHalt(String progname, String input){ } A compiler is a program that reads other programs as input Can a word counting program count its own words? The doesHalt method might simulate, analyze, … One program/function that works for any program/input

How to tell if Foo stops on 123 456 public static void main(String[] args) { String prog = "Foo.java"; String input = "123 456" if (ProgramUtils.doesHalt(prog,input)){ System.out.println(prog+" stops"); } else { System.out.println(prog+" 4ever"); Can user enter name of program? Input? What's the problem with this program?

Consider the class Confuse.java public static void main(String[] args){ String prog = "Foo.java"; if (ProgramUtils.doesHalt(prog,prog)) { while (true) { // do nothing forever } We want to show writing doesHalt is impossible Proof by contradiction: Assume possible, show impossible situation results Can a program read a program? Itself?

Can we write Confuse.java? Legal if doesHalt exists What have we assumed? What are consequences of running confuse on itself? Trouble? P S DoesHalt confuse confuse if DoesHalt(..,..) loop else exit

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?

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 ...

Travelling Salesman: XKCD 399

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 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)

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

Useful Computer Science http://maps.google.com/maps?daddr=7824+Anise+Ave,+Los+Angeles,+CA+90045&saddr=13480+maxella+ave,+marina+del+rey&f=d&hl=en&dq=marriott+loc%3A+7824+Anise+Ave,+Los+Angeles,+CA+90045&ie=UTF8&z=14&om=1 Marriott, Marina Del Rey 7824 Anise Ave Los Angeles

How does this work? http://tinyurl.com/2t57jc

In Re Boucher 2007 WL 4246473 314983 porn

Courses of Study What do you take first? What’s next? In between? Who teaches what?