In the news: A recently security study suggests that a computer worm that ran rampant several years ago is still running on many machines, including 50%

Slides:



Advertisements
Similar presentations
College of Information Technology & Design
Advertisements

THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Algorithms + L. Grewe.
Computer science is a field of study that deals with solving a variety of problems by using computers. To solve a given problem by using computers, you.
Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the five essential properties of an algorithm.
Theoretical Program Checking Greg Bronevetsky. Background The field of Program Checking is about 13 years old. Pioneered by Manuel Blum, Hal Wasserman,
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
Complexity 18-1 Complexity Andrei Bulatov Probabilistic Algorithms.
Advanced Topics in Algorithms and Data Structures
1 Module 2: Fundamental Concepts Problems Programs –Programming languages.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Lecture 2: Fundamental Concepts
1 Module 2: Fundamental Concepts Problems Programs –Programming languages.
Lecture 14 Go over midterm results Algorithms Efficiency More on prime numbers.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
CS1001 Lecture 23. Overview Incompleteness and the Halting Problem Incompleteness and the Halting Problem Methods in Artificial Intelligence Methods in.
CS /29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms.
Algorithmic Problems in Algebraic Structures Undecidability Paul Bell Supervisor: Dr. Igor Potapov Department of Computer Science
Chapter 1 Program Design
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting.
The Beauty and Joy of Computing Lecture #6 Algorithms Alan Turing ( ) would have turned 100 this year. He was a brilliant British mathematician.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
HOW TO SOLVE IT? Algorithms. An Algorithm An algorithm is any well-defined (computational) procedure that takes some value, or set of values, as input.
CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a lgorithms.
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.
Stochastic Algorithms Some of the fastest known algorithms for certain tasks rely on chance Stochastic/Randomized Algorithms Two common variations – Monte.
Invitation to Computer Science, Java Version, Second Edition.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
Randomized Turing Machines
CS1502 Formal Methods in Computer Science Lecture Notes 16 Review for Exam2 continued Theory of Computation Introduction.
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
Course Web Page Most information about the course (including the syllabus) will be posted on the course wiki:
CSE 219 Computer Science III Program Design Principles.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Spring 2006ICOM 4036 Programming Laguages Lecture 2 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4036 Lecture 2.
CSC 211 Data Structures Lecture 13
Information & Communication Technology (ICT) Books: 1. Management Information Systems James A. O’Brien & George M. Marakas 2. Introduction Of Information.
The Beauty and Joy of Computing Lecture #6 Algorithms MIT researchers recently created an algorithm which they say will be able to predict what topics.
Institute for Personal Robots in Education (IPRE)‏ CSC 170 Computing: Science and Creativity.
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Software Development. Software Development Loop Design  Programmers need a solid foundation before they start coding anything  Understand the task.
The Beauty and Joy of Computing Lecture #6 Algorithms I UC Berkeley EECS Sr Lecturer SOE Dan Garcia.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
Chapter 7 What Can Computers Do For Me?. How important is the material in this chapter to understanding how a computer works? 4.
Chapter 10 Algorithmic Thinking. Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the.
Computer Theory Michael J. Watts
Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
Chapter 12 Theory of Computation Introduction to CS 1 st Semester, 2014 Sanghyun Park.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
The Beauty and Joy of Computing Lecture #6 Algorithms I Jon Kotker UC Berkeley EECS 2010, 2013 Microsoft
Advanced Algorithms Analysis and Design
Data Structures and Algorithms
Unit 1. Sorting and Divide and Conquer
Turing Machines.
Algorithms Furqan Majeed.
Objective of This Course
Coding Concepts (Basics)
Algorithms CSE 120 Winter 2018 Instructor: Teaching Assistants:
Algorithms.
Asst. Dr.Surasak Mungsing
The Nature of Computing
Presentation transcript:

In the news: A recently security study suggests that a computer worm that ran rampant several years ago is still running on many machines, including 50% of Fortune 500 companies and US government agencies. The worm is capable of redirecting the user’s web requests and installing arbitrary software. The Beauty and Joy of Computing Lecture #6: Algorithms Photo credit to genericitis

Rubik's Cube Champion Feliks Zemdegs

What is an algorithm? An algorithm is any well-defined computational procedure that takes some value or set of values as input and produces some value or set of values as output. The concept of algorithms, however, is far older than computers.

Early Algorithms Dances, ceremonies, recipes, and building instructions are all conceptually similar to algorithms. Babylonians defined some fundamental mathematical procedures ~3,600 years ago. Photo credit to Daniel Niles

Algorithms You've Seen Multiplication algorithm (for humans) 187 X X X

Algorithms You've Seen Length of word Whether a word appears in a list Whether a list is sorted Pick a random word of length x from list

Commonly Used Algorithms Luhn algorithm Credit card number validation Damerau–Levenshtein distance Spell-checkers PageRank Google’s way of measuring “reputation” of web pages EdgeRank Facebook’s method for determining what appears in your news feed

Choosing a Technique Most problems can be solved in more than one way, meaning that those problems have multiple algorithms to describe how to find the solution. Not all of these algorithms are created equal. Very often we have to make some trade-offs when we select a particular one. We'll talk more about this next time.

Ways to Attack Problems There are many different categories of algorithms. Three common groups are: “Brute force” Keep trying stuff until something works. Top-down Divide the full problem up into smaller subproblems. Bottom-up Start with simple solutions and build up to complex ones.

Algorithms vs. Functions & Procedures A function or procedure is an implementation of an algorithm. Algorithms are conceptual definitions of how to accomplish a task and are language agnostic. Functions and procedures are written in particular languages and can be run to produce results.

Turing Completeness A language that is Turing complete can do anything that other Turing complete languages can do. A language cannot be more powerful than a Turing complete language. What does it mean for a language to be Turing complete? Turing Machine by Tom Dunne

Turing Completeness A Turing machine is a conceptual device made up of an infinitely long tape (think VCR’s) and a device that can read & write data to the tape. A universal Turing machine is a Turing machine that can simulate any Turing machine. A Turing complete language is the real-world equivalent of a UTM. Turing Machine by Tom Dunne

Algorithm Correctness TOTAL Correctness Always reports, and the answer is always correct. PARTIAL Correctness Sometimes reports, and the answer is always correct when it reports. We don't only want algorithms to be fast and efficient; we want them to be correct! We also have probabilistic algorithms that have a certain probability of returning the right answer.

Summary ● The concept of an algorithm has been around forever, and is an integral topic in CS. ● Algorithms are well- defined procedures that can take inputs and produce output. ● We're constantly dealing with trade-offs when selecting / building algorithms. ● Correctness is particularly important and testing is the most practical strategy to ensure this.