Presentation is loading. Please wait.

Presentation is loading. Please wait.

Invitation to Computer Science 6th Edition

Similar presentations


Presentation on theme: "Invitation to Computer Science 6th Edition"— Presentation transcript:

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

2 Objectives In this chapter, you will learn about:
Representing algorithms Examples of algorithmic problem solving Algorithm: clear, precise, unambiguous Searching lists Finding maxima Minima Matching patterns Invitation to Computer Science, 6th Edition

3 Introduction Chapter 1 This chapter
Introduced algorithms and algorithmic problem solving This chapter Develops more fully the notions of algorithm and algorithmic problem solving In chapter1, we introduced algorithms and algorithmic problem solving. Develops more fully the notions of algorithms and algorithmic problem solving and applies these ideas to problems that are of interest to computer scientists Searching lists Finding maxima Minima Matching patterns Invitation to Computer Science, 6th Edition

4 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 3 explicit problem Invitation to Computer Science, 6th Edition

5 P45 When you are finished with that operation At the end of Row 7 Confuse High level langauge Figure 2.1 The Addition Algorithm of Figure 1.2 Expressed in Natural Language Invitation to Computer Science, 6th Edition

6 Representing Algorithms(continued)
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, 6th Edition

7 High-Level Programming Language
API Application programming interface is a protocol intended to be used as an interface by software components to communicate with each other. Figure 2.2 The Beginning of the Addition Algorithm of Figure 1.2 Expressed in a High-Level Programming Language Invitation to Computer Science, 6th Edition

8 Pseudocode (continued)
Natural languages Not sufficiently precise to represent algorithms High-level programming language During the initial phases of design, we are forced to deal with detailed language issues Invitation to Computer Science, 6th Edition

9 Pseudocode Pseudocode Used to design and represent algorithms
A compromise between the two extremes of natural and formal languages a program code unrelated to the hardware of a particular computer and requiring conversion to the code used by the computer before the program can be used. Pseudo code represents a compromise between the two extremes of natural and formal languages. Invitation to Computer Science, 6th Edition

10 Figure 1.2 Algorithm for Adding Two m-digit Numbers
Before talking about the detail of this algorithm, another concept need to explain Mathematic formation need variable The problem here is that one variable is only range from 0 to 10. but two digits add up, it sum may larger then 10. we use the another variable named carry to store this information. The valve of carry can be adjusted during the algorithm. Figure 1.2 Algorithm for Adding Two m-digit Numbers Invitation to Computer Science, 6th Edition

11 Pseudocode(continued)
English language constructs modeled to look like statements available in most programming languages Steps presented in a structured manner (numbered, indented, and so on) No fixed syntax for most operations is required This is a set of english language constructs designed to resemble statements in a programming language but that do not actually run on a computer Invitation to Computer Science, 6th Edition

12 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, 6th Edition

13 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 Invitation to Computer Science, 6th Edition

14 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 Add a and b to get c Set the value of c to (a+b) Invitation to Computer Science, 6th Edition

15 Figure 2.3 Algorithm for Computing Average Miles per Gallon
Variable in computation Variable in input Invitation to Computer Science, 6th Edition

16 Invitation to Computer Science, 6th Edition

17 Conditional and Iterative Operations
Sequential algorithm Sometimes called a straight-line algorithm Executes its instructions in a straight line from top to bottom and then stops Control operations Conditional and iterative Allow us to alter the normal sequential flow of control in an algorithm It can not solve all the problem in our real life. It can not select among alternative operations or perform a block of instructions more than once. Virtually all real-world problems are not straight-line in nature. They involve non-sequential operations such as branching and repetition Invitation to Computer Science, 6th Edition

18 Conditional and Iterative Operations (continued)
Conditional statements Ask questions and choose alternative actions based on the answers If then else Example if x is greater than 25 then print x else print x times 100 Invitation to Computer Science, 6th Edition

19 Figure 2.4 The If/Then/Else Pseudocode Statement
Flow chart Diamond to represent condition Rectangle to represent process Arrow to represent the order of these operations. Figure 2.4 The If/Then/Else Pseudocode Statement Invitation to Computer Science, 6th Edition

20 Figure 2.5 Second Version of the Average Miles per Gallon Algorithm
Extends Figure 2.5 Second Version of the Average Miles per Gallon Algorithm Invitation to Computer Science, 6th Edition

21 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 The real power of a computers comes not from doing a calculation once but from doing it many, many times. Invitation to Computer Science, 6th Edition

22 Conditional and Iterative Operations (continued)
Examples while j > 0 do set s to s + aj set j to j – 1 do print ak set k to k + 1 while k < n Invitation to Computer Science, 6th Edition

23 Figure 2.6 Execution of the While Loop
Invitation to Computer Science, 6th Edition

24 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 the start position of the loop body lines farther from the edge of the page than the line of while Set space or set back It is clear to reader of the algorithm which operations belong inside the loop Invitation to Computer Science, 6th Edition

25 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 Invitation to Computer Science, 6th Edition

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

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

28 Invitation to Computer Science, 6th Edition

29 Figure 2.9 Summary of Pseudocode Language Instructions
Invitation to Computer Science, 6th Edition

30 Examples of Algorithmic Problem Solving
Go Forth and Multiply: Multiply two numbers using repeated addition 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, 6th Edition

31 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) Invitation to Computer Science, 6th Edition

32 Examples of Algorithmic Problem Solving((continued))
Algorithm outline Create a loop that executes exactly b times, with each execution of the loop adding the value of a to a running total Invitation to Computer Science, 6th Edition

33 Set the values of count to 0 Set the value of product to 0
Get values for a and b Set the values of count to 0 Set the value of product to 0 While (count < b) do Set the value of product to (product + a) Set the value of count to (count + 1) End of loop Print the value of product Remember of Chapter 1 that one of the fundamental characteristics of an algorithm is that it produces an observable result. In chapter 1, we stated that it is not only algorithmic correctness we are after but efficiency and elegance as well. Invitation to Computer Science, 6th Edition

34 More to say the algorithmic efficiency and elegance in Chapter 3
Figure 2.10 Algorithm for Multiplication of Nonnegative Values via Repeated Addition Invitation to Computer Science, 6th Edition

35 Invitation to Computer Science, 6th Edition

36 Invitation to Computer Science, 6th Edition

37 Modified version of Multiply
Devise an algorithm that uses a loop to take in a positive integer n and a real number x as the input and computes and print xn . Assume that the computing agent knows how to multiply but do not know how to calculate exponential. Hint: x0 = 1; x1 = x; x2 = x*x; x3= x*x*x; etc. Make sure you stop the algorithm at some point. Most interesting computational problems deal not with a few numbers but with huge collections of data, such as lists of names, sequences of characters, or sets of experimental data. Invitation to Computer Science, 6th Edition

38 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 Binary Search (extended example) In computer science, a binary search or half-interval search algorithm finds the position of a specified value (the input “key”) within a sorted array. It is the most challenging and creative part of the problem-solving process. Studying these examples, together with lots of practice, is by far the best way to learn creative problem solving. Invitation to Computer Science, 6th Edition

39 Example 2: 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 Assume that we have a list of names that we define as N1, N2, N3, …, N10,000, along with the 10,000 telephone numbers of those individuals, denoted as T1, T2, T3, …, T10,000 Invitation to Computer Science, 6th Edition

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

41 Example 2: Looking, Looking, Looking (continued))
For each entry, write a separate section of the algorithm that checks for a match Problems of naïve sequential search algorithm Only works for collections of exactly one size Duplicates the same operations over and over It does not use the powerful algorithmic concept of iteration. Invitation to Computer Science, 6th Edition

42 Example 2: 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 (such as 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, 6th Edition

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

44 Figure 2.13 The Sequential Search Algorithm
Invitation to Computer Science, 6th Edition

45 Invitation to Computer Science, 6th Edition

46 Example 2: Looking, Looking, Looking (continued)
The selection of an algorithm to solve a problem is greatly influenced by the way the data for that problem is organized Invitation to Computer Science, 6th Edition

47 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 Invitation to Computer Science, 6th Edition

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

49 Invitation to Computer Science, 6th Edition

50 Invitation to Computer Science, 6th Edition

51 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 Invitation to Computer Science, 6th Edition

52 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 T Tn. You will also be given a pattern of m characters, m ≤ n, that will be represented as P1 P 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 Invitation to Computer Science, 6th Edition

53 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 Invitation to Computer Science, 6th Edition

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

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

56 Invitation to Computer Science, 6th Edition

57 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 Invitation to Computer Science, 6th Edition

58 Summary Algorithm design Algorithm design must: Pseudocode
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 Invitation to Computer Science, 6th Edition

59 Summary (continued) Pseudocode Algorithm design Abstraction
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 Invitation to Computer Science, 6th Edition

60 Test 1 4 types questions (11) Close notes & Close books Panther Card
Concept: computer science, algorithm, Von Neumann architecture Design: using Pseudocode code Correction: verify the given algorithms Discussion: be creative & comprehensive Close notes & Close books Panther Card Feb 4th: 3:00-4:15pm Assignment 1 due on Feb 4th before 4:15pm Invitation to Computer Science, 6th Edition


Download ppt "Invitation to Computer Science 6th Edition"

Similar presentations


Ads by Google