SlideShare une entreprise Scribd logo
1  sur  49
Program Design &
               Problem-Solving
                    Techniques
             Module Pre-Requisites:
             None




http://ashesh.ramjeeawon.info
Management Student/ Freelance Developer
University of Mauritius                   1
Problem Solving – Program Design: Algorithm /Pseudocode


Today’s Session

 Steps in program development
 Algorithmic Problem Solving
 How to write Pseudocode?
 Meaningful names
 Structure Theorem
 Communication between modules
 Module Cohesion and Coupling
 Sequential File update
                                                              2
Problem Solving – Program Design: Algorithm /Pseudocode


Problem Solving - Big Problemo!!!




                                                               3
Problem Solving – Program Design: Algorithm /Pseudocode


How Do We Write a Program?

 A computer is not intelligent. It cannot analyze a problem and come up with a
  solution. A human (the programmer) must analyze the problem, develop the
  instructions for solving the problem, and then have the computer carry out the
  instructions.
 To write a program for a computer to follow, we must go through a two-phase
  process: problem solving and implementation




                                                                                   4
Problem Solving – Program Design: Algorithm /Pseudocode


Problem-Solving Phase
 Analysis and Specification. Understand (define) the problem and
  what the solution must do.

 General Solution (Algorithm). Specify the required data types and
  the logical sequences of steps that solve the problem.

 Verify. Follow the steps exactly to see if the solution really does
  solve the problem.




                                                                        5
Problem Solving – Program Design: Algorithm /Pseudocode


Implementation Phase
 Concrete Solution (Program). Translate the algorithm (the general
  solution) into a programming language.

 Test. Have the computer follow the instructions. Then manually
  check the results. If you find errors, analyze the program and the
  algorithm to determine the source of the errors, and then make
  corrections.

 Once a program has been written, it enters a third phase:
  maintenance.




                                                                       6
Problem Solving – Program Design: Algorithm /Pseudocode


Maintenance Phase
 Use. Use the program.

 Maintain. Modify the program to meet changing requirements or to
  correct any errors that show up while using it.

 The programmer begins the programming process by analyzing the
  problem, breaking it into manageable pieces, and developing a
  general solution for each piece called an algorithm. The solutions to
  the pieces are collected together to form a program that solves the
  original problem. Understanding and analyzing a problem take up
  much more time than Figure 1.1 implies. They are the heart of the
  programming process.




                                                                          7
Problem Solving – Program Design: Algorithm /Pseudocode




                                                          8
Problem Solving – Program Design: Algorithm /Pseudocode


Compiler and Interpreters




                                                               9
Steps in program development



Ref:

                                      10
Problem Solving – Program Design: Algorithm /Pseudocode


Steps in program development

1. Define the problem into three separate
   components:
   inputs
   outputs
   processing steps to produce required outputs.




                                                              11
Problem Solving – Program Design: Algorithm /Pseudocode


Steps in program development



 1. Outline the solution.
     Decompose the problem to smaller steps.
     Establish a solution outline.
     Initial outline may include:
          major processing steps involved
          major subtasks
          user interface
          major control structures
          major variable and record structures
          mainline logic
                                                              12
Problem Solving – Program Design: Algorithm /Pseudocode


Steps in program development

1. Develop the outline into an algorithm.
   The solution outline is now expanded into an
    algorithm.
      What is an algorithm? – a set of precise steps that
       describe exactly the tasks to be performed and the
       order in which they are to be carried out.
      Pseudocode will be used to represent the solution
       algorithm




                                                              13
Problem Solving – Program Design: Algorithm /Pseudocode



Steps in program development

1. Test the algorithm for correctness.
   Very important in the development of a
    program, but often forgotten
   Major logic errors can be detected and
    corrected at an early stage
   Go through the algorithm step-by-step with
    test data to ensure the program will actually
    do what it is supposed to do.


                                                              14
Problem Solving – Program Design: Algorithm /Pseudocode



Steps in program development
1. Code the algorithm into a specific
   programming language.
   Start to code the program into a chosen
    programming language after all design
    considerations from Steps 1–4 are met.




                                                              15
Problem Solving – Program Design: Algorithm /Pseudocode



Steps in program development
1. Run the program on the computer.
   This step uses a program compiler and
    programmer-designed test data to machine-
    test the code for
      syntax errors
      logic errors




                                                              16
Problem Solving – Program Design: Algorithm /Pseudocode



Steps in program development
1. Document and maintain the program.
   Is really an ongoing task from the initial
    definition of the problem to the final test
   Documentation involves:
      external documentation
      internal documentation




                                                              17
Problem Solving – Program Design: Algorithm /Pseudocode




     Algorithmic Problem Solving




                                                          18
Problem Solving – Program Design: Algorithm /Pseudocode


An introduction to algorithms and pseudocode

 What is an algorithm?
  Lists the steps involved in accomplishing a task
   (like a recipe)
  Defined in programming terms as ‘a set of
   detailed and ordered instructions developed to
   describe the processes necessary to produce
   the desired output from a given input’




                                                              19
Problem Solving – Program Design: Algorithm /Pseudocode


An introduction to algorithms and pseudocode

 What is an algorithm?
  An algorithm must:
      Be lucid, precise and unambiguous
      Give the correct solution in all cases
      Eventually end




                                                              20
Problem Solving – Program Design: Algorithm /Pseudocode


An introduction to algorithms and pseudocode

 What is pseudocode?
  Structured English (formalised and abbreviated
   to look like high-level computer language)




                                                              21
Problem Solving – Program Design: Algorithm /Pseudocode

How to write pseudocode


 There are six basic computer operations:
  1. A computer can receive information
  2. A computer can put out information
  3. A computer can perform arithmetic
  4. A computer can assign a value to a variable or
     memory location
  5. A computer can compare two variables and
     select one of two alternate actions
  6. A computer can repeat a group of actions
                                                             22
Problem Solving – Program Design: Algorithm /Pseudocode


Exercise Time

 Do some reading on the website below:
 http://www.cs.dartmouth.edu/~fabio/teaching/c




                                                              23
Problem Solving – Program Design: Algorithm /Pseudocode


Meaningful names

 When designing an algorithm, a
  programmer must introduce some unique
  names which represents variables or
  objects in the problem.
 Names should be meaningful.
 Names should be transparent to
  adequately describe variables (Number1,
  number2, etc.).

                                                              24
Problem Solving – Program Design: Algorithm /Pseudocode


Meaningful names

 Underscore is used when using more than
  one word (sales_tax or word_count).
 Most programming language does not
  tolerate a space in a variable as space
  would signal the end of a variable name.
 Another method is to use capital letters as
  a word separator (salesTax or
  wordCount).

                                                              25
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem




                                                              26
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem

1. Sequence
   Straightforward execution of one processing
    step after another
   Represents the first four basic computer
    operations
     1.   Receive information
     2.   Put out information
     3.   Perform arithmetic
     4.   Assign values


                                                              27
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem

   A typical sequence statement in an algorithm might
    read:
             Add 1 to pageCount
             Print heading line1
             Print heading line2
             Set lineCount to zero
             Read customer record
   These instructions illustrate the sequence control
    structure as a straightforward list of steps written one
    after the other, in a top-to-bottom fashion

                                                               28
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem



 1. Selection
     Presentation of a condition and the choice
      between two actions, the choice depending
      on whether the condition is true or false
     Represents the decision-making abilities of
      the computer
     Illustrates the fifth basic computer operation –
      compare two variables and select one of two
      alternate actions
                                                              29
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem

   In pseudocode, selection is represented by the
    keywords IF, THEN, ELSE and ENDIF
             IF condition p is true THEN
                     statement(s) in true case
             ELSE
                     statement(s) in false case
             ENDIF
   If condition p is true, then the statement in true case will
    be executed, and the statement in the false case will be
    skipped (vice versa)



                                                               30
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem

1. Repetition
   Presentation of a set of instruction to be
    performed repeatedly, as long as the condition
    is true
   Block statement is executed again and again
    until a terminating condition occurs
   Illustrates the sixth basic computer operation
    – to repeat a group of actions.



                                                              31
Problem Solving – Program Design: Algorithm /Pseudocode


The Structure Theorem

 Written in pseudocode as:
            DOWHILE condition p is true
                statement block
            ENDDO
 DOWHILE is a leading decision loop – condition
  is tested before any statements are executed
 ENDDO triggers a return of control to the
  retesting of the condition
 Condition is true, statements are repeated until
  condition is found false
                                                              32
Problem Solving – Program Design: Algorithm /Pseudocode


Exercise Time

 In a complete program/ algorithm, show
  the 3 concepts of Structure Theorem




                                                              33
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Necessary to consider flow of information
  between modules
 This flow of information is called
  ‘intermodule communication’ and can be
  accomplished by the scope of the variable




                                                              34
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Scope of a variable
  The portion of a program in which that variable
   has been defined and to which it can be
   referenced
  Variables can be global where the scope of the
   variable is the whole program
  Scope of the variable is simple the module
   which it is defined


                                                              35
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Global data
  Date that can be used by all the modules in a
   program
  Every module in the program can access and
   change data
  Lifetime of a global variable spans the
   execution of the whole program



                                                              36
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Local data
  Variable are defined within the submodule are
   called local variables
  The scope of a local variable is simply the
   module in which it is defined
  The lifetime of a local variable is limited to the
   execution of the single submodule in which it is
   defined


                                                              37
Problem Solving – Program Design: Algorithm /Pseudocode


Exercise time

Show the difference between a global
 variable and a local variable via the use of
 a program, in any language of your
 choice.




                                                              38
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Side effects
  Side effect is a form of a cross-communication
   of a module with other parts of a program,
  Occurs when a subordinate module alters the
   value of a global variable inside a module




                                                              39
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Passing parameters
  Parameters are simply data items
   transferred from a calling module to its
   subordinate module at the time of calling
  To pass parameters between modules, two
   things can happen:
      The calling module must name the parameters
       that it wants to pass to the submodule
      The submodule must be able to receive those
       parameters and return them to the calling module
       if required

                                                            40
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Formal and actual parameters
  Parameters names that appear when a
   submodule is defined are known as formal
   parameters
  Variables and expressions that are passed to a
   submodule in a particular call are called actual
   parameters




                                                              41
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Value and reference parameters
   Parameters may have one of three function:
     1. To pass information from a calling module to a
        subordinate module
     2. To pass information from a subordinate module to
        its calling module
     3. To fulfil a two-way communication role




                                                              42
Problem Solving – Program Design: Algorithm /Pseudocode



Communication between modules
 Value and reference parameters
  Value parameters
      Value parameters pass a copy of the value of a
       parameter from one module to another
  Reference parameters
      Reference parameter pass the memory address of a
       parameter from one module to another




                                                              43
Problem Solving – Program Design: Algorithm /Pseudocode


Module cohesion

 Cohesion is a measure of the internal
  strength of a module
 It indicates how closely the elements or
  the statements of a module are associated
  with each other
 The more closely the elements of a
  module are associated with each other,
  the higher the cohesion of the module

                                                              44
Problem Solving – Program Design: Algorithm /Pseudocode


Module coupling


  Coupling is a measure of the extent of
   information interchange between
   modules
  Tight coupling implies large
   dependence on the structure of one
   module by another
  Loose coupling is the opposite of tight
   coupling. Modules with loose coupling
   are more independent and easier to
   maintain
                                                              45
Problem Solving – Program Design: Algorithm /Pseudocode


Sequential file update



  Master file
    Is a file that contains permanent and semi-
     permanent information about the data
     entities it contains
  Transaction file
    Contains all the data and activities that are
     included on the master file. These are
     transactions to:
         Add a new record
         Update or change an existing record
         Delete an existing record                            46
Problem Solving – Program Design: Algorithm /Pseudocode


Sequential file update



  Sequential update logic
     Sequential processing falls generally into
      three categories:
        1. If the key on the transaction record is less than the
           key on the old master record, the transaction is
           probably an add transaction
        2. If they key on the transaction record is equal to the
           key on the old master record, the transaction is
           probably an update or delete transaction
        3. If the key on the transaction record is greater that
           the key on the old master record, there is not
           matching transaction for that master record             47
Problem Solving – Program Design: Algorithm /Pseudocode


The End – Thank you for your kind attention

 References:
   Simple Program Design – A step by step
    approach by L. A. Robertson




                                                               48
Problem Solving – Program Design: Algorithm /Pseudocode




         http://ashesh.ramjeeawon.info
         Management Student/ Freelance Developer
         University of Mauritius
         BCS Student Member




                                                          49

Contenu connexe

Tendances

Lecture 1 introduction to vb.net
Lecture 1   introduction to vb.netLecture 1   introduction to vb.net
Lecture 1 introduction to vb.netMUKALU STEVEN
 
Programming for Problem Solving
Programming for Problem SolvingProgramming for Problem Solving
Programming for Problem SolvingSukhendra Singh
 
Basics of JAVA programming
Basics of JAVA programmingBasics of JAVA programming
Basics of JAVA programmingElizabeth Thomas
 
Services provided by os
Services provided by osServices provided by os
Services provided by osSumant Diwakar
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingMoutaz Haddara
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZeeshan MIrza
 
Types of Programming Errors
Types of Programming ErrorsTypes of Programming Errors
Types of Programming ErrorsNeha Sharma
 
Visual programming lecture
Visual programming lecture Visual programming lecture
Visual programming lecture AqsaHayat3
 
Java Data Types and Variables
Java Data Types and VariablesJava Data Types and Variables
Java Data Types and Variablessasi saseenthiran
 
Software Fault, Error, and Failure
Software Fault, Error, and FailureSoftware Fault, Error, and Failure
Software Fault, Error, and Failurenethisip13
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of CompilerPreethi AKNR
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithmsiqbalphy1
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm designNahid Hasan
 
Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithmrajkumar1631010038
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languageseducationfront
 

Tendances (20)

Lecture 1 introduction to vb.net
Lecture 1   introduction to vb.netLecture 1   introduction to vb.net
Lecture 1 introduction to vb.net
 
Introduction to problem solving in C
Introduction to problem solving in CIntroduction to problem solving in C
Introduction to problem solving in C
 
Javascript
JavascriptJavascript
Javascript
 
Programming for Problem Solving
Programming for Problem SolvingProgramming for Problem Solving
Programming for Problem Solving
 
Basics of JAVA programming
Basics of JAVA programmingBasics of JAVA programming
Basics of JAVA programming
 
Problem solving methodology
Problem solving methodologyProblem solving methodology
Problem solving methodology
 
Services provided by os
Services provided by osServices provided by os
Services provided by os
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
Types of Programming Errors
Types of Programming ErrorsTypes of Programming Errors
Types of Programming Errors
 
Visual programming lecture
Visual programming lecture Visual programming lecture
Visual programming lecture
 
Java Data Types and Variables
Java Data Types and VariablesJava Data Types and Variables
Java Data Types and Variables
 
Software Fault, Error, and Failure
Software Fault, Error, and FailureSoftware Fault, Error, and Failure
Software Fault, Error, and Failure
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of Compiler
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithms
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm design
 
Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithm
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
 

Similaire à Program design and problem solving techniques

Chapter 2(1)
Chapter 2(1)Chapter 2(1)
Chapter 2(1)TejaswiB4
 
Stnotes doc 5
Stnotes doc 5Stnotes doc 5
Stnotes doc 5Alok Jain
 
PCCF UNIT 1.pptx
PCCF UNIT 1.pptxPCCF UNIT 1.pptx
PCCF UNIT 1.pptxDivyaKS12
 
Fundamentals of programming with C++
Fundamentals of programming with C++Fundamentals of programming with C++
Fundamentals of programming with C++Seble Nigussie
 
Programming_Lecture_1.pptx
Programming_Lecture_1.pptxProgramming_Lecture_1.pptx
Programming_Lecture_1.pptxshoaibkhan716300
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer ProgrammingProf. Erwin Globio
 
Lesson 14 computer system sofware
Lesson 14 computer system sofwareLesson 14 computer system sofware
Lesson 14 computer system sofwareguevarra_2000
 
Lesson 14 computer system sofware
Lesson 14 computer system sofwareLesson 14 computer system sofware
Lesson 14 computer system sofwareguevarra_2000
 
C programming for Computing Techniques
C programming for Computing TechniquesC programming for Computing Techniques
C programming for Computing TechniquesAppili Vamsi Krishna
 
Unit 1 python (2021 r)
Unit 1 python (2021 r)Unit 1 python (2021 r)
Unit 1 python (2021 r)praveena p
 
Algorithm,Pseudocode,Flowchart.pptx
Algorithm,Pseudocode,Flowchart.pptxAlgorithm,Pseudocode,Flowchart.pptx
Algorithm,Pseudocode,Flowchart.pptxDrThenmozhiKarunanit
 

Similaire à Program design and problem solving techniques (20)

Chapter 2(1)
Chapter 2(1)Chapter 2(1)
Chapter 2(1)
 
Algorithm to programs.pptx
Algorithm to programs.pptxAlgorithm to programs.pptx
Algorithm to programs.pptx
 
PROBLEM SOLVING
PROBLEM SOLVINGPROBLEM SOLVING
PROBLEM SOLVING
 
Stnotes doc 5
Stnotes doc 5Stnotes doc 5
Stnotes doc 5
 
PCCF UNIT 1.pptx
PCCF UNIT 1.pptxPCCF UNIT 1.pptx
PCCF UNIT 1.pptx
 
Fundamentals of programming with C++
Fundamentals of programming with C++Fundamentals of programming with C++
Fundamentals of programming with C++
 
Programming_Lecture_1.pptx
Programming_Lecture_1.pptxProgramming_Lecture_1.pptx
Programming_Lecture_1.pptx
 
Week10 final
Week10 finalWeek10 final
Week10 final
 
Chapter 01.PPT
Chapter 01.PPTChapter 01.PPT
Chapter 01.PPT
 
CHAPTER 1
CHAPTER 1CHAPTER 1
CHAPTER 1
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
Introduction.pptx
Introduction.pptxIntroduction.pptx
Introduction.pptx
 
Lesson 14 computer system sofware
Lesson 14 computer system sofwareLesson 14 computer system sofware
Lesson 14 computer system sofware
 
Lesson 14 computer system sofware
Lesson 14 computer system sofwareLesson 14 computer system sofware
Lesson 14 computer system sofware
 
C programming for Computing Techniques
C programming for Computing TechniquesC programming for Computing Techniques
C programming for Computing Techniques
 
Unit 1 python (2021 r)
Unit 1 python (2021 r)Unit 1 python (2021 r)
Unit 1 python (2021 r)
 
Algorithm,Pseudocode,Flowchart.pptx
Algorithm,Pseudocode,Flowchart.pptxAlgorithm,Pseudocode,Flowchart.pptx
Algorithm,Pseudocode,Flowchart.pptx
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Programming part2
Programming part2Programming part2
Programming part2
 
Notacd081
Notacd081Notacd081
Notacd081
 

Plus de Dokka Srinivasu

Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...
Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...
Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...Dokka Srinivasu
 
18 principles for successful life
18 principles for successful life18 principles for successful life
18 principles for successful lifeDokka Srinivasu
 
My first seminar on indian heritage and culture
My first seminar on indian heritage and cultureMy first seminar on indian heritage and culture
My first seminar on indian heritage and cultureDokka Srinivasu
 
Ayurveda science of healing
Ayurveda science of healingAyurveda science of healing
Ayurveda science of healingDokka Srinivasu
 
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nations
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nationsMaithreem Bhajatha song by smt. m.s. subbulakshmi at united nations
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nationsDokka Srinivasu
 
Lord shiva with young ganesh mythological post card
Lord shiva with young ganesh mythological post cardLord shiva with young ganesh mythological post card
Lord shiva with young ganesh mythological post cardDokka Srinivasu
 
India's Sanathana Dharma
India's Sanathana DharmaIndia's Sanathana Dharma
India's Sanathana DharmaDokka Srinivasu
 
Why to Follow Vedic Path?
Why to Follow Vedic Path?Why to Follow Vedic Path?
Why to Follow Vedic Path?Dokka Srinivasu
 
Vision and Approaches of Upanishads
Vision and Approaches of UpanishadsVision and Approaches of Upanishads
Vision and Approaches of UpanishadsDokka Srinivasu
 
The role of Hindu Dharma & Our role in Hindu Dharma
The role of Hindu Dharma & Our role in Hindu Dharma The role of Hindu Dharma & Our role in Hindu Dharma
The role of Hindu Dharma & Our role in Hindu Dharma Dokka Srinivasu
 
Vintage cigarette cards of maharajas of india
Vintage cigarette cards of maharajas of indiaVintage cigarette cards of maharajas of india
Vintage cigarette cards of maharajas of indiaDokka Srinivasu
 

Plus de Dokka Srinivasu (20)

Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...
Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...
Baby ganesha sitting on the lap of lord shiva and mother parvathi vintage baz...
 
18 principles for successful life
18 principles for successful life18 principles for successful life
18 principles for successful life
 
My first seminar on indian heritage and culture
My first seminar on indian heritage and cultureMy first seminar on indian heritage and culture
My first seminar on indian heritage and culture
 
Recipe of joyous life
Recipe of joyous lifeRecipe of joyous life
Recipe of joyous life
 
Ayurveda science of healing
Ayurveda science of healingAyurveda science of healing
Ayurveda science of healing
 
Chakras
ChakrasChakras
Chakras
 
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nations
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nationsMaithreem Bhajatha song by smt. m.s. subbulakshmi at united nations
Maithreem Bhajatha song by smt. m.s. subbulakshmi at united nations
 
Louis Braille
Louis BrailleLouis Braille
Louis Braille
 
Lord shiva with young ganesh mythological post card
Lord shiva with young ganesh mythological post cardLord shiva with young ganesh mythological post card
Lord shiva with young ganesh mythological post card
 
Taj mahal post card
Taj mahal post cardTaj mahal post card
Taj mahal post card
 
Srirama navami festival
Srirama navami festivalSrirama navami festival
Srirama navami festival
 
Foundations of Hinduism
Foundations of HinduismFoundations of Hinduism
Foundations of Hinduism
 
India's Sanathana Dharma
India's Sanathana DharmaIndia's Sanathana Dharma
India's Sanathana Dharma
 
sanathana dharma
sanathana dharmasanathana dharma
sanathana dharma
 
Why to Follow Vedic Path?
Why to Follow Vedic Path?Why to Follow Vedic Path?
Why to Follow Vedic Path?
 
Vision and Approaches of Upanishads
Vision and Approaches of UpanishadsVision and Approaches of Upanishads
Vision and Approaches of Upanishads
 
Hindu Scriptures
Hindu Scriptures Hindu Scriptures
Hindu Scriptures
 
The role of Hindu Dharma & Our role in Hindu Dharma
The role of Hindu Dharma & Our role in Hindu Dharma The role of Hindu Dharma & Our role in Hindu Dharma
The role of Hindu Dharma & Our role in Hindu Dharma
 
Mahatma Gandhi
Mahatma GandhiMahatma Gandhi
Mahatma Gandhi
 
Vintage cigarette cards of maharajas of india
Vintage cigarette cards of maharajas of indiaVintage cigarette cards of maharajas of india
Vintage cigarette cards of maharajas of india
 

Dernier

fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 

Dernier (20)

fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 

Program design and problem solving techniques

  • 1. Program Design & Problem-Solving Techniques Module Pre-Requisites: None http://ashesh.ramjeeawon.info Management Student/ Freelance Developer University of Mauritius 1
  • 2. Problem Solving – Program Design: Algorithm /Pseudocode Today’s Session  Steps in program development  Algorithmic Problem Solving  How to write Pseudocode?  Meaningful names  Structure Theorem  Communication between modules  Module Cohesion and Coupling  Sequential File update 2
  • 3. Problem Solving – Program Design: Algorithm /Pseudocode Problem Solving - Big Problemo!!! 3
  • 4. Problem Solving – Program Design: Algorithm /Pseudocode How Do We Write a Program?  A computer is not intelligent. It cannot analyze a problem and come up with a solution. A human (the programmer) must analyze the problem, develop the instructions for solving the problem, and then have the computer carry out the instructions.  To write a program for a computer to follow, we must go through a two-phase process: problem solving and implementation 4
  • 5. Problem Solving – Program Design: Algorithm /Pseudocode Problem-Solving Phase  Analysis and Specification. Understand (define) the problem and what the solution must do.  General Solution (Algorithm). Specify the required data types and the logical sequences of steps that solve the problem.  Verify. Follow the steps exactly to see if the solution really does solve the problem. 5
  • 6. Problem Solving – Program Design: Algorithm /Pseudocode Implementation Phase  Concrete Solution (Program). Translate the algorithm (the general solution) into a programming language.  Test. Have the computer follow the instructions. Then manually check the results. If you find errors, analyze the program and the algorithm to determine the source of the errors, and then make corrections.  Once a program has been written, it enters a third phase: maintenance. 6
  • 7. Problem Solving – Program Design: Algorithm /Pseudocode Maintenance Phase  Use. Use the program.  Maintain. Modify the program to meet changing requirements or to correct any errors that show up while using it.  The programmer begins the programming process by analyzing the problem, breaking it into manageable pieces, and developing a general solution for each piece called an algorithm. The solutions to the pieces are collected together to form a program that solves the original problem. Understanding and analyzing a problem take up much more time than Figure 1.1 implies. They are the heart of the programming process. 7
  • 8. Problem Solving – Program Design: Algorithm /Pseudocode 8
  • 9. Problem Solving – Program Design: Algorithm /Pseudocode Compiler and Interpreters 9
  • 10. Steps in program development Ref: 10
  • 11. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Define the problem into three separate components:  inputs  outputs  processing steps to produce required outputs. 11
  • 12. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Outline the solution.  Decompose the problem to smaller steps.  Establish a solution outline.  Initial outline may include:  major processing steps involved  major subtasks  user interface  major control structures  major variable and record structures  mainline logic 12
  • 13. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Develop the outline into an algorithm.  The solution outline is now expanded into an algorithm.  What is an algorithm? – a set of precise steps that describe exactly the tasks to be performed and the order in which they are to be carried out.  Pseudocode will be used to represent the solution algorithm 13
  • 14. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Test the algorithm for correctness.  Very important in the development of a program, but often forgotten  Major logic errors can be detected and corrected at an early stage  Go through the algorithm step-by-step with test data to ensure the program will actually do what it is supposed to do. 14
  • 15. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Code the algorithm into a specific programming language.  Start to code the program into a chosen programming language after all design considerations from Steps 1–4 are met. 15
  • 16. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Run the program on the computer.  This step uses a program compiler and programmer-designed test data to machine- test the code for  syntax errors  logic errors 16
  • 17. Problem Solving – Program Design: Algorithm /Pseudocode Steps in program development 1. Document and maintain the program.  Is really an ongoing task from the initial definition of the problem to the final test  Documentation involves:  external documentation  internal documentation 17
  • 18. Problem Solving – Program Design: Algorithm /Pseudocode  Algorithmic Problem Solving 18
  • 19. Problem Solving – Program Design: Algorithm /Pseudocode An introduction to algorithms and pseudocode  What is an algorithm? Lists the steps involved in accomplishing a task (like a recipe) Defined in programming terms as ‘a set of detailed and ordered instructions developed to describe the processes necessary to produce the desired output from a given input’ 19
  • 20. Problem Solving – Program Design: Algorithm /Pseudocode An introduction to algorithms and pseudocode  What is an algorithm? An algorithm must:  Be lucid, precise and unambiguous  Give the correct solution in all cases  Eventually end 20
  • 21. Problem Solving – Program Design: Algorithm /Pseudocode An introduction to algorithms and pseudocode  What is pseudocode? Structured English (formalised and abbreviated to look like high-level computer language) 21
  • 22. Problem Solving – Program Design: Algorithm /Pseudocode How to write pseudocode  There are six basic computer operations: 1. A computer can receive information 2. A computer can put out information 3. A computer can perform arithmetic 4. A computer can assign a value to a variable or memory location 5. A computer can compare two variables and select one of two alternate actions 6. A computer can repeat a group of actions 22
  • 23. Problem Solving – Program Design: Algorithm /Pseudocode Exercise Time  Do some reading on the website below:  http://www.cs.dartmouth.edu/~fabio/teaching/c 23
  • 24. Problem Solving – Program Design: Algorithm /Pseudocode Meaningful names  When designing an algorithm, a programmer must introduce some unique names which represents variables or objects in the problem.  Names should be meaningful.  Names should be transparent to adequately describe variables (Number1, number2, etc.). 24
  • 25. Problem Solving – Program Design: Algorithm /Pseudocode Meaningful names  Underscore is used when using more than one word (sales_tax or word_count).  Most programming language does not tolerate a space in a variable as space would signal the end of a variable name.  Another method is to use capital letters as a word separator (salesTax or wordCount). 25
  • 26. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem 26
  • 27. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem 1. Sequence  Straightforward execution of one processing step after another  Represents the first four basic computer operations 1. Receive information 2. Put out information 3. Perform arithmetic 4. Assign values 27
  • 28. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem  A typical sequence statement in an algorithm might read: Add 1 to pageCount Print heading line1 Print heading line2 Set lineCount to zero Read customer record  These instructions illustrate the sequence control structure as a straightforward list of steps written one after the other, in a top-to-bottom fashion 28
  • 29. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem 1. Selection  Presentation of a condition and the choice between two actions, the choice depending on whether the condition is true or false  Represents the decision-making abilities of the computer  Illustrates the fifth basic computer operation – compare two variables and select one of two alternate actions 29
  • 30. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem  In pseudocode, selection is represented by the keywords IF, THEN, ELSE and ENDIF IF condition p is true THEN statement(s) in true case ELSE statement(s) in false case ENDIF  If condition p is true, then the statement in true case will be executed, and the statement in the false case will be skipped (vice versa) 30
  • 31. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem 1. Repetition  Presentation of a set of instruction to be performed repeatedly, as long as the condition is true  Block statement is executed again and again until a terminating condition occurs  Illustrates the sixth basic computer operation – to repeat a group of actions. 31
  • 32. Problem Solving – Program Design: Algorithm /Pseudocode The Structure Theorem  Written in pseudocode as: DOWHILE condition p is true statement block ENDDO  DOWHILE is a leading decision loop – condition is tested before any statements are executed  ENDDO triggers a return of control to the retesting of the condition  Condition is true, statements are repeated until condition is found false 32
  • 33. Problem Solving – Program Design: Algorithm /Pseudocode Exercise Time  In a complete program/ algorithm, show the 3 concepts of Structure Theorem 33
  • 34. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Necessary to consider flow of information between modules  This flow of information is called ‘intermodule communication’ and can be accomplished by the scope of the variable 34
  • 35. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Scope of a variable The portion of a program in which that variable has been defined and to which it can be referenced Variables can be global where the scope of the variable is the whole program Scope of the variable is simple the module which it is defined 35
  • 36. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Global data Date that can be used by all the modules in a program Every module in the program can access and change data Lifetime of a global variable spans the execution of the whole program 36
  • 37. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Local data Variable are defined within the submodule are called local variables The scope of a local variable is simply the module in which it is defined The lifetime of a local variable is limited to the execution of the single submodule in which it is defined 37
  • 38. Problem Solving – Program Design: Algorithm /Pseudocode Exercise time Show the difference between a global variable and a local variable via the use of a program, in any language of your choice. 38
  • 39. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Side effects Side effect is a form of a cross-communication of a module with other parts of a program, Occurs when a subordinate module alters the value of a global variable inside a module 39
  • 40. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Passing parameters Parameters are simply data items transferred from a calling module to its subordinate module at the time of calling To pass parameters between modules, two things can happen:  The calling module must name the parameters that it wants to pass to the submodule  The submodule must be able to receive those parameters and return them to the calling module if required 40
  • 41. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Formal and actual parameters Parameters names that appear when a submodule is defined are known as formal parameters Variables and expressions that are passed to a submodule in a particular call are called actual parameters 41
  • 42. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Value and reference parameters  Parameters may have one of three function: 1. To pass information from a calling module to a subordinate module 2. To pass information from a subordinate module to its calling module 3. To fulfil a two-way communication role 42
  • 43. Problem Solving – Program Design: Algorithm /Pseudocode Communication between modules  Value and reference parameters Value parameters  Value parameters pass a copy of the value of a parameter from one module to another Reference parameters  Reference parameter pass the memory address of a parameter from one module to another 43
  • 44. Problem Solving – Program Design: Algorithm /Pseudocode Module cohesion  Cohesion is a measure of the internal strength of a module  It indicates how closely the elements or the statements of a module are associated with each other  The more closely the elements of a module are associated with each other, the higher the cohesion of the module 44
  • 45. Problem Solving – Program Design: Algorithm /Pseudocode Module coupling  Coupling is a measure of the extent of information interchange between modules  Tight coupling implies large dependence on the structure of one module by another  Loose coupling is the opposite of tight coupling. Modules with loose coupling are more independent and easier to maintain 45
  • 46. Problem Solving – Program Design: Algorithm /Pseudocode Sequential file update  Master file Is a file that contains permanent and semi- permanent information about the data entities it contains  Transaction file Contains all the data and activities that are included on the master file. These are transactions to:  Add a new record  Update or change an existing record  Delete an existing record 46
  • 47. Problem Solving – Program Design: Algorithm /Pseudocode Sequential file update  Sequential update logic  Sequential processing falls generally into three categories: 1. If the key on the transaction record is less than the key on the old master record, the transaction is probably an add transaction 2. If they key on the transaction record is equal to the key on the old master record, the transaction is probably an update or delete transaction 3. If the key on the transaction record is greater that the key on the old master record, there is not matching transaction for that master record 47
  • 48. Problem Solving – Program Design: Algorithm /Pseudocode The End – Thank you for your kind attention  References: Simple Program Design – A step by step approach by L. A. Robertson 48
  • 49. Problem Solving – Program Design: Algorithm /Pseudocode http://ashesh.ramjeeawon.info Management Student/ Freelance Developer University of Mauritius BCS Student Member 49