Computer Science Science of Computation Omer Reingold.

Slides:



Advertisements
Similar presentations
Turing Machines January 2003 Part 2:. 2 TM Recap We have seen how an abstract TM can be built to implement any computable algorithm TM has components:
Advertisements

Wonders of the Digital Envelope
CS211 Problems: unsolvable, unfeasible and unsolved Topic 3: P and NP.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Engineering Management Tidbits! © Washington State University James R. Holt, Ph.D., PE Professor Engineering.
8/25/2009 Sofya Raskhodnikova Intro to Theory of Computation L ECTURE 1 Theory of Computation Course information Overview of the area Finite Automata Sofya.
Complexity Theory Lecture 1 Lecturer: Moni Naor. Computational Complexity Theory Study the resources needed to solve computational problems –Computer.
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
What is the computational cost of automating brilliance or serendipity? (Computational complexity & P vs NP) COS 116, Spring 2012 Adam Finkelstein.
Algorithms Today we will look at: what we mean by efficiency in programs why efficiency matters what causes programs to be inefficient? will one algorithm.
 The amount of time it takes a computer to solve a particular problem depends on:  The hardware capabilities of the computer  The efficiency of the.
What is the computational cost of automating brilliance or serendipity? (Computational complexity and P vs NP question) COS 116: 4/12/11 Sanjeev Arora.
On the limitations of efficient computation Oded Goldreich Weizmann Institute of Science.
Computer Science It’s more than programming Eric Lantz.
Proof, Computation, & Randomness Kurt Gödel John von Neumann and Theoretical Computer Science Avi Wigderson School of Mathematics Institute for Advanced.
Nathan Brunelle Department of Computer Science University of Virginia Theory of Computation CS3102 – Spring 2014 A tale.
Whitmore/Stevenson: Strategies for Engineering Communication 1 of 12 Analyzing Paragraph Structure Sample Paragraph The best method we have found for analyzing.
1 Introduction to Computability Theory Lecture15: Reductions Prof. Amos Israeli.
CSE332: Data Abstractions Lecture 2: Math Review; Algorithm Analysis Tyler Robison Summer
Introduction to Analysis of Algorithms
Cryptography Lecture 11: Oct 12. Cryptography AliceBob Cryptography is the study of methods for sending and receiving secret messages. adversary Goal:
CS503: First Lecture, Fall 2008 Michael Barnathan.
1 The Weizmann CS Research Day for Prospective Students Moni Naor Weizmann Institute of Science May 1st 2009 מוני נאור.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 5 Reducibility Contents Undecidable Problems from Language Theory.
1. By the end of this lecture you should be able … To describe in general terms how computers function To describe the fetch-execute cycle To explain.
A Brief Introduction To The Theory of Computer Science and The PCP Theorem By Dana Moshkovitz Faculty of Mathematics and Computer Science The Weizmann.
On Everlasting Security in the Hybrid Bounded Storage Model Danny Harnik Moni Naor.
What computers just cannot do. COS 116: 2/28/2008 Sanjeev Arora.
CS107 Introduction to Computer Science Lecture 7, 8 An Introduction to Algorithms: Efficiency of algorithms.
Quantum Computing Lecture 1 Michele Mosca. l Course Outline
Analysis of Algorithms COMP171 Fall Analysis of Algorithms / Slide 2 Introduction * What is Algorithm? n a clearly specified set of simple instructions.
Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.
New Mexico Computer Science For All Introduction to Algorithms Maureen Psaila-Dombrowski.
Design and Analysis of Algorithms
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.
Tell the robot exactly how to draw a square on the board.
Computational Thinking The VT Community web site:
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
DISCRETE MATHEMATICS I CHAPTER 11 Dr. Adam Anthony Spring 2011 Some material adapted from lecture notes provided by Dr. Chungsim Han and Dr. Sam Lomonaco.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
Randomized Turing Machines
Cryptography Dec 29. This Lecture In this last lecture for number theory, we will see probably the most important application of number theory in computer.
Analysis of Algorithms
Unsolvability and Infeasibility. Computability (Solvable) A problem is computable if it is possible to write a computer program to solve it. Can all problems.
Complexity A decidable problem is computationally solvable. But what resources are needed to solve the problem? –How much time will it require? –How much.
David Evans CS150: Computer Science University of Virginia Computer Science Class 33: Computing with Photons From The.
Halting Problem Introduction to Computing Science and Programming I.
Instructor: Shengyu Zhang. First week Part I: About the course Part II: About algorithms and complexity  What are algorithms?  Growth of functions 
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
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.
Optimization Problems
Georgia Institute of Technology Speed part 4 Barb Ericson Georgia Institute of Technology May 2006.
1/6/20161 CS 3343: Analysis of Algorithms Lecture 2: Asymptotic Notations.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 7 Time Complexity Some slides are in courtesy.
Computer Science/Ch. Algorithmic Foundation of CS 4-1 Chapter 4 Chapter 4 Algorithmic Foundation of Computer Science.
1 Ch. 2: Getting Started. 2 About this lecture Study a few simple algorithms for sorting – Insertion Sort – Selection Sort (Exercise) – Merge Sort Show.
Algorithms an Introduction. History This course was first taught in the late 1960s The main principals that maintained the area –Find algorithms that.
Big O David Kauchak cs302 Spring Administrative Assignment 1: how’d it go? Assignment 2: out soon… Lab code.
Interactive computability Episode 13 0 Hard-play machines (HPMs) Easy-play machines (EPMs) Definition of interactive computability The interactive version.
Hank Childs, University of Oregon Jan. 30 th, 2014 CIS 610: Vector Models for Data-Parallel Computing.
 2004 SDU 1 Algorithm Informally speaking, an algorithm is a collection of simple instructions for carrying out a task. Example:  Elementary arithmetic.
Chapter 12 Theory of Computation Introduction to CS 1 st Semester, 2014 Sanghyun Park.
Ch03-Algorithms 1. Algorithms What is an algorithm? An algorithm is a finite set of precise instructions for performing a computation or for solving a.
The University of Adelaide, School of Computer Science
CS154, Lecture 18:.
Turing Machines, Busy Beavers, and Big Questions about Computing
Theory of Computation Turing Machines.
CS154, Lecture 12: Time Complexity
Ch. 2: Getting Started.
Presentation transcript:

Computer Science Science of Computation Omer Reingold

Foundations of CS at Weizmann Irit Dinur Uri Feige Oded Goldreich Shafi Goldwasser David Harel Robi Krauthgamer Moni Naor David Peleg Amir Pnueli Omer Reingold Ran Raz Adi Shamir

Algorithm A “recipe” for solving a computational problem (on every possible input). –Step-by-step, based on simple (basic) instructions. Some algorithms you probably already run: long arithmetic, ordering a deck of cards, …

“Long addition” algorithm 1.Scan column. If empty, stop. 2.Add digits. Write answer, retain carry. 3.Move one column left, write carry. 4.Go to 1

What are simple instructions? Can be carried out by a third grader? By a computer processor? –But we don’t want our theory to change every time a new processor goes into the market. Turing (1936!), proposed a “primitive” model of computation. We can define our algorithms on a Turing machine. Church-Turing thesis: Every effective computation can be carried out by a Turing machine.

Turing Machine

With the right abstractions Computer science is no longer about how computers “think” but rather about how humans think! –After all the science came first! … and possibly also about how nature thinks …

Is there an algorithm for every problem? No! Regardless of how much time we let the algorithm run. Examples: –There cannot be a computer program that debugs other programs automatically. –There cannot be a program that identifies all computer viruses.

Can computers solve in practice every solvable problem? No! Some problems take too much time to solve. So lets wait until computers become faster … Not a technological problem. –Some algorithms will still be running after the sun burns out, even on a computer made of all the particles of the universe, communicating at the speed of light.

Efficiency of an Algorithm It is important to bound the amount of resources our algorithms use: Time: how many basic operations Space: how many memory cells? Randomness, Communication … Try to find the most efficient algorithm for a given problem. –Some ingenious ideas come into play.

Time Efficiency of an Algorithm Count the number of basic operations. Long addition of n-digit numbers – roughly n operations. Long multiplication of n-digit numbers (school method) – roughly n 2 operations. Can we do better? ×

Asymptotics What is the difference between an algorithm running in time n, n 2 and 2 n ? As technology evolves inputs get larger – asymptotics matter! nn2n2 2n2n

Map Coloring Given a map, “legally” color the countries with three colors (coloring with four colors always exists) Does there exist an efficient algorithm? This is the central question of computer science (and one of the central questions of math). Sounds lame?

P vs. NP problem If there exists an efficient algorithm for map coloring then: –An efficient algorithm for many other natural problems –Math and Science can be automated –Creativity can be automated (computers can learn to generate jokes, art, etc.) –(Almost) no cryptography

Cryptography and Knowledge This talk is so boring Assuming it is hard to factor big numbers, cryptography offers solutions to many problems of secrecy, privacy, and fault tolerance. For example: two parties who never met can exchange information privately at the presence of others.

OK so you get the car Cryptography and Knowledge Or flip a fair coin over the phone:

Cryptography and Knowledge This talk is so boring These and other remarkable applications are impossible, based on our traditional notion of information. –For example, an encryption of a message contains all the information about the message. New perspective of knowledge: it is not the information one possesses but rather the information that can be accessed efficiently!

Megalomaniac Moment in Conclusion Computation: evolution of an environment via repeated application of simple, local rules (Almost) all Physics and Biology theories satisfy! -Weather - Proteins in a cell - magnetization -Ant hills - Fish schools - fission -Brain - Populations - burning fire -Epidemics – Regeneration - growth And also Economy, Social Science, …

Still Megalomaniac Math has often been thought of as the language of Science Theory of computation is an area of math particularly suited to analyzing processes operating with limited resources Computational lens proved powerful in bioinformatics, quantum computation, game theory… –Expect much more!