Presentation is loading. Please wait.

Presentation is loading. Please wait.

Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science.

Similar presentations


Presentation on theme: "Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science."— Presentation transcript:

1 Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science

2 Invitation to Computer Science, 5th Edition Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem solving 2

3 Invitation to Computer Science, 5th Edition Introduction Chapter 1 –Introduced algorithms and algorithmic problem solving This chapter –Develops more fully the notions of algorithm and algorithmic problem solving 3

4 Invitation to Computer Science, 5th Edition Representing Algorithms Pseudocode –Natural language: used to express algorithms –Problems using natural language to represent algorithms Natural language can be extremely verbose Lack of structure makes it difficult to locate specific sections of the algorithm Natural language is too “rich” in interpretation and meaning 4

5 Invitation to Computer Science, 5th Edition Figure 2.1 The Addition Algorithm of Figure 1.2 Expressed in Natural Language 5

6 Invitation to Computer Science, 5th Edition Pseudocode (continued) Natural languages –Not sufficiently precise to represent algorithms Pseudocode –Used to design and represent algorithms –A compromise between the two extremes of natural and formal languages 6

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

8 Invitation to Computer Science, 5th Edition Sequential Operations Basic sequential operations –Computation, input, and output Instruction for performing a computation and saving the result –Set the value of “variable” to “arithmetic expression” Variable –Storage location that can hold a data value 8

9 Invitation to Computer Science, 5th Edition Sequential Operations (continued) Pseudocode –Not a precise set of notational rules to be memorized and rigidly followed Input operations –Submit to the computing agent data values from the outside world that it may then use in later instructions Output operations –Send results from the computing agent to the outside world 9

10 Invitation to Computer Science, 5th Edition Figure 2.3 Algorithm for Computing Average Miles per Gallon 10

11 Invitation to Computer Science, 5th Edition Conditional and Iterative Operations Sequential algorithm –Sometimes called a straight-line algorithm Control operations –Conditional and iterative –Allow us to alter the normal sequential flow of control in an algorithm Conditional statements –The “question-asking” operations of an algorithm – If/then/else 11

12 Invitation to Computer Science, 5th Edition Figure 2.4 The If/Then/Else Pseudocode Statement 12

13 Invitation to Computer Science, 5th Edition Figure 2.5 Second Version of the Average Miles per Gallon Algorithm 13

14 Invitation to Computer Science, 5th Edition Conditional and Iterative Operations (continued) Loop –The repetition of a block of instructions –While statement Continuation condition –Determines if statement is true or false Infinite loop –Continuation condition never becomes false 14

15 Invitation to Computer Science, 5th Edition Figure 2.5 Second Version of the Average Miles per Gallon Algorithm 15

16 Invitation to Computer Science, 5th Edition Figure 2.6 Execution of the While Loop 16

17 Invitation to Computer Science, 5th Edition Conditional and Iterative Operations (continued) Loop example Step Operation 1 Set the value of count to 1 2 While (count ≤ 100) do step 3 to step 5 3 Set square to (count x count) 4 Print the values of count and square 5 Add 1 to count 17

18 Invitation to Computer Science, 5th Edition Conditional and Iterative Operations (continued) Pretest loop –Continuation condition is tested at the beginning of each pass through the loop Posttest loop –Continuation condition is tested at the end of the loop body, not the beginning Primitives –Instructions that computing agent understands and is capable of executing without further explanation 18

19 Invitation to Computer Science, 5th Edition Figure 2.7 Third Version of the Average Miles per Gallon Algorithm 19

20 Invitation to Computer Science, 5th Edition Figure 2.8 Execution of the Do/While Posttest Loop 20

21 Invitation to Computer Science, 5th Edition Figure 2.9 Summary of Pseudocode Language Instructions 21

22 Invitation to Computer Science, 5th Edition Examples of Algorithmic Problem Solving Example 1: Go Forth and Multiply Given 2 nonnegative integer values, a ≥ 0, b ≥ 0, compute and output the product (a 3 b) using the technique of repeated addition. That is, determine the value of the sum a + a + a +... + a (b times) 22

23 Invitation to Computer Science, 5th Edition Figure 2.10 Algorithm for Multiplication of Nonnegative Values via Repeated Addition 23

24 Invitation to Computer Science, 5th Edition Example 2: Looking, Looking, Looking Algorithm discovery –Finding a solution to a given problem Sequential search –Standard algorithm for searching an unordered list of values 24

25 Invitation to Computer Science, 5th Edition Figure 2.11 First Attempt at Designing a Sequential Search Algorithm 25

26 Invitation to Computer Science, 5th Edition Figure 2.12 Second Attempt at Designing a Sequential Search Algorithm 26

27 Invitation to Computer Science, 5th Edition Figure 2.13 The Sequential Search Algorithm 27

28 Invitation to Computer Science, 5th Edition Example 3: Big, Bigger, Biggest Library –Collection of useful algorithms Problem Given a value n ≥ 1 and a list containing exactly n unique numbers called A1, A2,..., An, find and print out both the largest value in the list and the position in the list where that largest value occurred 28

29 Invitation to Computer Science, 5th Edition Figure 2.14 Algorithm to Find the Largest Value in a List 29

30 Invitation to Computer Science, 5th Edition Example 4: Meeting Your Match Pattern matching –Process of searching for a special pattern of symbols within a larger collection of information –Is assisting microbiologists and geneticists studying and mapping the human genome 30

31 Invitation to Computer Science, 5th Edition Example 4: Meeting Your Match (continued) Pattern-matching problem You will be given some text composed of n characters that will be referred to as T1 T2... Tn. You will also be given a pattern of m characters, m ≤ n, that will be represented as P1 P2... Pm. The algorithm must locate every occurrence of the pattern within the text. The output of the algorithm is the location in the text where each match occurred. For this problem, the location of a match is defined to be the index position in the text where the match begins 31

32 Invitation to Computer Science, 5th Edition Example 4: Meeting Your Match (continued) STEP 1 –The matching process: T1 T2 T3 T4 T5 … P1 P2 P3 STEP 2 –The slide forward: T1 T2 T3 T4 T5 … –1-character slide -> P1 P2 P3 32

33 Invitation to Computer Science, 5th Edition Figure 2.15 First Draft of the Pattern-Matching Algorithm 33

34 Invitation to Computer Science, 5th Edition Example 4: Meeting Your Match (continued) Examples of higher-level constructs –Sort the entire list into ascending order –Attempt to match the entire pattern against the text –Find a root of the equation Abstraction –Use of high-level instructions during the design process Top-down design –Viewing an operation at a high level of abstraction 34

35 Invitation to Computer Science, 5th Edition Figure 2.16 Final Draft of the Pattern-Matching Algorithm 35

36 Invitation to Computer Science, 5th Edition Summary Algorithm design –A first step in developing an algorithm Algorithm design must: –Ensure the algorithm is correct –Ensure the algorithm is sufficiently efficient Pseudocode –Used to design and represent algorithms 36

37 Invitation to Computer Science, 5th Edition Summary (continued) Pseudocode –Readable, unambiguous, and able to be analyzed Algorithm design –Uses multiple drafts and top-down design to develop the best solution Abstraction –A key tool for good design 37


Download ppt "Invitation to Computer Science 5 th Edition Chapter 2 The Algorithmic Foundations of Computer Science."

Similar presentations


Ads by Google