The Origins of “Algorithm”

Download Report

Transcript The Origins of “Algorithm”

The Origins of “Algorithm”

The Origins of the Term “Algorithm”

Developing Algorithm Using Stepwise Refinement • Read the problem statement carefully • Rewrite it in your own words if it is not clear • Highlight the nouns and look for data items • Highlight the verbs to determine the work that needs to be done • Write the initial algorithm that just describes the inputs, outputs and work to be done

Stepwise Refinement • Now go back to each step in the initial algorithm and refine it to describe how it will be implemented • The Key steps are: • Rewrite the statement if not clear • Nouns==>Data, Verbs==>Action • Initial Algorithm(WHAT) • Final Algorithm(HOW)

Algorithm Development Exercise •

Problem 1

• A Sunoco gas station offers 5 cents per gallon discount each Sunday. If a person fills up 20 gallons every week, how much money will that person save in X weeks?

Algorithm Development Exercise •

Problem 2

• Given the radius of a circle, develop an algorithm that computes the area and circumference

Algorithm Development Exercise •

Problem 3

• Write a cash register algorithm that will compute 7 percent sales tax at the price of an item and then add the tax to the price to obtain the final price

Properties of Algorithms • Simplicity • Precision • Various Levels of Abstraction

Algorithms • Algorithms specify the “behavior” • Programs in specific languages just express the algorithm in one particular form

Information • Information means knowledge about something • Data is a specific representation of information

Components of An Algorithm • Data Structures • Data Manipulation Instructions • Conditional Expressions • (

if

price

greater than

my_limit

then

don’t buy) • Control Structures • (

while

(condition)

do

statement • Modules

Levels of Abstraction • Details are HIDDEN if we use TOP DOWN approach to describe algorithms • Example: Counting names that begin with ‘A’ in a list of names

Recap • What is the advantage of hiding details at the initial level of algorithm development?

• What properties of an object must be known to us before we can use it?

• How can we make software reusable?

• How many types of statements can be part of an algorithm?