Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.

Slides:



Advertisements
Similar presentations
Problem Solving and Algorithm Design
Advertisements

Process Design (Specification)
6-1 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer problem-solving process and relate it to Polya’s.
Problem Solving and Algorithm Design
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
Chapter 1 - An Introduction to Computers and Problem Solving
Algorithms and Problem Solving-1 Algorithms and Problem Solving Mainly based on Chapter 6: “Problem Solving and Algorithm Design” from the Book: “Computer.
Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the five essential properties of an algorithm.
Chapter 10 Algorithmic Thinking. Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Learning Objectives List the five essential.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Introduction to Computers CS Dr. Zhizhang Shen Chapter 10: How to.
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Using Algorithms Copyright © 2008 by Helene G. Kershner.
Algorithms and Problem Solving
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
Chapter 6 Problem Solving and Algorithm Design Nell Dale John Lewis.
CS /29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms.
6-1 Problem Solving Problem solving is the act of finding a solution to a perplexing, distressing, vexing, or unsettled question.
Programming Fundamentals (750113) Ch1. Problem Solving
Lecture Notes 8/30/05 Program Design & Intro to Algorithms.
Design and Analysis of Algorithms
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Simple Program Design Third Edition A Step-by-Step Approach
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Introduction to problem solving. Introductory Discussion? What problems are you faced with daily? Do you think a computer can be designed to solve those.
An Introduction to Programming with C++ Sixth Edition
Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of.
PROGRAMMING. Objectives Define the term program List and explain the steps involved in developing a program.
Fundamentals of Algorithms MCS - 2 Lecture # 1
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Algorithms CS139 – Aug 30, Problem Solving Your roommate, who is taking CS139, is in a panic. He is worried that he might lose his financial aid.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
1 Section 2.1 Algorithms. 2 Algorithm A finite set of precise instructions for performing a computation or for solving a problem.
CS221 Algorithm Basics. What is an algorithm? An algorithm is a list of instructions that transform input information into a desired output. Each instruction.
What's The Plan? Algorithmic Thinking Step-by-step directions for whatever someone, or the computer, needs to do © 2004 Lawrence Snyder.
1 Program Planning and Design Important stages before actual program is written.
1 CS161 Introduction to Computer Science Topic #9.
CS 100 Introduction to Computing Seminar September 21, 2015.
CS139 – Algorithm Development Aug 23, 2004 WELCOME!
CS404 Design and Analysis of Algorithms BBy DDr. M V S Peri Sastry BB.E, PhD(BITS-Pilani)
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
Chapter 10 Algorithmic Thinking. Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
An Introduction to Programming with C++ Sixth Edition
Chapter 2 Principles of Programming and Software Engineering.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
| MSC 8102:PROGRAMMING CONCEPTS By Vincent Omwenga, PhD. 1.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
 Problem Analysis  Coding  Debugging  Testing.
Algorithms and Flowcharts
Algorithms Sept 4, Tuesday’s Lab You developed an algorithm Input – an 8 ½ x 11 inch piece of paper Audience – Fellow classmates Process – Instructions.
Algorithms and Problem Solving
Topic: Introduction to Computing Science and Programming + Algorithm
INTRODUCTION TO PROBLEM SOLVING
Algorithm and Ambiguity
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Problem Solving and Algorithm Design
Programming We have seen various examples of programming languages
CSE 2010: Algorithms and Data Structures Algorithms
Algorithms and Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Basic Concepts of Algorithm
Presentation transcript:

Algorithms CS280 – 10/20/05

Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We will be doing a little more with algorithms We will also be doing some history. Be prepared to talk about your topic from project 1.

What is an algorithm?

Problem Solving Your roommate, who is taking CS280, is in a panic. He knows his grades from each of his classes, but doesn’t know how to calculate his semester GPA. He wants to be able to warn his parents before the official grades come out. How can he figure out his GPA? How can you build a process that any student can use to calculate their GPA at any time?

Algorithm Development Objectives  At the end of this unit the student will: define the term algorithm state the 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.

Problem Solving - Polya 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?

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

Algorithm Definition  A logical sequence of steps for solving a problem, …  From  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.

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

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

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.

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.

Good vs. Bad Algorithms  All algorithms will have input, perform a process, and produce output.  A good algorithm should be: Precise Simple - relative Correct (Right) Complete and should have appropriate levels of Abstraction. – grouping steps into a single module Mnemonic - SCRAP

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.

Simplicity  Simple can be defined as having no unnecessary steps and no unnecessary complexity.  Each step of a well developed algorithm should carry out one logical step of the process.

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

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.

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.

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 3 Find a place to park Stop the car

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.

Figure 6.3: The Interactions Between Problem-Solving Phases From Dale and Lewis website.

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.

For the following exercise, you may use a calculator.

In class exercise  In your group, create an algorithm to calculate a semester GPA.  Recall: GPA is based on the letter grade achieved in the class and the number of credit hours for the class. Generally QP’s – A = 4.0, B = 3.0, C=2.0, D=1.0, F=0.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.

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 student’s semester average?  How did you figure it out?  How can you describe that process for others in the class?

Now trade papers with another group

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 F’s? All A’s (limits)?  What about different numbers of classes? One or 6?

Other considerations  What is the input to the algorithm? How will you obtain that input? What is the nature of the input? (numbers, physical objects, verbal communication)  What is to be output? Who gets the output? What is the nature of the output?  How do you get from input to output?

Some other algorithms  Create an algorithm for making a sandwich (pick your favorite).  Create an algorithm for calculating your grade for this class.  Create an algorithm for sorting a deck of cards to find the value of the missing card.  Create an algorithm for making a paper airplane.

Testing and Debugging  Testing is the process of exercising an algorithm (or program) to determine if there are flaws and where those flaws are.  Debugging is the process of removing those flaws.  You test and debug as part of your everyday existence.