Algorithms - PowerPoint PPT Presentation

About This Presentation
Title:

Algorithms

Description:

Algorithms CS139 Aug 30, 2004 Problem Solving Your roommate, who is taking CS139, is in a panic. He is worried that he might lose his financial aid if his GPA ... – PowerPoint PPT presentation

Number of Views:161
Avg rating:3.0/5.0
Slides: 26
Provided by: jmu
Learn more at: https://users.cs.jmu.edu
Category:

less

Transcript and Presenter's Notes

Title: Algorithms


1
Algorithms
  • CS139 Aug 30, 2004

2
Problem 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?

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
References for this lecture
  • Schaums Outline Chapter 2

5
Problem Solving
  1. Understand the problem (and the audience)
  2. Are you making a pie?
  3. Needing directions?
  4. Putting together a piece of equipment?
  5. Trying to solve a mathematical puzzle?
  6. Devise a plan
  7. Is this similar to something else?
  8. Who is the audience for the solution?
  9. What are the required steps?

6
Problem 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

7
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.

8
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.

9
Notice
  • Notice the term finite. Algorithms should lead
    to an eventual solution.
  • Step by step process. Each step should do one
    logical action.

10
Algorithms
  • 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.

11
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 dont know.
  • An audience might include people or a computer.

12
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

13
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.

14
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

15
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.

16
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.

17
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.

18
Diagrammatically
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
19
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.

20
Steps 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.

21
In 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.

22
For 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?

23
Now trade papers with another group
24
Look 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?

25
Next 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.
Write a Comment
User Comments (0)
About PowerShow.com