Apidays New York 2024 - The value of a flexible API Management solution for O...
03 algorithm properties
1. Algorithms
Chapter 10
What's The Pla
Algorithmic Thin
2. Problem Solving
Your 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?
3. 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.
4. Problem Solving
1. 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 plan
1. Is this similar to something else?
2. Who is the audience for the solution?
3. What are the required steps?
5. Problem Solving ( Cont’d )
3. Carry out the plan (implement)
1. Does it work?
2. Is each step correct? Necessary?
3. Is the solution accurate? (Correct)
1. Will it always lead to a solution
6. 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.
7. 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.”
8. Notice
Notice the term finite. Algorithms should
lead to an eventual solution.
Step by step process. Each step should do
one logical action.
9. 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.
10. 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.
11. 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
12. 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.
13. 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”
14. 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.
15. 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.
16. 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.
17. Diagrammatically
Get directions Turn left out of your
Drive the car to
driveway
Start the car
At the next light, turn right.
school
Follow the directions
At the intersection with I-
Get parking pass 66, take the on-ramp for
I-66 West
Drive to the
destination …
Level 1 Find a place to park Level 3
Stop the car
Level 2
18. 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.
19. 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.
20. 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?