unit- i general problem solving concepts. contents introduction general problem solving concepts ▫...

49
UNIT- I General Problem Solving Concepts

Upload: tiffany-todd

Post on 02-Jan-2016

258 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

UNIT- IGeneral Problem Solving Concepts

Page 2: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

2

Contents• Introduction• General Problem Solving Concepts

▫Types of Problems▫Problem solving with computers▫Difficulties with problem solving▫Problem solving Aspect

• Problem Solving Concepts for Computer▫Constants and variables▫Data types▫Functions▫Operators▫Expressions and equations

• Programming Concepts▫Communicating with computers▫Organizing the problem▫Using the tools▫Testing the solution▫Coding the program▫Time & Space complexity▫Sorting Problem

Page 3: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

3

problem

Definition

•A perceived gap between the existing

state and a desired state

Page 4: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

4

Page 5: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

5

Introduction

• “If I have one hour to save the world I would spend

fifty-five minutes defining the problem and only five

minutes finding the solution.

-Einstein

Page 6: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

6

Six steps for problem Solving

▫Identify the problem▫Understand the problem▫Identify alternative ways to solve the

problem▫Select the best way to solve the problem▫List instructions that enable you to solve

the problem using the selected solution▫Evaluate the solution

Page 7: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

Example: Problem what to do this evening1. Indentify the Problem: How do the Individuals wish to spend the

evening?2. Understand the problem: The knowledge base of the participants

must be considered. The only solutions that should be selected are ones that everyone would know how to do. You probably would not select as a possible solution playing a game of chess if the participants do not know hot to play chess.

3. Identify Alternatives: ▫ Watch Television▫ Invite friends over▫ Play games▫ Go to the movie▫ Play miniature golf▫ Go to a friends party▫ Go to the amusement park▫ List is complete only when you can think of no more alternatives

4. Select best way to solve the problem▫ Cut out alternatives that are not acceptable▫ Specify pros and Cons of each Remaining alternative▫ Compare pros and cons to make final decision

5. Prepare a list of steps that will result in a fun evening.6. Evaluate the solution. Are we having fun yet?

Page 8: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

8

• E.G. Chitti The Robot

(From: PS&PC by Maureen Sprankle -pg no:463-

Appendix A)

Page 9: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

9

General Problem-Solving Concepts

Page 10: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

10

Types of Problems• Problems can be solved with series of actions

▫ Algorithmic Solution

• Problems do not always have straightforward solutions

▫ Heuristic solutions

• Problem solver can use six steps for both algorithmic and

heuristic solutions

• Evaluating correctness and Appropriateness of heuristic

solutions are far less certain.

• Most problems require a combination of the two kinds of

solutions

Page 11: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

11

Problem solving with computers

• Results means the outcome or the completed

computer assisted answer

• Program means the set of instructions that make up

the solution using programming language

• Computers are built to deal with algorithmic solutions

• Difficulty lies in Programming

• Solutions must be transformed into an algorithmic

format

Page 12: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

12

Difficulties with Problem Solving• People have many problems with problem solving

• Afraid to make decisions

• People go through one or more steps inadequately

• Problem solving process is not easy

• Problem solving on computer

▫Difficult task of writing instructions

▫Computer has specific system of communication

Page 13: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

13

Problem Solving Aspect• There is no universal method for problem solving

• Phases

▫ Problem Definition Phase

▫ Getting started on a problem

▫ The use of Specific Examples

▫ Similarities among problems

▫ Working backwards from the solution

▫ General Problem Solving Strategies

Page 14: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

14

Problem Definition Phase

• What must be done?

• We must try to extract set of precisely defined

tasks.

• E.g. Finding Square root, Greatest Common

Divisor

Getting Started on a Problem

• Sometimes, even after problem definition people

do not know where to start?

• What can we do?

Page 15: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

15

The use of Specific Examples

• Best approach when we are stuck is to make a start on a

problem is to pick a specific example

• Geometrical and graphical representing certain aspect

of a problem can be useful

Similarities among problems

• Bring as much as past experiences as possible

• New problem cannot be completely different

• Sometimes it blocks us from discovering a new thing

• In the first instance try to independently solve the

problem

Page 16: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

16

Working Backwards from the solution

• In some cases we assume that we already have solution

and then try to work backwards

• Whatever attempts we make that we make to get started

on a problem we should write it down

General Problem Solving Strategies

• Divide and Conquer

• Binary doubling

• Dynamic Programming ▫Greedy method▫Branch and Bound ▫Backtracking

Page 17: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

17

Problem Solving Concepts for the Computer

Page 18: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

18

Constants and Variables• The Computer uses constants and variables to solve

problems

• Constants is a value that never changes during

processing of all instructions▫Can be numeric, alphabetic or special Symbol▫Constant is given a value and then referred to

by its name

• In contrast, the value of a variable may change

during processing

• In many languages variables are called Identifiers

Page 19: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

19

Rules for naming and Using Variables1. Name a variable according to what it represent

2. Do not use spaces in variable name

3. Start variable with a letter

4. Do not use dash(-) in a program

5. After introduces variable name, exact variable

name must be used where data item is used

6. Be consistent while using UPPERCASE and

lowercase variables

7. Use naming conventions specified by your company

Page 20: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

20

Data Types• To process solutions computer must have data.

• Data are unorganized facts

• Computer Must be told the data types of each

variable and constant

DATA

Data Processed

into informatio

n

Report

Balance Sheet

Calculates the

Balance

ChecksDeposits

Bk Charges

Fig. Processing Data: How a computer Balances a Checkbook

Page 21: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

21

Data Type Data Sets Examples

Numeric:Integer

All whole numbers 3400-34

Numeric:Real

All real Numbers (Whole + Decimal)

3256.34412333.00.32323

Character :Surrounded by quotation mark

All letters, Numbers and

Special Symbols

“a”, “1”, “A”, “F”, “%”, “&”

“$”

String:Surrounded by quotation mark

Combination of more than one

character

“Rahul”“343443”

“7070-3232-232”

Logical True, False True, False

Page 22: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

22

Rules for Data Types1. The data that define the value of a variable or a constant

will be of numeric, character, logical

2. Computer then associate variable with desired data type

3. Data types can not be mixed

4. Each of the data types uses what is called a data sets

5. Any numeric item that must be used in calculations

resulting in a numeric result must be of numeric type

Page 23: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

23

Functions• Functions are small set of instructions that perform

specific task and return values• By using functions programmers can shorten the

problem solving time and improves readability• Each language has set of functions within it• Most languages allows programmers to write their

own functions• Functions can be

▫Mathematical functions▫String functions▫Conversion Functions▫Statistical functions▫Utility functions

Page 24: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

24

Operators• Operators are the data connectors within expressions

• They tell the computer how to process data

• Operators▫Mathematical + - / * % ^▫Relational < > <= >= != [<>]▫Logical && || !

• Operand and resultant are two concepts related to

operator

• The data type of Operands and resultant depends on

the operator

Page 25: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

25

Expressions and Equations• Expressions and Equations make a part of instructions in

the solution

• An Expressions processes data, operands using

operators e.g. length * breadth

• An Equation stores the resultant of an expression

e.g. area=length*breadth

• Setting up /Evaluating ▫Numeric Expression▫Mathematical equations▫Relational Expression▫Logical expression

Page 26: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

26

Programming Concepts

Page 27: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

27

Communicating with the computer

• We have to learn system of communication or Computer

language

• System of communication requires instructions governed by

specific rules.

• Syntax are the rules governing the computer operating system

• An error is called a bug

• Bug must be found and corrected, a process is called

Debugging

• Computers are exact machines but the people working with

them are not.

Page 28: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

28

Organizing the problem

• Organizational tools will help us to solve problems

on the computer

• Tools▫Problem Analysis Chart▫Structure Chart or Interactivity Chart▫IPO chart▫Algorithms▫Flowcharts

Page 29: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

29

Analyzing the Problem• First programmer has to understand and analyze the

requirements of the problem

• Good way to analyze problem is to separate it into

four parts1. The given data2. The required Results3. The processing that required in the problem4. A list of solution alternatives

• PAC allows problem solver to eliminate the words

and separate the facts from the problem

Page 30: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

30

1. Given Data 2. Required Results

3. Processing Required 4. Solution Alternatives

Fig: Problem Analysis Chart

Page 31: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

31

1. Given Data

HoursPay rate

2. Required Results

Grosspay

3. Processing Required

Grosspay=Hours*Payrate

4. Solution Alternatives

1. Define the hours worked and Payrate as constants

2. Define the hours worked and payrate as input

values

Fig: Problem Analysis Chart

Page 32: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

32

Developing the Interactivity(Structure) Chart

• Next task in organizing the solution is to divide the

processing into subtasks called modules

• Connect these modules to show interaction of

processing between modules

• Each module should contain the task to accomplish

one function

• There will be one module that controls the flow of

most of the other module[Control or Main module]

Page 33: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

Control

Module 1

Module 3

Module 2

Module 6

Module 7

Module 3

Module 4

Module 5

Interactivity Chart

Payrollcontrol

Read Calc Print

Interactivity Chart for Payroll Problem

Until No Employee

Page 34: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

Module 7Module 6

Module 2

CONTROL

Module 5 Module 4

Module 3

Module 1

Module 3

Interactivity Chart [Object Oriented Solution]

Page 35: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

35

ReadPayrollContr

olPrint

Calc

Interactivity Chart for Payroll Problem

Object Oriented Solution

Page 36: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

36

Developing the IPO chart• The input-processing-output chart extends and

organizes the information in the PAC

• IPO also shows that where in the solution processing

takes place

• Sections1. Input2. The processing3. Module Reference4. Output

Page 37: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

37

Input Processing Module reference

Output

All data input [From section 1 of PAC]

All processing in step [From Section 3 and 4]

Module reference from the interactivity chart

All output requirement [from section1 and 2 from PAC]

Input Processing Module reference

Output

Hours workedPay Rate

1. Enter Hours Worked

2. Enter Pay Rate

3. Calculate Pay4. Print Pay5. End

Read

ReadCalcPrintPayrollcontrol

Gross pay

The IPO Chart

The IPO Chart for the Payroll Problem

Page 38: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

38

e.g

1. Joe would like to build several bookcases that are

different heights and widths. All will be 12 inches in

depth. The bookcases will have 3 shelves, in addition to

the bottom and top. Write a solution to print the no. of

feet of 12 –inch-wide boards that Joe need to complete a

bookcase, given the height and width.

2. Bob would like to know what percentage of his income

his rent is. Write a solution that would calculate and

print this percentage. (Hint: Percentage=Number/Total)

Page 39: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

39

Writing the Algorithms• Next steps in organizing the solution is to develop

set of instructions for the computer called algorithm

• Pseudo code is similar to algorithms

• Programmer writes a separate instructions for each

module in the structure chart

• Hardest part of problem solving ▫The instructions cannot assume anything▫Cannot skip Steps▫Must be executable one step at a time▫Must be complete

Page 40: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

40

Drawing Flowchart• From the algorithms programmer develops the

flowcharts

• Flowcharts are the graphical representation of the

algorithms

• Flowcharts can show errors in logic not readily

visible in the other charts

• A flowchart shows the flow of the processing from

the beginning to the end of a solution

Page 41: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

41

Rules for drawing flowcharts• You should write instructions inside the blocks

• If there is something you need to remember you can

write a note besides a block

• A flowchart always start at the top of the page and

flows to the bottom

• Use flowchart template to draw the symbols and flow

lines

• Make the blocks big enough to write instructions so

they can be easily read

• Final copy of the flowchart may not be the first draft

Page 42: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

42

Testing the Solutions

• When a solution is complete it is important to

test it

• To test a solution programmers select test data,

a set of values

• A solution should never be assumed correct.

• If bug is detected, the solution has to be modified

it and then the testing process starts once again

Page 43: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

43

Coding the Program• Next step is writing the solution into a computer

language

• If programmer follows the proper steps in

developing solution there should be few logic

errors in the program

Page 44: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

44

Pointers of structuring program• Use modules

▫4 Logic structures▫Sequential structure▫Decision structure▫Loop structure▫Case structure

Page 45: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

45

Modules

• Solution breaks always in modules▫Rules for designing modules1. Each module is an entity itself with

entrance and exit2. It should not jump in between3. Only with Single function or task4. Easily readable and modified5. No. of instructions to complete the

function should be governed by functions6. Order of processing

Page 46: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

46

Types of modules

• Control module

• Initialization module

• Process module

• Calculation modules

• Print modules

• Read and data validation modules

• Wrap up modules

• Event module in OOP( mouse up/dw etc…)

Page 47: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

47

Cohesion and coupling

Module 1 Module 2

Module 3

Cohesion: independent of each other

Coupling allows to share data with some interface

Page 48: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

48

Solution development -6 steps

1. The problem analysis chart

2. The interactivity chart

3. The IPO chart

4. Coupling diagram with design of data flow

5. Algorithm writing

6. Flowchart

Page 49: UNIT- I General Problem Solving Concepts. Contents Introduction General Problem Solving Concepts ▫ Types of Problems ▫ Problem solving with computers

49

• PART I END