Title: Algorithms
1Algorithms
2Problem Solving
- Your roommate, who is taking CS139, is in a
panic. He is worried that he might lose his
financial aid if his GPA goes under 2.0 - How can he figure out what his current GPA is?
- How can you build a process that any student can
use to tell them what GPA they have based on
grades provided thus far?
3Algorithm 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.
4References for this lecture
- Schaums Outline Chapter 2
5Problem Solving
- Understand the problem (and the audience)
- Are you making a pie?
- Needing directions?
- Putting together a piece of equipment?
- Trying to solve a mathematical puzzle?
- Devise a plan
- Is this similar to something else?
- Who is the audience for the solution?
- What are the required steps?
6Problem Solving ( Contd )
- Carry out the plan (implement)
- Does it work?
- Is each step correct? Necessary?
- Is the solution accurate? (Correct)
- Will it always lead to a solution
7Algorithm 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.
8Algorithm 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.
9Notice
- Notice the term finite. Algorithms should lead
to an eventual solution. - Step by step process. Each step should do one
logical action.
10Algorithms
- Algorithms are addressed to some audience.
Consider - A set of instructions for building a childs
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 GPAs.
11Audience
- 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 dont know. - An audience might include people or a computer.
12Good 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
13Precision
- 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.
14Simplicity
- 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
15It 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.
16Or 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.
17Abstraction, 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.
18Diagrammatically
Drive the car to school
Get directions
Turn left out of your driveway
Start the car
At the next light, turn right.
Follow the directions
At the intersection with I-66, take the on-ramp
for I-66 West
Get parking pass
Drive to the destination
Level 1
Level 3
Find a place to park
Stop the car
Level 2
19Other 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.
20Steps from Schaums
- 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.
21In class exercise
- In your group, create an algorithm to calculate a
semester GPA. You may use a calculator. - Recall
- GPA is based on the letter grade achieved in the
class and the number of credit hours for the
class. - Generally QPs A 4.0, B 3.0, C2.0, D1.0,
F0.0 and a adds .3 to the grade and a
subtracts .3 from the QP. - The semester GPA is then the average QP for each
credit hour attempted.
22For example
- For example, a student is taking 4 classes
- CS139 4 credits C
- CS110 1 credit A
- GWRIT103 3 credits B
- GHIST101 3 credits C-
- What is the students semester average?
- How did you figure it out?
- How can you describe that process for others in
the class?
23Now trade papers with another group
24Look at the GPA calculation algorithm
- What properties does the testing algorithm
display? Is is simple, precise, etc. - Test the solution using a couple of different
test cases. Does the algorithm work for those
different cases? - What happens if the grades are all Fs? All As
(limits)? - What about different numbers of classes? One or 6?
25Next up
- You will create some other algorithms in lab.
- Please be on time for your selected section.
- Focus on the 5 principles as you are building
your algorithms. - Tomorrow is the last day to bring in folders for
credit. Check blackboard to see if you have
given me a folder. - Be sure to read Chapter 2 in Schaums for
Wednesdays class.