+ All Categories
Home > Documents > M02_ParticipantGuide

M02_ParticipantGuide

Date post: 06-Apr-2018
Category:
Upload: utkarsh-jain
View: 221 times
Download: 0 times
Share this document with a friend

of 25

Transcript
  • 8/3/2019 M02_ParticipantGuide

    1/25

    Programming Techniques Module 2: Participant Guide

    MODULE 2: FUNDAMENTALOF PROGRAMMING

    CONCEPTS - PARTICIPANT GUIDE

    Course Code # IDCGRF001-A Page 1 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    2/25

    Programming Techniques Module 2: Participant Guide

    TABLEOF CONTENTS

    Module Introduction...........................................................................................................4

    Module Objectives.............................................................................................................5Source Material .................................................................................................................6

    Presentation: 2.1 Fundamental Programming concepts...................................................7Algorithm ....................................................................................................................7

    Overview .................................................................................................................7Benefits of Algorithm ...............................................................................................8Analyzing an Algorithm ........................................................................................... 8Algorithm Complexities ........................................................................................... 9Structure of an Algorithm ...................................................................................... 11Basic three algorithm concepts ............................................................................. 11Sequential Algorithm ............................................................................................. 12Selection .............................................................................................................. 12Iteration ................................................................................................................ 13

    Flowcharts ............................................................................................................... 14Overview ............................................................................................................... 14Symbols used in Flow chart.................................................................................. 14Flowcharts: Advantages and Disadvantages ....................................................... 15Flowcharts: Limitations ......................................................................................... 16

    Testing ...................................................................................................................... 16Overview ............................................................................................................... 16Need of testing ...................................................................................................... 16Unit testing ........................................................................................................... 16Test Cases ............................................................................................................ 17

    Key points ................................................................................................................. 18

    Activity 1 ..........................................................................................................................18Activity Overview ...................................................................................................... 18Activity Instructions ................................................................................................... 19

    Activity 1.0 ............................................................................................................. 19Activity 1.1 ............................................................................................................. 19Activity 1.2 ............................................................................................................. 19Activity 1.3 ............................................................................................................. 19Activity 1.4 ............................................................................................................. 19

    Presentation: 2.2 Programming Life Cycle......................................................................20Top-down Design ......................................................................................................21Bottom-up Design ..................................................................................................... 22Structured programming ........................................................................................... 22Program Life Cycle ................................................................................................... 23Key points ................................................................................................................. 24

    Activity 2...........................................................................................................................24

    Course Code # IDCGRF001-A Page 2 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    3/25

    Programming Techniques Module 2: Participant Guide

    Activity overview ....................................................................................................... 24Activity 2.0 ............................................................................................................. 24

    Activity Hints and Tips ............................................................................................. 24Hints/Tips .................................................................................................................. 25

    Course Code # IDCGRF001-A Page 3 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    4/25

    Programming Techniques Module 2: Participant Guide

    Module Introduction

    The purpose of this module is to provide the fundamentals ofProgramming Techniques. This module will span a day of the

    Programming Techniques. There are 4 presentations and 2 hands-onactivities, which will allow you to apply what you have learned. There willalso be a Knowledge Check at the end of this module to assess yourunderstanding of the content presented.

    The presentations and activities include:

    Presentation: 2.1 Fundamental Programming concepts

    Activity 1

    Presentation: 2.2 Programming Life Cycle

    Activity 2

    Course Code # IDCGRF001-A Page 4 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    5/25

    Programming Techniques Module 2: Participant Guide

    Module Objectives

    After completing this module, you should be able to:

    Discuss about Algorithm Define Algorithm

    Need of Algorithm

    Structure and concept of Algorithm

    Define Flowchart

    Need of Flowchart

    Structure and concept of Flowchart

    Testing

    Need of Testing

    Unit Testing

    Activity 1

    Programming Life Cycle

    Types of Programming Design

    o Top-Down Approach

    o Bottom-Up Approach

    o Linear Programming

    o Structured Programming

    Program Life Cycle

    Activity 2

    Course Code # IDCGRF001-A Page 5 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    6/25

    Programming Techniques Module 2: Participant Guide

    Source Material

    The source material used to facilitate the delivery of this module is locatedwithin the Module 2

    Course Code # IDCGRF001-A Page 6 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    7/25

    Programming Techniques Module 2: Participant Guide

    Presentation: 2.1 Fundamental Programmingconcepts

    Time: 1:30 Hour

    Algorithm

    Overview

    Algorithm is used to simplify a given task. It is a solution to a problem thatis independent of any programming language. It is an explicit step-by-stepprocedure for producing a solution to a given problem.

    This presentation covers the basic features and concepts of Algorithm. Inaddition it covers the need of algorithm, structure of algorithm and

    concepts of algorithm

    An algorithm is:

    A finite sequence of steps

    Each step shall be explicit and unambiguous

    For each input, it shall terminate in finite time with output

    A program is an algorithm expressed in a programming language

    Different definition of algorithm is:

    An explicit step-by-step procedure for producing a solution to agiven problem

    In mathematics and computer science an algorithm (the word isderived from the name of the Persian mathematician Al-Khwarizmi) isa finite set of well-defined instructions for accomplishing some taskwhich, given an initial state, will terminate in a correspondingrecognizable end-state (contrast with heuristic). Algorithms can beimplemented by computer programs, although often in restricted forms;

    mistakes in implementation and limitations of the computer can preventa computer program from correctly executing its intended algorithm.

    To know more about algorithm: http://en.wikipedia.org/wiki/Algorithm

    Course Code # IDCGRF001-A Page 7 of 25 Accenture 2007 All Rights Reserved

    http://en.wikipedia.org/wiki/Algorithmhttp://en.wikipedia.org/wiki/Algorithm
  • 8/3/2019 M02_ParticipantGuide

    8/25

    Programming Techniques Module 2: Participant Guide

    Benefits of Algorithm

    An algorithm is a definite procedure for performing certain task

    It is written using simple English sentences

    Facilitates easy development of programs

    o Iterative refinemento Easy to convert it to a program

    It helps resolving complex problems

    Review is easier

    Analyzing an Algorithm

    There are different approaches of algorithm in analyzing a problem

    Empirical (a posteriori) approach

    o It is a method consisting of programming the competing

    techniques and trying them on different instances

    o The empirical approach to choosing an algorithm consists of

    programming the competing techniques and trying them ondifferent instances with the help of a computer

    Theoretical (a priori) approach

    o It determines mathematically the quantity of resources

    needed by each algorithm as a function of the size of theinstances

    The theoretical approach consists of determining mathematically the

    quantity of resources needed by each algorithm as a function of the size ofthe instances. The resources of most interest are computing time andstorage space, with the former usually being the more critical.

    We compare the algorithms on the basis of their execution times, analgorithms storage requirements.

    The size of an instance corresponds formally to the number of bits neededto represent the instance on a computer, using some precisely definedand reasonably compact coding scheme. (The word size to mean anyinteger that in some way measures the number of components in aninstance.) E.g. when we talk about sorting, we usually measure the size of

    an instance by the number of items to be sorted, ignoring the fact thateach of these items may take more than once bit to represent on acomputer. Similarly, when we talk about graphs, we usually measure thesize of an instance by the number of nodes or edges (or both) involved.

    o The advantage of the theoretical approach is that it depends

    on neither the computer being used, nor the programminglanguage, nor even the skill of the programmer. It saves both

    Course Code # IDCGRF001-A Page 8 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    9/25

    Programming Techniques Module 2: Participant Guide

    the time that would have been spent needlesslyprogramming an inefficient algorithm and the machine thatwould have been wasted testing it. More significantly itallows us to study the efficiency of an algorithm when usedon instances of any size. This is often not the case with the

    empirical approach, where practical consideration my forceus to test our algorithms only on a small number of arbitrarilychosen instances of moderate size. Since it is often the casethat newly discovered algorithm begins to perform betterthan its predecessor only when they are both used on largeinstances, this last point is particularly important.

    Hybrid approach

    o Combination of Empirical and theoretical approach

    o One can also think of a hybrid approach while analyzing the

    algorithms, where the form of the function describing the

    algorithms efficiency is determined theoretically, and thenany required numerical parameters are determinedempirically for a particular program and machine, usually bysome kind of regression. Using this approach we can predictthe time an actual implementation will take to solve aninstance much larger than those used in the tests. Bewarehowever of making such extrapolations solely on the basis ofa small number of empirical test, ignoring all theoreticalconsiderations. Predictions made without theoretical supportare likely to be very imprecise, if not plain wrong.

    To know more about efficiency of algorithm:

    http://en.wikipedia.org/wiki/Algorithm

    http://homepages.ius.edu/gmanwani/C202/algorithm%20efficiency.pdf

    http://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency1.html

    http://people.cs.uct.ac.za/~bmerry/manual/algorithms/efficiency.html

    Algorithm Complexities

    Complexities are the parameters to capture the challenges orcomplications

    Few of the algorithm complexities are captured based on :

    o Time Complexities

    Is the amount of computer time it needs to run tocompletion

    Course Code # IDCGRF001-A Page 9 of 25 Accenture 2007 All Rights Reserved

    http://en.wikipedia.org/wiki/Algorithmhttp://homepages.ius.edu/gmanwani/C202/algorithm%20efficiency.pdfhttp://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency1.htmlhttp://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency1.htmlhttp://people.cs.uct.ac.za/~bmerry/manual/algorithms/efficiency.htmlhttp://en.wikipedia.org/wiki/Algorithmhttp://homepages.ius.edu/gmanwani/C202/algorithm%20efficiency.pdfhttp://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency1.htmlhttp://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency1.htmlhttp://people.cs.uct.ac.za/~bmerry/manual/algorithms/efficiency.html
  • 8/3/2019 M02_ParticipantGuide

    10/25

    Programming Techniques Module 2: Participant Guide

    o Space Complexities

    Is the amount of memory it needs to run to completion

    Course Code # IDCGRF001-A Page 10 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    11/25

    Programming Techniques Module 2: Participant Guide

    Structure of an Algorithm

    Step, Control and Exito Step represents the first step in the algorithm i.e. BEGIN

    o Control represents the flow of control within the algorithm

    o Exit represents the point of exit from the algorithm Comments

    o Proper comments must be inserted wherever necessary to

    give descriptions of the steps

    Variableso Properly named variables should be used in the algorithm

    Input / Outputo Inputs can be read using the Input

    o Output can be written using Output

    Syntax for writing Algorithm

    1. Begin //is the starting point of analgorithm2. Statement13. Statement2.....

    .N. End

    Basic three algorithm concepts

    1. Sequential2. Select ional (Single & Multiple)3. Iterational

    Course Code # IDCGRF001-A Page 11 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    12/25

    Programming Techniques Module 2: Participant Guide

    Sequential Algorithm

    Modules are executed in some sequence/ in a linear fashion

    Algorithm 1: Find the average of a student given the marks

    he obtained in three subjects.

    1. Begin2. Input Marks1, Marks2, Marks33. AVG = (Marks1+Marks2+Marks3) / 34. Output Average Marks =, AVG5. END

    Selection

    To perform an operation based on the choice or selection of the individual

    is achieved using selection algorithm.There are two main types of selection algorithm1. Single Alternative2. Multiple Alternative

    Single Alternative Multiple Alternative

    Having a single conditioncriteria to qualify any test

    Having a multiple conditions toqualify any test

    Mainly used with simple andsingle condition checks

    Used when more than one conditionneed to be checked and different

    statements need to be printedTable 1: Example of selection

    Algorithm to find the average of the marks a student has obtained in threesubjects, test whether he passed or failed; for passing, average should notbe less than 50:

    Algorithm 2: Single Alternative

    1. Begin2. Input Marks1, Marks2, Marks3

    3. Avg = (Marks1+Marks2+Marks3)/34. If (Avg >= 50) Then Output Passed5. End

    Course Code # IDCGRF001-A Page 12 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    13/25

    Programming Techniques Module 2: Participant Guide

    Algorithm 3: Multiple Alternative

    1. Begin

    2. Input Marks1, Marks2, Marks33. Avg = (Marks1+Marks2+Marks3)/34. If (Avg >= 50) Then5. Output Passed6. Else7. Output Failed8. End

    Iteration

    Algorithm 4: to read marks of three subjects. Find theaverage scored by the student, and print Pass if the scoreis more than 50 otherwise print Fail for N number ofStudents

    1. Begin2. Print Enter number of students3. Input N

    4. Repeat step 5 thru step 8, N TIMES5. Print Enter Marks of 3 subjects6. Input marks1, marks2, marks3

    7. Avg = (marks1+marks2+marks3)/38. If (Avg >= 50) Then

    Print PassedElse

    Print FailedEnd-if

    9. End

    Course Code # IDCGRF001-A Page 13 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    14/25

    Programming Techniques Module 2: Participant Guide

    Flowcharts

    Overview

    This presentation covers the fundamentals Flow chart. It the need of

    flowchart, different symbol used in the flowcharts etc.

    The flowchart can be defined as a diagram of the problem solving stepsthat is written by the programmer. It can also be defined as the geometricrepresentation of an algorithmIt is a diagram consisting of a set of symbols (such as rectangles ordiamonds) and connecting lines that shows step-by-step progressionthrough a procedure, process or system

    A flowchart (also spelled flow-chart and flow chart) is a schematicrepresentation of a process. They are commonly used in

    business/economic presentations to help the audience visualize thecontent better, or to find flaws in the process.

    To know more about flowchart: http://en.wikipedia.org/wiki/Flowchart

    Symbols used in Flow chart

    Flow charts are drawn using few standard symbols. Figure 1 shows somestandard symbols that are required to represent flowcharting.

    AFigure 1: Symbols used in flowchart

    Course Code # IDCGRF001-A Page 14 of 25 Accenture 2007 All Rights Reserved

    http://en.wikipedia.org/wiki/flowcharthttp://en.wikipedia.org/wiki/flowchart
  • 8/3/2019 M02_ParticipantGuide

    15/25

    Programming Techniques Module 2: Participant Guide

    In Figure 1: Symbols used in flowchart

    A represents the start and End points

    B Computation step or logical step

    C Input /output Operation

    D Connector

    EDecisionFLoop

    G Connector

    Flowchart 1: To read marks of three subjects. Find theaverage scored by the student, and print Pass if the score ismore than 50 otherwise print Fail for N number of Students

    Flowcharts: Advantages and Disadvantages

    Advantage Disadvantage

    Communication Complex logic

    Effective analysis Alterations and Modifications will be difficult

    Proper documentation The essentials of what is done can easily belost in the technical details of how it is done

    Efficient Coding

    Proper Debugging

    Course Code # IDCGRF001-A Page 15 of 25 Accenture 2007 All Rights Reserved

    Start

    Enter m1,m2,m3

    Avg=m1+m2+m3/3

    pass

    end

    Avg>50

    Fail

  • 8/3/2019 M02_ParticipantGuide

    16/25

    Programming Techniques Module 2: Participant Guide

    Flowcharts: Limitations

    Complex logic

    Alterations and Modifications

    Testing

    Overview

    Testing is the process of running a system with the intention of findingerrors. Enhances the integrity of a system by detecting deviations indesign and errors in the system. Aims at detecting error-prone areas,which helps in the prevention of errors in a system. Testing also addsvalue to the product by confirming to the user requirements.Testing is Oriented to 'detection'

    Testing is a process used to help identify the correctness,completeness and quality of developed computer software.

    Testing is the process of running a system with the intention offinding errors

    It enhances the integrity of a system by detecting deviations indesign and errors in the system.

    It aims at detecting error-prone areas, which helps in the preventionof errors in a system.

    Testing also adds value to the product by conforming to the userrequirements.

    It is Oriented to 'detection'

    Need of testing

    Because software is likely to have faults

    To learn about the reliability of the software

    To fill the time between delivery of the software and the release date

    To prove that the software has no faults

    Because testing is included in the project plan

    Because failures can be very expensive

    To avoid being sued by customers

    Unit testing

    A unit test is a method of testing the correctness of a particularmodule of source code

    Unit testing is also known as Component/ Module/ Program Testing

    It is the most 'micro' scale of testing

    Course Code # IDCGRF001-A Page 16 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    17/25

    Programming Techniques Module 2: Participant Guide

    The goal of unit testing is to isolate each part of the program andshow that the individual parts are correct

    Most thorough look at detail

    o Entry criteria: -

    After completion of each screens/modules, unit testing is done

    o Exit criteria: -

    Code is peer reviewed.

    Basic functionality is achieved.

    All requirements been tested or verified.

    No errors in calculations, formulas or rounding.

    If any bugs remain should not harm the basic functionality.

    No data corruption errors

    No Incorrect data, or data recorded in the wrong field, account or

    database

    Test Cases

    Test case is a set of test inputs, execution conditions, and expectedresults developed for a particular objective, such as to exercise aparticular program path or to verify compliance with a specificrequirement

    Test cases are written for each unit in the main program

    A program will execute all the test cases and record the results .itcan be called as a test file.

    Test cases will have Description, inputs, expected outcomes

    Testing Example 1: To read marks of three subjects. Find theaverage scored by the student, and print Pass if the score ismore than 50 otherwise print Fail for N number of Students

    Course Code # IDCGRF001-A Page 17 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    18/25

    Programming Techniques Module 2: Participant Guide

    1. Begin2. Output Enter number of students3. Input N

    4. Repeat step 5 thru step 8, N TIMES

    5. Output Enter Marks of 3 subjects6. Input marks1, marks2, marks37. Avg = (marks1+marks2+marks3)/38. If (Avg >= 50) Then

    Output PassedElse

    Output FailedEnd-if9. End

    Test case for this can be written like this for Testing Example 1:Stepnumber

    Action/Description Input Data Expectedoutcome

    1.001 Enter a

    character

    Character: Invalid

    input

    1.002 Enter negative

    number

    Number:-x Negative

    input

    1.003 Enter a special

    character

    Special

    character: x

    Invalid

    input

    Key points

    Algorithm is detailed sequence of actions to perform to accomplishsome task

    Algorithms facilitates easy development of programs

    Flowchart is a graphic representation of the logic or steps in aprogram or system

    Testing is the process of running a system with the intention offinding errors.

    Unit testing is used to isolate each part of the program and showthat the individual parts are correct.

    Activity 1

    Time: 30 minutes

    Activity Overview

    During Activity 1 you will practice simple logic formulation. The activity

    Course Code # IDCGRF001-A Page 18 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    19/25

    Programming Techniques Module 2: Participant Guide

    helps in understanding the working of algorithm, flowchart and testing.

    Activity Instructions

    Activity 1.0Write an algorithm, flow chart & test cases to find the sum of first 50integers (It uses Iterational algorithm technique.)

    Activity 1.1

    Write an algorithm, flow chart & test cases to search an element in a tableof N values (Uses iterative and selection algorithm technique)

    Activity 1.2Write an algorithm, flowchart & test cases to find the sum of N evennumbers (Uses iterative algorithm technique)

    Activity 1.3

    Write an algorithm, flowchart & test cases to find a Fibonacci series

    (Fibonacci series is of the form 0,1,1,2,3,5Generate

    the series up to N terms)

    Activity 1.4

    Write an algorithm and flowchart & test cases to find the maximum &

    minimum among three numbers entered from the keyboard. (Use

    selection technique.)

    Course Code # IDCGRF001-A Page 19 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    20/25

    Programming Techniques Module 2: Participant Guide

    Presentation: 2.2 Programming Life Cycle

    Time: 30 minutes

    OverviewThis presentation explains about different stages in the life cycle of aprogram

    A program is an algorithm expressed in a programming language

    The act of creating software or some other set of instructions for acomputer

    Computer programming is the craft of implementing one or moreinterrelated algorithms using a particular programming language toproduce a concrete computer program

    Programming Development Life cycle

    RequirementsGatherin

    WHATFigure 2 : Programming Life Cycle

    The presentation introduces different program design approachesAnd explains the problem situations where a particular approach can beused

    Different program design approaches include:

    Different Types of Programming Design Approach are

    Top- down programming

    Bottom-up programming

    Linear programming

    Structured programming

    Course Code # IDCGRF001-A Page 20 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    21/25

    Programming Techniques Module 2: Participant Guide

    Top-down Design

    Based on the fact that large problem become more manageable ifthey are divided into a number of smaller and simpler tasks whichcan be tackled separately.

    Top down design approach is performed in a special way. Themain program is written first. It is tested before sub-programs arewritten. To do this, actual sub programs are replaced with stubs.The stubs simply test to see if the data is passed correctly. After themain program is written and checked, each module is written andtested in turn. If the modules run properly, then it is tested with themain program. If the module and the main run properly then thenext module is written and checked and so on

    A technique for decomposing a problem into subtasks

    Top Down design is iterative

    many levels of decomposition

    o Strengths of top-down design easy to design

    can defer implementation details

    suitable for natural hierarchical problems

    Example 1 : For Top- Down Design - Algorithm to find thenumber of days between two given dates, using functions

    date1 = ( d1, m1, y1),date2 = (d2, m2, y2)Assume date1 is earlier or same as date2.

    Case 1:

    y1 < y2

    total_days = s_y_days + e_y_days + m_y_days

    where:s_y_days = no of remaining days in m1 +

    the total of days in the months from(m1+1) to 12e_y_days = (no of days covered in m2)-1 +

    the total of days in the months from 1 to(m2-1)m_y_days = total no of days in the years from y1+1to (y2-1)

    Case 2:

    y1 == y2

    Course Code # IDCGRF001-A Page 21 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    22/25

    Programming Techniques Module 2: Participant Guide

    total_days = s_m_days + e_m_days + m_m_dayswhere:s_m_days = no of remaining days in m1e_m_days = (no of days covered in m2) - 1

    m_m_days = total no of days in the monthsfrom (m1+1) to (m2-1)

    Bottom-up Design

    Write the most basic subroutines in the hierarchy first and then usethem to make more sophisticated subroutines, The pure bottom-upapproach is generally not recommended because it is difficult toanticipate which low subroutines will be needed for any particularprogram,

    In this approach it is usually assumed that the basic routines

    created will be general enough to be used more than once. This approach is designed to generate reusable code

    This is more like a basic instruction in the programming languagethan a large scale program component

    For more information refer:- http://dept-info.labri.u-

    bordeaux.fr/~strandh/Teaching/MTP/Common/Strandh-Tutorial/bottom-up-programming.html

    - http://en.wikipedia.org/wiki/Top-down

    Linear programmingStraightforward programming in sequential manner. This does not involveany decision making. General model of the linear program is:

    Read a data value.

    Compute an intermediate result.

    Use the intermediate result to compute the desired answer.

    Print the answer.

    Stop

    Structured programming

    The technique for writing a program using decisions, branching points,

    loops, etc. is called structured programming. Which in turn result in morecomplex programs. There are procedures that can be used for writingthose complex programs that makes them much less error prone andmuch easier in debug.

    Course Code # IDCGRF001-A Page 22 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    23/25

    Programming Techniques Module 2: Participant Guide

    Program Life Cycle

    Figure 3 : Program Life Cycle

    Requirement Gathering - Gathering all the required information tounderstand the problem in hand

    Algorithm - An simple English, language independent pseudo code isgenerated.

    Test Plan - Gives a plan to test the solution. It involves test cases, testscripts and test data

    Coding - Enter the source code using some standard editor, care must be

    taken for proper formatting, indenting and using comment entries.

    Compilation -The compiler program scans the source code for SYNTAXerrors, and if it does not find any errors, it converts the source code toOBJECT code.

    Link - The object files are combined with other library files to create theEXECUTABLE file.

    Library - It is a catalogue of previously developed objects. They containprocedures for input, output, math, etc. A user can create their ownlibraries

    Testing - Synthesize test data such that it will evaluate the differentcriteria. The testing should be NEGATIVE testing.

    Debugger- It is a very useful tool to test the program as the intermediateresults, new values of the variables, etc are visible

    Course Code # IDCGRF001-A Page 23 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    24/25

    Programming Techniques Module 2: Participant Guide

    Key points

    A program is an algorithm expressed in aprogramming language

    Programming is the craft of implementing one

    or more interrelated algorithms using a particular programminglanguage

    Large problem become more manageable ifthey are divided into a number of smaller and simpler tasks whichcan be tackled separately.

    Straightforward programming in sequentialmanner is Linear Programming

    Activity 2

    Time: 30 minutes

    Activity overview

    Activity 2 gives you an idea about application of top-down approach

    Activity 2.0

    Design the Payroll System using Top-down approach.

    Activity Hints and Tips

    Focus your efforts! Do not be overwhelmed by the lines of code that yousee for these initial activities. One of traits of a good developer is theability to isolate code that is relevant to the situation.

    Course Code # IDCGRF001-A Page 24 of 25 Accenture 2007 All Rights Reserved

  • 8/3/2019 M02_ParticipantGuide

    25/25

    Programming Techniques Module 2: Participant Guide

    Hints/Tips

    1. Remember motivation comes from within. Take responsibility for

    your own learning.2. Take notes from each presentation and activity.

    3. If you dont understand something, ask questions.

    4. Participate in course discussions.

    5. Practice what youve learned to keep your skills sharp.