20
Algorithms C hapter10 W hat's The Pla Algorithm ic Thin

03 algorithm properties

Embed Size (px)

Citation preview

Page 1: 03 algorithm properties

Algorithms

Chapter 10

What's The Plan?:Algorithmic Thinking

Page 2: 03 algorithm properties

Problem SolvingYour roommate, who is taking Information

Technology II class, is in a panic. He is worried that he might lose his financial aid if his average goes under 6.0

How can he figure out what his current Average is?

How can you build a process that any student can use to tell them what average they have based on grades provided thus far?

Page 3: 03 algorithm properties

Algorithm Development Objectives At the end of this unit the student will:

define the term algorithm state 5 properties of a good algorithm from a given problem and stated audience, create

an appropriate algorithm using the properties stated above.

use the concept of abstraction and top-down design in creating an algorithm.

begin to think about the kinds of problems that have a computing solution.

Page 4: 03 algorithm properties

Problem Solving1. Understand the problem (and the audience)

1. Are you making a pie?2. Needing directions?3. Putting together a piece of equipment?4. Trying to solve a mathematical puzzle?

2. Devise a plan1. Is this similar to something else?2. Who is the audience for the solution?3. What are the required steps?

Page 5: 03 algorithm properties

Problem Solving ( Cont’d )3. Carry out the plan (implement)

1. Does it work?

2. Is each step correct? Necessary?

4. Is the solution accurate? (Correct)1. Will it always lead to a solution

Page 6: 03 algorithm properties

Algorithm Definition A logical sequence of steps for solving a

problem, … From http://Dictionary.msn.com

Dale and Lewis: a plan of solution for a problem Algorithm – An unambiguous (and precise) set of steps

for solving a problem (or sub-problem) in a finite amount of time using a finite amount of data.

Page 7: 03 algorithm properties

Algorithm Definition, cont Shackelford, Russell L. in Introduction to

Computing and Algorithms – “An algorithm is a specification of a behavioral

process. It consists of a finite set of instructions that govern behavior step-by-step.”

Page 8: 03 algorithm properties

Notice Notice the term finite. Algorithms should

lead to an eventual solution. Step by step process. Each step should do

one logical action.

Page 9: 03 algorithm properties

Algorithms Algorithms are addressed to some audience.

Consider: A set of instructions for building a child’s bicycle. A diagnostic checklist for a failure of some system on the

space shuttle. The algorithm for what to do when a nuclear reactor

begins to overheat. An algorithm that will run on a computer system to

calculate student GPA’s.

Page 10: 03 algorithm properties

Audience Each audience will have its own “rules” that

govern how we will address them, the language that they speak.

Each audience will have certain assumptions about what they know and don’t know.

An audience might include people or a computer.

Page 11: 03 algorithm properties

Good vs. Bad Algorithms All algorithms will have input, perform a

process, and produce output. A good algorithm should be:

Simple - relative Complete – account for all inputs & cases Correct (Right) should have appropriate levels of Abstraction. –

grouping steps into a single module Precise Mnemonic - SCRAP

Page 12: 03 algorithm properties

Precision Precision means that there is only one way to

interpret the instruction. Unambiguous Words like “maybe”, “sometimes” and

“occasionally” have no business in a well developed algorithm.

Instead of “maybe”, we can specify the exact circumstances in which an action will be carried out.

Page 13: 03 algorithm properties

Simplicity Simple can be defined as having no

unnecessary steps and no unnecessary complexity. (You may lose points if your algorithm contains unnecessary steps)

Each step of a well developed algorithm should carry out one logical step of the process. Avoid something like: “Take 2nd right after you

exit at King Street”

Page 14: 03 algorithm properties

It has Levels of Abstraction. From the Oxford English Dictionary,

abstraction is defined as: “The act or process of separating in thought, of

considering a thing independently of its associations; or a substance independently of its attributes; or an attribute or quality independently of the substance to which it belongs.”

Example: Add all the scores then divide the sum by the number of students to get the average.

Page 15: 03 algorithm properties

Or in other words The abstraction property lets us view an

algorithm as a series of high level aggregate steps, with the detail hidden in a lower level.

Page 16: 03 algorithm properties

Abstraction, cont. Instead of approaching a problem and worrying

about each and every thing you must do to solve the problem, you can begin to look at the major steps. (Top down design)

After the major steps, you can begin to fill in how you would accomplish the major step.

That fill in may lead to the need for additional levels to fill in those details, etc.

Top down design.

Page 17: 03 algorithm properties

Diagrammatically

Drive the car to

school

Get directions

Start the car

Follow the directions

Get parking pass

Drive to the destination

Turn left out of your driveway

At the next light, turn right.

At the intersection with I-66, take the on-ramp for

I-66 West

…Level 1

Level 2

Level 3Find a place to park

Stop the car

Page 18: 03 algorithm properties

Other algorithm attributes A good algorithm should be correct. A good algorithm should be complete. Shackelford again, “To be correct, an

algorithm must produce results that are correct and complete given any and all sets of appropriate data.”

And to be correct, an algorithm must proceed through to a conclusion.

Page 19: 03 algorithm properties

Steps from Schaum’s Analyze the problem and develop the specification. Design the solution

Test the solution as part of the design steps. Implement the program (code the program) Test the program Validate the program (further extensive testing) to

insure it works under all circumstances.

Page 20: 03 algorithm properties

For example: For example, a student is taking 4 classes:

Spanish – 4 credits – 6 English – 1 credit – 9 Computer Science – 3 credits – 86 P.E. – 3 credits – 5

What is the student’s semester average? How did you figure it out? How can you describe that process for others in the

class?