Top Banner
1 Program Design & Problem-Solving Techniques http://ashesh.ramjeeawon.info Management Student/ Freelance Developer University of Mauritius Module Pre-Requisites: None
49
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Problem Solving Techniques

1

Program Design &Problem-Solving

Techniques

http://ashesh.ramjeeawon.infoManagement Student/ Freelance DeveloperUniversity of Mauritius

Module Pre-Requisites:

None

Page 2: Problem Solving Techniques

2

Problem Solving – Program Design: Algorithm /Pseudocode

Today’s Session

Steps in program developmentAlgorithmic Problem SolvingHow to write Pseudocode?Meaningful namesStructure TheoremCommunication between modulesModule Cohesion and CouplingSequential File update

Page 3: Problem Solving Techniques

3

Problem Solving – Program Design: Algorithm /Pseudocode

Problem Solving - Big Problemo!!!

Page 4: Problem Solving Techniques

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

Page 5: Problem Solving Techniques

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.

Page 6: Problem Solving Techniques

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.

Page 7: Problem Solving Techniques

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.

Page 8: Problem Solving Techniques

8

Problem Solving – Program Design: Algorithm /Pseudocode

Page 9: Problem Solving Techniques

9

Problem Solving – Program Design: Algorithm /Pseudocode

Compiler and Interpreters

Page 10: Problem Solving Techniques

10

Steps in program development

Ref:

Page 11: Problem Solving Techniques

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.

Page 12: Problem Solving Techniques

12

Problem Solving – Program Design: Algorithm /Pseudocode

Steps in program development

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

Page 13: Problem Solving Techniques

13

Problem Solving – Program Design: Algorithm /Pseudocode

Steps in program development

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

Page 14: Problem Solving Techniques

14

Problem Solving – Program Design: Algorithm /Pseudocode

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

Steps in program development

Page 15: Problem Solving Techniques

15

Problem Solving – Program Design: Algorithm /Pseudocode

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

Steps in program development

Page 16: Problem Solving Techniques

16

Problem Solving – Program Design: Algorithm /Pseudocode

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

Steps in program development

Page 17: Problem Solving Techniques

17

Problem Solving – Program Design: Algorithm /Pseudocode

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

Steps in program development

Page 18: Problem Solving Techniques

18

Problem Solving – Program Design: Algorithm /Pseudocode

Algorithmic Problem Solving

Page 19: Problem Solving Techniques

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’

Page 20: Problem Solving Techniques

20

Problem Solving – Program Design: Algorithm /Pseudocode

An introduction to algorithms and pseudocode

What is an algorithm?An algorithm must:

Be lucid, precise and unambiguousGive the correct solution in all casesEventually end

Page 21: Problem Solving Techniques

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)

Page 22: Problem Solving Techniques

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

Page 23: Problem Solving Techniques

23

Problem Solving – Program Design: Algorithm /Pseudocode

Exercise Time

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

ng/cs4-winter07/notes/06_algo-intro.html

Page 24: Problem Solving Techniques

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

Page 25: Problem Solving Techniques

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

Page 26: Problem Solving Techniques

26

Problem Solving – Program Design: Algorithm /Pseudocode

The Structure Theorem

Page 27: Problem Solving Techniques

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

operations1. Receive information

2. Put out information

3. Perform arithmetic

4. Assign values

Page 28: Problem Solving Techniques

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 recordThese instructions illustrate the sequence control

structure as a straightforward list of steps written one after the other, in a top-to-bottom fashion

Page 29: Problem Solving Techniques

29

Problem Solving – Program Design: Algorithm /Pseudocode

The Structure Theorem

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

Page 30: Problem Solving Techniques

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)

Page 31: Problem Solving Techniques

31

Problem Solving – Program Design: Algorithm /Pseudocode

The Structure Theorem

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

Page 32: Problem Solving Techniques

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

Page 33: Problem Solving Techniques

33

Problem Solving – Program Design: Algorithm /Pseudocode

Exercise Time

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

Page 34: Problem Solving Techniques

34

Problem Solving – Program Design: Algorithm /Pseudocode

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

Communication between modules

Page 35: Problem Solving Techniques

35

Problem Solving – Program Design: Algorithm /Pseudocode

Scope of a variableThe 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

Communication between modules

Page 36: Problem Solving Techniques

36

Problem Solving – Program Design: Algorithm /Pseudocode

Global dataDate that can be used by all the modules in a

programEvery module in the program can access and

change dataLifetime of a global variable spans the

execution of the whole program

Communication between modules

Page 37: Problem Solving Techniques

37

Problem Solving – Program Design: Algorithm /Pseudocode

Local dataVariable are defined within the submodule are

called local variablesThe scope of a local variable is simply the

module in which it is definedThe lifetime of a local variable is limited to the

execution of the single submodule in which it is defined

Communication between modules

Page 38: Problem Solving Techniques

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.

Page 39: Problem Solving Techniques

39

Problem Solving – Program Design: Algorithm /Pseudocode

Side effectsSide 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

Communication between modules

Page 40: Problem Solving Techniques

40

Problem Solving – Program Design: Algorithm /Pseudocode

Passing parametersParameters 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 submoduleThe submodule must be able to receive those

parameters and return them to the calling module if required

Communication between modules

Page 41: Problem Solving Techniques

41

Problem Solving – Program Design: Algorithm /Pseudocode

Formal and actual parametersParameters 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

Communication between modules

Page 42: Problem Solving Techniques

42

Problem Solving – Program Design: Algorithm /Pseudocode

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

Communication between modules

Page 43: Problem Solving Techniques

43

Problem Solving – Program Design: Algorithm /Pseudocode

Value and reference parametersValue parameters

Value parameters pass a copy of the value of a parameter from one module to another

Reference parametersReference parameter pass the memory address of a

parameter from one module to another

Communication between modules

Page 44: Problem Solving Techniques

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

Page 45: Problem Solving Techniques

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

Page 46: Problem Solving Techniques

46

Problem Solving – Program Design: Algorithm /Pseudocode

Sequential file update

Master fileIs a file that contains permanent and semi-

permanent information about the data entities it contains

Transaction fileContains all the data and activities that are

included on the master file. These are transactions to:Add a new recordUpdate or change an existing recordDelete an existing record

Page 47: Problem Solving Techniques

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

Page 48: Problem Solving Techniques

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

Page 49: Problem Solving Techniques

49

Problem Solving – Program Design: Algorithm /Pseudocode

http://ashesh.ramjeeawon.infoManagement Student/ Freelance DeveloperUniversity of MauritiusBCS Student Member