CMSC 104, L041 Algorithms, Part 1 of 3 Topics Definition of an Algorithm Example: The Euclidean Algorithm Syntax versus Semantics Reading Sections 3.1.

Slides:



Advertisements
Similar presentations
CS101: Introduction to Computer programming
Advertisements

CSci 107 Introduction to Computer Science Lecture 1.
CMSC 104, Version 8/061L04Algorithms1.ppt Algorithms, Part 1 of 3 Topics Definition of an Algorithm Algorithm Examples Syntax versus Semantics Reading.
Chapter 2: Problem Solving
CS1010 Programming Methodology
II N T R O D U C T I O N PP R E T E S T DD E S I G N I N G A L G O R I T H M DD E S I G N I N G F L O W C H A R T GG E N E R A L R U L E S F.
8 Algorithms Foundations of Computer Science ã Cengage Learning.
Computer Software & Software Development H&K Chapter 1 Instructor – Gokcen Cilingir Cpt S 121 (June 20, 2011) Washington State University.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Programming Fundamentals (750113) Ch1. Problem Solving
TK3043 Analysis and Design of Algorithms Introduction to Algorithms.
Design & Analysis of Algorithms Introduction. Introduction Algorithms are the ideas behind computer programs. An algorithm is the thing which stays the.
Introduction to Algorithm – part one Jennifer Elmer Form 3 Computing.
Introduction Dr. Ying Lu RAIK 283: Data Structures & Algorithms.
1 L07SoftwareDevelopmentMethod.pptCMSC 104, Version 8/06 Software Development Method Topics l Software Development Life Cycle Reading l Section 1.4 – 1.5.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Review Introduction to Searching External and Internal Searching Types of Searching Linear or sequential search Binary Search Algorithms for Linear Search.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Software Life Cycle What Requirements Gathering, Problem definition
What does a computer program look like: a general overview.
Chapter 2 Problem Solving On A Computer 2.1 Problem Solving Steps Solving a problem on a computer requires steps similar to those followed when solving.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
CMSC 1041 Algorithms I An Introduction to Algorithms.
Algorithms, Part 1 of 3 Topics  Definition of an Algorithm  Algorithm Examples  Syntax versus Semantics Reading  Sections
Design & Analysis of Algorithms Lecture 1 Introduction.
CMSC 1041 Algorithms I An Introduction to Algorithms.
CMSC 104: Peter Olsen, Fall 99Lecture 9:1 Algorithms III Representing Algorithms with pseudo-code.
Algorithms & FlowchartsLecture 10. Algorithm’s CONCEPT.
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
1 Program Planning and Design Important stages before actual program is written.
UNIT-I INTRODUCTION ANALYSIS AND DESIGN OF ALGORITHMS CHAPTER 1:
Fundamentals of Algorithms MCS - 2 Lecture # 5. Representation of Algorithms (continued) Flowcharts.
CS404 Design and Analysis of Algorithms BBy DDr. M V S Peri Sastry BB.E, PhD(BITS-Pilani)
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
CMSC 104, Section 301, Fall Lecture 04, 9/11/02 Operating Systems and Using Linux Review Operating System. Linux Overview. Frequently Used Linux.
1 UMBC CMSC 104, Section Fall 2002 Algorithms, Part 1 of 3 Topics Definition of an Algorithm Algorithm Examples Syntax versus Semantics Reading.
ALGORITHMS AND FLOWCHARTS. Why Algorithm is needed? 2 Computer Program ? Set of instructions to perform some specific task Is Program itself a Software.
STEP 3- DEVELOP AN ALGORITHM At this stage we break down the problem into simple manageable steps so that they can be handled easily.
| MSC 8102:PROGRAMMING CONCEPTS By Vincent Omwenga, PhD. 1.
Introduction to Algorithms
Problem Solving & Computer Programming
ALGORITHMS AND FLOWCHARTS
Algorithms, Part 1 of 3 The First step in the programming process
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
GC211Data Structure Lecture2 Sara Alhajjam.
Algorithms I: An Introduction to Algorithms
Introduction to Algorithm – part 1
Introduction to Computer Programming
2008/09/24: Lecture 6b CMSC 104, Section 0101 John Y. Park
2008/09/17: Lecture 4 CMSC 104, Section 0101 John Y. Park
Unit# 9: Computer Program Development
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
UMBC CMSC 104 – Section 01, Fall 2016
Introduction to Algorithms and Programming
ME 142 Engineering Computation I
Problem Solving Skill Area 305.1
Understanding Problems and how to Solve them by using Computers
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
Programming Fundamentals (750113) Ch1. Problem Solving
Introduction to Algorithms
Lecture 6 Architecture Algorithm Defin ition. Algorithm 1stDefinition: Sequence of steps that can be taken to solve a problem 2ndDefinition: The step.
ICT Gaming Lesson 2.
Programming Fundamentals (750113) Ch1. Problem Solving
Application: Algorithms
Basic Concepts of Algorithm
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
Presentation transcript:

CMSC 104, L041 Algorithms, Part 1 of 3 Topics Definition of an Algorithm Example: The Euclidean Algorithm Syntax versus Semantics Reading Sections The First step in the programming process

CMSC 104, L042 Problem Solving Problem solving is the process of transforming the description of a problem into the solution of that problem. We use our knowledge of the problem domain. We rely on our ability to select and use appropriate problem-solving strategies, techniques, and tools.

CMSC 104, L043 Algorithms An algorithm is a step by step solution to a problem. Why bother writing an algorithm ? o For your own use in the future. You won’t have to rethink the problem. o So others can use it, even if they know very little about the principles behind how the solution was derived.

CMSC 104, L044 Examples of Algorithms Washing machine instructions Instructions for a ready-to-assemble piece of furniture A classic: finding the greatest common divisor (GCD) o The Euclidean Algorithm

CMSC 104, L045 Washing Machine Instructions Separate clothes into white clothes and colored clothes. For white clothes: o Set water temperature knob to HOT. o Place white laundry in tub. For colored clothes: o Set water temperature knob to COLD. o Place colored laundry in tub. Add 1 cup of powdered laundry detergent to tub. Close lid and press the start button.

CMSC 104, L046 Flow Chart for Algorithm If / else Structure Page 63 in book.

CMSC 104, L047 Observations About the Washing Machine Instructions There are a finite number of steps. We are capable of doing each of the instructions. When we have followed all of the steps, the washing machine will wash the clothes and then will stop.

CMSC 104, L048 Refinement of the Definition Our old definition: o An algorithm is a step by step solution to a problem. Adding our observations: o An algorithm is a finite set of executable instructions that directs a terminating activity.

CMSC 104, L049 Instructions for a Ready-to-Assemble Piece of Furniture "Align the marks on side A with the grooves on Part F.“ How could these instructions be hard to follow? o Which side is A? A & B look alike -- both line up with Part F. This instruction is ambiguous. o The steps are not sequential, do not follow any particular order.

CMSC 104, L0410 Poor Example of an Algorithm

CMSC 104, L0411 Poor Example of Algorithm

CMSC 104, L0412 Poor example of an algorithm. No Start, No Stop, No Steps Carburetor Rebuilding Diagram.

CMSC 104, L0413 Final Version of the Definition Our old definition: o An algorithm is a finite set of executable instructions that directs a terminating activity. Final version: o An algorithm is a finite set of unambiguous, executable instructions that directs a terminating activity.

CMSC 104, L0414 History of Algorithms The study of algorithms began as a subject in mathematics. The search for algorithms was a significant activity of early mathematicians. Goal: To find a single set of instructions that can be used to solve any problem of a particular type (a general solution).

CMSC 104, L0415 The Euclidean Algorithm Problem: Find the largest positive integer that divides evenly into two given positive integers (i.e., the greatest common divisor). Algorithm:  Assign M and N the values of the larger and smaller of the two positive integers, respectively.  Divide M by N and call the remainder R.  If R is not 0, then assign M the value of N, assign N the value of R, and return to Step 2. Otherwise, the greatest common divisor is the value currently assigned to N.

CMSC 104, L0416 Finding the GCD of 24 and 9 MN R So, 3 is the GCD of 24 and 9.

CMSC 104, L0417 Euclidean Algorithm (con’t) Do we need to know the theory that Euclid used to come up with this algorithm in order to use it ? What intelligence is required to find the GCD using this algorithm ?

CMSC 104, L0418 Greatest Com. Divisor Flow Chart While loop Structure Page 125 in book. Assign M the value of N Assign N the value of R

CMSC 104, L0419 The Idea Behind Algorithms Once an algorithm behind a task has been discovered o We don't need to understand the principles. o The task is reduced to following the instructions. o The intelligence is "encoded into the algorithm."

CMSC 104, L0420 Algorithm Representation Syntax and Semantics o Syntax refers to the representation itself. o Semantics refers to the concept represented. (i.e., the logic).

CMSC 104, L0421 Contrasting Syntax and Semantics In the English language, we have both syntax and semantics. Syntax is the grammar of the language. Semantics is the meaning. Given the following sentence, I walked to the corner grocery store. o Is this sentence syntactically correct? o Is it semantically correct?

CMSC 104, L0422 Contrasting Syntax and Semantics (con’t) Given the following sentence, I talked to the circular grocery store. o Is this sentence syntactically correct? o Is it semantically correct? How about I grocery store walked corner the to.

CMSC 104, L0423 Contrasting Syntax and Semantics (con’t) Conclusion: An English sentence may be syntactically correct, yet semantically (logically) incorrect. This is also true of algorithms. And it is also true of computer code.

CMSC 104, L0424 Flowcharting Flowcharting is another technique used in designing and representing algorithms. A flowchart is a graph consisting of geometric shapes that are connected by flow lines. From the flowchart one can write the program code.

CMSC 104, L0425 Symbols (I) Terminal symbol Process symbol Input-Output symbol or Decision symbol

CMSC 104, L0426 Symbols (II) Flow Lines indicating the logical sequence of statements One must follow the flow of the arrows direction, one cannot go in the opposite direction of the arrows flow.