Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.

Slides:



Advertisements
Similar presentations
CS107: Introduction to Computer Science Lecture 2 Jan 29th.
Advertisements

1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, Java Version, Third Edition.
CHAPTER 5: Repetition Control Structure. Objectives  To develop algorithms that use DOWHILE and REPEAT.. UNTIL structures  Introduce a pseudocode for.
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, C++ Version, Third Edition Additions by Shannon Steinfadt SP’05.
Program Design and Development
Chapter 5: Control Structures II (Repetition)
Chapter 2 The Algorithmic Foundations of Computer Science
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5: Algorithms Computer Science: An Overview Tenth Edition by J. Glenn.
Slides prepared by Rose Williams, Binghamton University Chapter 3 Flow of Control Loops in Java.
Chapter 2: Design of Algorithms
Lecture Notes 1/21/04 Program Design & Intro to Algorithms.
Chapter 3: The Efficiency of Algorithms Invitation to Computer Science, C++ Version, Fourth Edition.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Chapter 3: The Efficiency of Algorithms
Chapter 2: Algorithm Discovery and Design
Algorithms. Introduction Before writing a program: –Have a thorough understanding of the problem –Carefully plan an approach for solving it While writing.
Chapter 1 Program Design
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
ECE122 L9: While loops March 1, 2007 ECE 122 Engineering Problem Solving with Java Lecture 9 While Loops.
11 Chapter 4 LOOPS AND FILES. 22 THE INCREMENT AND DECREMENT OPERATORS To increment a variable means to increase its value by one. To decrement a variable.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5: Algorithms Computer Science: An Overview Tenth Edition by J. Glenn.
Fundamentals of Python: From First Programs Through Data Structures
Introduction to High-Level Language Programming
Fundamentals of Python: First Programs
CPSC 171 Introduction to Computer Science 3 Levels of Understanding Algorithms More Algorithm Discovery and Design.
Simple Program Design Third Edition A Step-by-Step Approach
Chapter 5: Control Structures II (Repetition)
CHAPTER 5: CONTROL STRUCTURES II INSTRUCTOR: MOHAMMAD MOJADDAM.
计算机科学概述 Introduction to Computer Science 陆嘉恒 中国人民大学 信息学院
Invitation to Computer Science 6th Edition
Invitation to Computer Science, Java Version, Second Edition.
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
Chapter 4: Decision Making with Control Structures and Statements JavaScript - Introductory.
Developing an Algorithm
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
CPSC 171 Introduction to Computer Science Algorithm Discovery and Design.
Chapter 5: Control Structures II (Repetition). Objectives In this chapter, you will: – Learn about repetition (looping) control structures – Learn how.
An Introduction to Programming with C++ Sixth Edition Chapter 7 The Repetition Structure.
Control Structures II Repetition (Loops). Why Is Repetition Needed? How can you solve the following problem: What is the sum of all the numbers from 1.
Pseudocode Simple Program Design Third Edition A Step-by-Step Approach 2.
Chapter 5: Control Structures II J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design,
Repetition Control Structures Simple Program Design Third Edition A Step-by-Step Approach 5.
Pseudocode Algorithms Using Sequence, Selection, and Repetition Simple Program Design Third Edition A Step-by-Step Approach 6.
CMP-MX21: Lecture 5 Repetitions Steve Hordley. Overview 1. Repetition using the do-while construct 2. Repetition using the while construct 3. Repetition.
Programming Logic and Design, Introductory, Fourth Edition1 Understanding the Three Basic Structures Structure: a basic unit of programming logic Any program.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science.
INVITATION TO Computer Science 1 11 Chapter 2 The Algorithmic Foundations of Computer Science.
Programming Logic and Design Fifth Edition, Comprehensive
Java Programming: From Problem Analysis to Program Design, 4e Chapter 5 Control Structures II: Repetition.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
Lecture 7 – Repetition (Loop) FTMK, UTeM – Sem /2014.
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.
Programming Logic and Design Fourth Edition, Introductory Chapter 2 Understanding Structure.
Control Structure Senior Lecturer
Chapter 3: The Efficiency of Algorithms
Chapter 5: Algorithms Computer Science: An Overview Tenth Edition
Understanding the Three Basic Structures
Algorithm Discovery and Design
Algorithm Discovery and Design
Three Special Structures – Case, Do While, and Do Until
ICT Gaming Lesson 2.
Discovery and Design of Algorithms
Chapter 10: Compilers and Language Translation
Presentation transcript:

Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition

Invitation to Computer Science, C++ Version, Third Edition 2 Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem solving

Invitation to Computer Science, C++ Version, Third Edition 3 Introduction This chapter discusses algorithms and algorithmic problem solving using three problems:  Searching lists  Finding maxima and minima  Matching patterns

Invitation to Computer Science, C++ Version, Third Edition 4 Representing Algorithms Natural language  Language spoken and written in everyday life  Examples: English, Spanish, Arabic, etc.  Problems with using natural language for algorithms Verbose Imprecise Relies on context and experiences to give precise meaning to a word or phrase

Invitation to Computer Science, C++ Version, Third Edition 5 Figure 2.1 The Addition Algorithm of Figure 1.2 Expressed in Natural Language

Invitation to Computer Science, C++ Version, Third Edition 6 Representing Algorithms High-level programming language  Examples: C++, Java  Problem with using a high-level programming language for algorithms During the initial phases of design, we are forced to deal with detailed language issues

Invitation to Computer Science, C++ Version, Third Edition 7 Figure 2.2 The Beginning of the Addition Algorithm of Figure 1.2 Expressed in a High-Level Programming Language

Invitation to Computer Science, C++ Version, Third Edition 8 Pseudocode English language constructs modeled to look like statements available in most programming languages Steps presented in a structured manner (numbered, indented, etc.) No fixed syntax for most operations is required

Invitation to Computer Science, C++ Version, Third Edition 9 Pseudocode (continued) Less ambiguous and more readable than natural language Emphasis is on process, not notation Well-understood forms allow logical reasoning about algorithm behavior Can be easily translated into a programming language

Invitation to Computer Science, C++ Version, Third Edition 10 Sequential Operations Types of algorithmic operations  Sequential  Conditional  Iterative

Invitation to Computer Science, C++ Version, Third Edition 11 Sequential Operations (continued) Computation operations  Example Set the value of “variable” to “arithmetic expression”  Variable Named storage location that can hold a data value

Invitation to Computer Science, C++ Version, Third Edition 12 Sequential Operations (continued) Input operations  To receive data values from the outside world  Example Get a value for r, the radius of the circle Output operations  To send results to the outside world for display  Example Print the value of Area

Invitation to Computer Science, C++ Version, Third Edition 13 Figure 2.3 Algorithm for Computing Average Miles per Gallon

Invitation to Computer Science, C++ Version, Third Edition 14 Conditional and Iterative Operations Sequential algorithm  Also called straight-line algorithm  Executes its instructions in a straight line from top to bottom and then stops Control operations  Conditional operations  Iterative operations

Invitation to Computer Science, C++ Version, Third Edition 15 Conditional and Iterative Operations (continued) Conditional operations  Ask questions and choose alternative actions based on the answers  Example if x is greater than 25 then print x else print x times 100

Invitation to Computer Science, C++ Version, Third Edition 16 Conditional and Iterative Operations (continued) Iterative operations  Perform “looping” behavior; repeating actions until a continuation condition becomes false  Loop The repetition of a block of instructions

Invitation to Computer Science, C++ Version, Third Edition 17 Conditional and Iterative Operations (continued)  Examples while j > 0 do set s to s + a j set j to j - 1 repeat print a k set k to k + 1 until k > n

Invitation to Computer Science, C++ Version, Third Edition 18 Figure 2.4 Second Version of the Average Miles per Gallon Algorithm

Invitation to Computer Science, C++ Version, Third Edition 19 Conditional and Iterative Operations (continued) Components of a loop  Continuation condition  Loop body Infinite loop  The continuation condition never becomes false  An error

Invitation to Computer Science, C++ Version, Third Edition 20 Figure 2.5 Third Version of the Average Miles per Gallon Algorithm

Invitation to Computer Science, C++ Version, Third Edition 21 Conditional and Iterative Operations Pretest loop  Continuation condition tested at the beginning of each pass through the loop  It is possible for the loop body to never be executed  While loop

Invitation to Computer Science, C++ Version, Third Edition 22 Conditional and Iterative Operations (continued) Posttest loop  Continuation condition tested at the end of loop body  Loop body must be executed at least once  Do/While loop

Invitation to Computer Science, C++ Version, Third Edition 23 Figure 2.6 Summary of Pseudocode Language Instructions

Invitation to Computer Science, C++ Version, Third Edition 24 Example 1: Looking, Looking, Looking Examples of algorithmic problem solving  Sequential search: find a particular value in an unordered collection  Find maximum: find the largest value in a collection of data  Pattern matching: determine if and where a particular pattern occurs in a piece of text

Invitation to Computer Science, C++ Version, Third Edition 25 Example 1: Looking, Looking, Looking (continued) Task  Find a particular person’s name from an unordered list of telephone subscribers Algorithm outline  Start with the first entry and check its name, then repeat the process for all entries

Invitation to Computer Science, C++ Version, Third Edition 26 Example 1: Looking, Looking, Looking (continued) Algorithm discovery  Finding a solution to a given problem Naïve sequential search algorithm  For each entry, write a separate section of the algorithm that checks for a match  Problems Only works for collections of exactly one size Duplicates the same operations over and over

Invitation to Computer Science, C++ Version, Third Edition 27 Example 1: Looking, Looking, Looking (continued) Correct sequential search algorithm  Uses iteration to simplify the task  Refers to a value in the list using an index (or pointer)  Handles special cases (like a name not found in the collection)  Uses the variable Found to exit the iteration as soon as a match is found

Invitation to Computer Science, C++ Version, Third Edition 28 Figure 2.9 The Sequential Search Algorithm

Invitation to Computer Science, C++ Version, Third Edition 29 Example 1: Looking, Looking, Looking (continued) The selection of an algorithm to solve a problem is greatly influenced by the way the data for that problem are organized

Invitation to Computer Science, C++ Version, Third Edition 30 Example 2: Big, Bigger, Biggest Task  Find the largest value from a list of values Algorithm outline  Keep track of the largest value seen so far (initialized to be the first in the list)  Compare each value to the largest seen so far, and keep the larger as the new largest

Invitation to Computer Science, C++ Version, Third Edition 31 Example 2: Big, Bigger, Biggest (continued) Once an algorithm has been developed, it may itself be used in the construction of other, more complex algorithms Library  A collection of useful algorithms  An important tool in algorithm design and development

Invitation to Computer Science, C++ Version, Third Edition 32 Example 2: Big, Bigger, Biggest (continued) Find Largest algorithm  Uses iteration and indices like previous example  Updates location and largest so far when needed in the loop

Invitation to Computer Science, C++ Version, Third Edition 33 Figure 2.10 Algorithm to Find the Largest Value in a List

Invitation to Computer Science, C++ Version, Third Edition 34 Example 3: Meeting Your Match Task  Find if and where a pattern string occurs within a longer piece of text Algorithm outline  Try each possible location of pattern string in turn  At each location, compare pattern characters against string characters

Invitation to Computer Science, C++ Version, Third Edition 35 Example 3: Meeting Your Match (continued) Abstraction  Separating high-level view from low-level details  Key concept in computer science  Makes difficult problems intellectually manageable  Allows piece-by-piece development of algorithms

Invitation to Computer Science, C++ Version, Third Edition 36 Example 3: Meeting Your Match (continued) Top-down design  When solving a complex problem: Create high-level operations in first draft of an algorithm After drafting the outline of the algorithm, return to the high-level operations and elaborate each one Repeat until all operations are primitives

Invitation to Computer Science, C++ Version, Third Edition 37 Example 3: Meeting Your Match (continued) Pattern-matching algorithm  Contains a loop within a loop External loop iterates through possible locations of matches to pattern Internal loop iterates through corresponding characters of pattern and string to evaluate match

Invitation to Computer Science, C++ Version, Third Edition 38 Figure 2.12 Final Draft of the Pattern-Matching Algorithm

Invitation to Computer Science, C++ Version, Third Edition 39 Summary Algorithm design is a first step in developing an algorithm Must also:  Ensure the algorithm is correct  Ensure the algorithm is sufficiently efficient Pseudocode is used to design and represent algorithms

Invitation to Computer Science, C++ Version, Third Edition 40 Summary Pseudocode is readable, unambiguous, and analyzable Algorithm design is a creative process; uses multiple drafts and top-down design to develop the best solution Abstraction is a key tool for good design