2 Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of an algorithm (diagrammatic representation of the step-by-step solution to a given problem). Program Design: o steps a programmer should do before they start coding the program in a specific language. o Proper program design helps other programmers to maintain the program in the future.
3 Example The call-me algorithm: o When your train arrives, call my mobile phone. o Meet me outside the railway station. There are often many different algorithms to accomplish any given task. Each algorithm has advantages and disadvantages in different situations.
4 Reason Using Algorithm Efficiency: time, cost Abstraction: complicated problems can be distilled into simpler ones for which wellknown algorithms. Reusability: Algorithms are often reusable in many different situations.
5 Expressing Algorithms many different notations: natural languages, pseudocode, flowcharts. o Natural language: tend to be verbose and ambiguous (rarely used for complex algorithm). o Pseudocode and flowcharts: are structured ways, avoid many ambiguities common in natural language statements. Sometimes it is helpful in the description of an algorithm to supplement small flowcharts with natural language and/or arithmetic expressions written inside block diagrams to summarize what the flowcharts are accomplishing.
6 Example Algorithm using natural language statements: o Assume the first item is largest. o Look at each of the remaining items in the list and if it is larger than the largest item so far, make a note of it. o The last noted item is the largest item in the list when the process is complete. Algorithm using pseudocode: largest = La for each item in the list (Length (L) 1), do if the item largest, then largest = the item return largest
7 Benefits of Using Algorithms Reduces the task into a series of smaller steps of more manageable size. Problems can be approached as a series of small, solvable sub-problems. Efficient.
8 Flowcharts Flowchart is a type of diagram (graphical or symbolic) that represents an algorithm or process. Each step in the process is represented by a different symbol and contains a short description of the process step. The flow chart symbols are linked together with arrows showing the process flow direction. A flowchart typically shows the flow of data in a process.
9 Why Flowcharts Flowcharts are used in analyzing, designing, documenting or managing a process or program in various fields. Flowcharts are generally drawn in the early stages of formulating computer solutions. Flowcharts often facilitate communication between programmers and business people.
10 Example Read X, Y, Z Compute Sum (S) as X + Y + Z Compute Average (A) as S / 3 Compute Product (P) as X x Y x Z
11 Advantages of Using Flowcharts Communication: a better way of logical communicating. Effective analysis: problem can be analysed in more effective way. Proper documentation. Efficient Coding: a guide or blueprint during the systems analysis and program development phase. Proper Debugging: helps in debugging process. Efficient Program Maintenance: easy with the help of flowchart
12 Limitations of Using Flowcharts Complex logic: Sometimes, the program logic is quite complicated. In that case, flowchart becomes complex and clumsy. Alterations and Modifications: If alterations are required the flowchart may require redrawing completely. Reproduction: As the flowchart symbols cannot be typed, reproduction of flowchart becomes a problem.
13 Flowchart Symbols Terminator: Start or End Process Decision: Yes/No question or True/False Connector: jump in the process flow Data: data input or output (I/O) Delay Arrow: flow of control in a process.
14 Basic Symbol Name Symbol Use in Flowchart Oval Denotes the beginning or end of the program Parallelogram Denotes an input operation Rectangle Denotes a process to be carried out e.g. addition, subtraction, division etc. Diamond Denotes a decision (or branch) to be made. The program should continue along one of two routes. (e.g. IF/THEN/ELSE) Hybrid Denotes an output operation Flow line Denotes the direction of logic flow in the program
15 Example Terminator Process Decision Connector Data Delay Arrow
16 Example Terminator Process Decision Connector Data Delay Arrow
17 Ex. : convert the length in feet to centimeter Algorithm: o Step 1: Input Lft o Step 2: Lcm Lft x 30 o Step 3: Print Lcm Pseudocode: o Input the length in feet (Lft) o Calculate the length in cm (Lcm) by multiplying LFT with 30 o Print length in cm (LCM) Flowchart START Input Lft Lcm Lft x 30 Print Lcm STOP
18 Ex. : read the two sides of a rectangle and calculate its area START Algorithm o Step 1: Input W,L o Step 2: A L x W o Step 3: Print A Input W, L A L x W Print A Pseudocode STOP o Input the width (W) and Length (L) of a rectangle o Calculate the area (A) by multiplying L with W o Print A
19 Ex. : calculate the roots of a quadratic equation Equation: 2 ax bx c 0 Calculate: d = sqrt (b 2 4ac), and Roots: o x1 = ( b + d)/2a and o x2 = ( b d)/2a
20 Ex. Roots of Quadratic Eq. Algorithm: o Step 1: Input a, b, c o Step 2: d=sqrt (b b 4 a c) o Step 3: x1=( b + d) / (2 x a) o Step 4: x2=( b d) / (2 x a) o Step 5: Print x1, x2 Pseudocode: o Input the coefficients (a, b, c) o Calculate d o Calculate x1 o Calculate x2 o Print x1 and x2 START Input a, b, c d sqrt(b x b 4 x a x c) x 1 ( b + d) / (2 x a) X 2 ( b d) / (2 x a) Print x 1,x 2 STOP
21 Ex. Algorithm: o? START Input VALUE1,VALUE2 Pseudocode: o? Y MAX VALUE1 is VALUE1>VALUE2 N MAX VALUE2 Print The largest value is, MAX STOP
22 Program Design The phase of program development: o Determination of hardware and software resources needed by the program are identified and the logic to be used by the program. Program Design consists of the steps a programmer should do before they start coding the program in a specific language.
23 Activities in Program Design Understanding the Program (user need) System Analyst o variety of documentation items (include screen layouts, narrative descriptions, documentation showing, the processing steps, etc. o Understanding the purpose of a program (inputs, processing, outputs) Using Design Tools to Create a Model Develop Test Data
24 Test Data Test data consists of the user providing some input values and predicting the outputs. This can be quite easy for a simple program and the test data can be used to check the model to see if it produces the correct results.
25 Components of Program Design Problem definition, leading to a program specification, Modular program design, which refines the specification, Module composition, which translates specification into executable program, Module/program evaluation and testing, during which you refine the program and find errors, Program documentation, which pervades all other phases.
26 Approach The two most common ones are procedural programming and objectoriented programming. Procedures may use objects, and objects usually use procedures, called methods. The object-oriented code takes more planning and is significantly larger, but it is generally accepted to be easier.
28 Object-Oriented Formulations The process of creating an objectoriented (OO) formulation in program design involves at least three stages: o Object-Oriented Analysis (OOA), o Object-Oriented Design (OOD), and o Object-Oriented Programming (OOP).
29 Object-Oriented Analysis Find objects and classes o Create an abstraction of the problem domain. o Give attributes behaviours, classes, and objects meaningful names. o Identify structures pertinent to the system s complexity and responsibilities. o Observe information needed to interact with the system, as well as information to be stored. o Look for information re-use; are there multiple structures; can sub-systems be inherited? Define the attributes Define the behavior Diagram the system
30 Object-Oriented Analysis Find objects and classes Define the attributes o Select meaningful names. o Describe the attribute and any constraints. o What knowledge does it possess or communicate? o Put it in the type or class that best describes it. o Select accessibility as public or private. o Identify the default, lower and upper bounds. o Identify the different states it may hold. o Note items that can either be stored or re-computed. Define the behavior Diagram the system
31 Object-Oriented Analysis Find objects and classes Define the attributes Define the behavior o Give the behaviours meaningful names. o What questions should each be able to answer? o What services should it provide? o Which attribute components should it access? o Define its accessibility (public or private). o Define its interface prototype. o Define any input/output interfaces. o Identify a constructor with error checking to supplement the intrinsic constructor. o Identify a default constructor. Diagram the system
32 Object-Oriented Analysis Find objects and classes Define the attributes Define the behavior Diagram the system o Employ an OO graphical representation.
33 Object-Oriented Design Improve and add to the OOA results during OOD. Divide the member functions into constructors, accessors, agents and servers. Design the human interaction components. Design the task management components. Design the data management components. Identify operators to be overloaded. Identify operators to be defined. Design the interface prototypes for member functions and for operators. Design code for re-use through kind of and part of hierarchies. Identify base classes from which other classes are derived. Establish the exception handling procedures for all possible errors.
34 Object-Orientedness Object-based modular structure: o Systems are modularized on the basis of their data structure. Data Abstraction: o Objects should be described as implementations of abstract data types. Automatic memory management: o Unused objects should be de-allocated by the language system. Classes: o Every non-simple type is a module, and every high-level module is a type. Inheritance o A class may be defined as an extension or restriction of another. Polymorphism and dynamic binding: o Entities are permitted to refer to objects of more than one class and operations can have different realizations in different classes. Multiple inheritances: o Can declare a class as heir to more than one class.
35 Summary Algorithm is the sequence of steps to be performed in order to solve a problem by the computer. Three reasons for using algorithms are efficiency, abstraction and reusability. Algorithms can be expressed in many different notations, including natural languages, pseudocode, flowcharts and programming languages.
36 Summary Analysis of algorithms is the theoretical study of computer program performance and resource usage, and is often practised abstractly without the use of specific programming language or implementation. The practical goal of algorithm analysis is to predict the performance of different algorithms in order to guide program design decisions.
37 Summary Most algorithms do not perform the same in all cases; normally an algorithm s performance varies with the data passed to it. Typically, three cases are recognized: the best case, average case and worst case. Worst case analysis of algorithms is considered to be crucial to applications such as games, finance and robotics.
38 Summary Flowchart : diagrammatic representation of the step-bystep solution to a given problem. Flowcharts are used in analyzing, designing, documenting or managing a process or program in various fields. Benefits of using flowcharts include ease of communication, effective and efficient analysis and coding, proper documentation and maintenance. Limitations of using flowcharts include complex logic and multiple modifications.
39 Summary Program Design consists of the steps a programmer should do before they start coding the program in a specific language. Program design must be extremely structured, having the ultimate intentions of performing a specific calculation efficiently with attractive, understandable, efficient programs. Three broad areas of activities in program design: (1) Understanding the Program, (2) Using Design Tools to Create a Model and (3) Develop Test Data The process of creating an OO formulation in program design involves at three stages: 1) OOA, 2) OOD, and 3) OOP.
ALGORITHMS AND FLOWCHARTS By Miss Reham Tufail ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: Problem solving phase produce an ordered sequence of steps that describe
ALGORITHMS AND FLOWCHARTS ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: Problem solving phase produce an ordered sequence of steps that describe solution of problem
Tutorial No. 1 - Solution (Introduction to Computers & Programming) Computer Programming and Utilization (2110003) 1. Draw a block diagram of computer architecture. 2. List various components of a computer
hapter 1 n Introduction to omputers and Problem Solving Section 1.1 n Introduction to omputers 1. Visual Basic is considered to be a () first-generation language. (B) package. () higher-level language.
CHAPTER 2 PROBLEM SOLVING This chapter will cover the following topics: Problem Solving Concepts for the Computer Pre-Programming Phase Programming Or Implementation Phase What Problem Can Be Solved By
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry
Certificate in Advanced Programming - C++ Language Page 1 of 7 BHARATHIAR UNIVERSITY: COIMBATORE 641046 CENTRE FOR COLLABORATION OF INDUSTRY AND INSTITUTIONS(CCII) CERTIFICATE IN ADVANCED PROGRAMMING C++
1 UNESCO-NIGERIA TECHNICAL & VOCATIONAL EDUCATION REVITALISATION PROJECT-PHASE PHASE II NATIONAL DIPLOMA IN COMPUTER TECHNOLOGY Computer Programming COURSE CODE: COM113 YEAR I- SE MESTER I THEORY Version
Topics covered Information Science 1 Terms and concepts from Week 05 The software development process Program'Development /Algorithms'and'Problem'Solving/'' ' software software life cycle life-cycle models
Basic Programming Concepts CS10001: Programming & Data Structures Pallab Dasgupta Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Some Terminologies Algorithm / Flowchart
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
Algorithm: A step-by-step procedure for solving a problem in a finite amount of time. Algorithms can be represented using Flow Charts. CHARACTERISTICS OF AN ALGORITHM: Computer Programming Lecturer: Dr.
2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
Introduction to Programming If you re new to programming, you might be intimidated by code and flowcharts. You might even wonder how you ll ever understand them. This lesson offers some basic ideas and
Java Programming (10155) Rationale Statement: The world is full of problems that need to be solved or that need a program to solve them faster. In computer, programming students will learn how to solve
Chapter One Introduction to Programming 1-1 Algorithm and Flowchart Algorithm is a step-by-step procedure for calculation. More precisely, algorithm is an effective method expressed as a finite list of
C H A P T E R 1 Flowchart Techniques 1.1 Programming Aids Programmers use different kinds of tools or aids which help them in developing programs faster and better. Such aids are studied in the following
Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 firstname.lastname@example.org Spring 2014 (elicitation)
Chapter 1 Object Oriented System Development with Objectives In this chapter, you will: Learn about OO development and Understand object-oriented concepts Recognize the benefits of OO development Preview
Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML System Development (SD) : - o SD refers to all activities that go into producing
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP PROGRAMMING & SOFTWARE DEVELOPMENT AND INFORMATION SUPPORT & SERVICES PATHWAY SOFTWARE UNIT UNIT 5 Programming & and Support & s: (Unit 5) PAGE
Assuming the Role of Systems Analyst & Analysis Alternatives Nature of Analysis Systems analysis and design is a systematic approach to identifying problems, opportunities, and objectives; analyzing the
Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling
Software Development Method Problem Analysis - (Correct Problem) Identify data objects Goal to model properties Determine Input / Output data Constraints on the problem Design Decompose into smaller problems
Objectives Differentiate between machine and and assembly languages Describe Describe various various ways ways to to develop develop Web Web pages pages including including HTML, HTML, scripting scripting
Software Development Topic 1 The Software Development Process 1 The Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance 2 Analysis Stage An Iterative
CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments
CHAPTER 24 SOFTWARE PROJECT SCHEDULING Overview The chapter describes the process of building and monitoring schedules for software development projects. To build complex software systems, many engineering
Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A A. Description Introduction to the discipline of computer science; covers the material traditionally found in courses that introduce problem
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Stage 1 A B C Accurately uses a wide range of terms and concepts associated with current personal computers, home networking and internet connections. Correctly uses non-technical and a range of technical
1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully
Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
I The Real and Complex Number Systems 1. Identify subsets of complex numbers, and compare their structural characteristics. 2. Compare and contrast the properties of real numbers with the properties of
Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit
Overview of Programmable Logic Controllers (PLCs( PLCs) Dr. Fernando Rios-Gutierrez ECE4951- Design Workshop Spring 2007 Lecture Objectives Expose basic characteristics of PLC. Describe the various subparts
Systems Analysis Pseudocoding & Flowcharting 1 Flowcharting, pseudocoding, and process design The purpose of flowcharts is to represent graphically the logical decisions and progression of steps in the
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
Definition A digitally operated electronic apparatus which uses a programmable memory for the internal storage of instructions for implementing specific functions such as logic, sequencing, timing, counting,
Apache Web Server Execution Tracing Using Third Eye Raimondas Lencevicius Alexander Ran Rahav Yairi Nokia Research Center, 5 Wayside Road, Burlington, MA 01803, USA Raimondas.Lencevicius@nokia.com Alexander.Ran@nokia.com
Lesson Unit 1: INTRODUCTION TO COMPUTERS Computer History Create a timeline illustrating the most significant contributions to computing technology Describe the history and evolution of the computer Identify
Sun Educational Services Instructor-Led Course Description Fundamentals of Java SL-110 The Fundamentals of the Java course provides students, with little or no programming experience, with the basics of
Software Design Design (I) Software Design is a process through which requirements are translated into a representation of software. Peter Lo CS213 Peter Lo 2005 1 CS213 Peter Lo 2005 2 Relationships between
Standard for Mathematical Practice 1: Make sense of problems and persevere in solving them. Mathematically proficient students start by explaining to themselves the meaning of a problem and looking for
Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of
Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
MAHATMA GANDHI UNIVERSITY SCHOOL OF DISTANCE EDUCATION (MGU CBCSS UG SDE 2012) B.Sc Computer Science Semester V BCS 502 Core-19: System Analysis &Design Multiple Choice questions 1... includes review of
Algebra 1, Quarter 2, Unit 2.1 Creating, Solving, and Graphing Systems of Linear Equations and Linear Inequalities Overview Number of instructional days: 15 (1 day = 45 60 minutes) Content to be learned
G52LSS Lecture 14 Process Modelling With DFDs Data Flow Diagrams Multi-Level DFDs Examples of DFDs Learning outcomes: describe the purpose of DFDs; interpret DFDs; understand multi-level DFDs; appreciate
Computer Information Systems (CIS) CIS 113 Spreadsheet Software Applications Prerequisite: CIS 146 or spreadsheet experience This course provides students with hands-on experience using spreadsheet software.
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
UML Tutorials Using UML Part One Structural Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,
EMC Publishing Ontario Curriculum Computer and Information Science Grade 11 Correlations for: An Introduction to Programming Using Microsoft Visual Basic 2005 Theory and Foundation Overall Expectations
Standards for Mathematical Practice 1. Make sense of problems and persevere in solving them. 2. Reason abstractly and quantitatively 3. Construct viable arguments and critique the reasoning of others 4.
A Pre-Programming Introduction to Algorithmics Judith Gal-Ezer 1 The Open University of Israel, email@example.com submitted July 1994, revised March 1995 Abstract This paper describes an introductory
Habits of Mind of a Productive Thinker Make sense of problems and persevere in solving them. Attend to precision. PA Common Core Standards The Pennsylvania Common Core Standards cannot be viewed and addressed
Candle Plant process automation based on ABB 800xA Distributed Control Systems Yousef Iskandarani and Karina Nohammer Department of Engineering University of Agder Jon Lilletuns vei 9, 4879 Grimstad Norway
CME111 Programming Languages I Week 1 Introduction to Programming Assist. Prof. Dr. Caner ÖZCAN Introduction Course Web Site: www.canerozcan.net Office Hours: Tuesday 15:00-17:00 Thursday 13:00-15:00 or
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Spelling Rule Algorithm Adjectives to Adverbs Module Aim An activity to reinforce spelling rules using computing science concepts. This could be used as a homework activity or as an alternative strategy
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
Grade 8 Mathematics, Quarter 3, Unit 3.1 Pythagorean Theorem Overview Number of instructional days: 15 (1 day = 45 60 minutes) Content to be learned Prove the Pythagorean Theorem. Given three side lengths,
This file will be helpful during viva exam. You should have all the knowledge about the diagrams which you have included in your presentation. You should know all the symbols, relationships. You must prepare
Programming and Software Development (PSD) Course Descriptions Fundamentals of Information Systems Technology This course is a survey of computer technologies. This course may include computer history,
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
JASEM ISSN 1119-8362 All rights reserved Full-text Available Online at www.bioline.org.br/ja J. Appl. Sci. Environ. Manage. December, 2008 Vol. 12(4) 41-46 A Comparative Analysis of Structured and Object-Oriented
Axiomatic design of software systems N.P. Suh (1), S.H. Do Abstract Software is playing an increasingly important role in manufacturing. Many manufacturing firms have problems with software development.
Introduction to Systems Analysis and Design What is a System? A system is a set of interrelated components that function together to achieve a common goal. The components of a system are called subsystems.
Understanding Flow Diagrams Donald S. Le Vie, Jr. flow diagrams (DFDs) reveal relationships among and between the various components in a program or system. DFDs are an important technique for modeling