Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The...

20
Problem Solving Methods

Transcript of Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The...

Page 1: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

Problem Solving Methods

Page 2: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 2

Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering method Exercise - applying software engineering

method Flow chart symbols I

Page 3: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 3

Problem Solving Methods There is no perfect method for solving all problems. There is no problem-solving computer to which we

could simply describe a given problem and wait for it to provide the solution.

Problem solving is a creative act and cannot be completely explained.

However, we can still use certain accepted procedures to structure our thinking and help us solve problems.

Three methods of problem solving are prominent:1.Analytic Method.2.Algorithmic Method.3.Software Engineering Method.

Page 4: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 4

Problem Solving StepsEach method has four basic components:

1. Problem: the problem presents the situation that requires a solution.

2. Reasoning: this implies a true comprehension of the problem.

3. Solution: this is the process that we develop to solve the problem.

4. Testing: this is the checking process we use to confirm that the solution is correct.

Page 5: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 5

The Analytic Method Analytic problem solving has roots in mathematics,

physics, engineering, chemistry, and a host of other areas in science and technology.

Example:

ProblemThe sum of two numbers is s and their product is p. Find the 2 numbers.

ReasoningLet us call the first number x and the second one y.Therefore, x + y = s and x * y = p.From the first equation we get: y = s - x.Substituting y from the first equation into the second equation, we get: x * (s - x) = p or x2 - sx + p = 0.

Page 6: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 6

The Analytic Method (cont’d)

Solution

The solution to this problem is the solution to the quadratic equation: x2 - sx + p = 0, provided that s2 - 4p 0.

This solution is known from the field of mathematics.

Testing

To check the correctness of the above solution we calculate x + y and x * y.

Page 7: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 7

The Algorithmic Approach An algorithm could be defined to be a set of steps that defines how a

task is performed. The study of algorithms began as a subject in mathematics. The word “algorithm” is derived from the name of the Arab

mathematician, Abu Ja’far Mohammed Ibn Musa Al-Khowarizmi (c. A.D. 825), who wrote a book describing procedures for calculating.

Today, computer science has established itself as the science of algorithms.

Algorithmic ProblemAn algorithmic problem is any problem whose solution can be expressed as a list of executable instructions. By executable we mean that an independent executor (human or machine) should be able to carry out the instructions in a step–by–step manner.

Algorithms are not unique to the computational sciences. An algorithm is a recipe, a sequence of steps that leads from a starting point to a finished product.

Page 8: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 8

An Algorithm

Page 9: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 9

An Algorithm (cont’d) Examples of Algorithmic Problems:

Backing a cake. Knitting a sweater. Taking the sum of a finite list of numbers. Sorting a finite list of names. Playing Tic-Tac-Toe.

An algorithm is a sequence of executable instructions with these properties:

1. There is no ambiguity in any instruction.2. There is no ambiguity about which instruction is to be

executed next.3. The description of the algorithm is finite.4. Execution of the algorithm concludes after a finite number of

steps.

Page 10: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 10

The Algorithmic Approach (cont’d)

Non-Algorithmic ProblemsConsider the following instructions:

Step1: Make a list of the odd positive integers.Step2: Compute their sum.Step3: Compute their average.Step4: Print the average.

This is not an algorithm because it is impossible to make an infinite list of numbers, and the problem of finding the sum (or average) of all odd positive integers is not algorithmic.

Page 11: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 11

Phases of Algorithmic Problem Solving

The following loosely defined problem-solving phases were presented by the mathematician G. Poyla in the late 1940s.

Phase1:Understand the problem.

Phase2:Devise a plan for solving the problem.

Phase3:Carry out the plan.

Phase4:Evaluate the solution for accuracy and for its potential as a tool for solving other problems.

Page 12: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 12

Software Engineering Method Software engineering is the area of computer science

concerned with building large software systems. Windows 2000 is estimated to have 30 million lines of

code. The challenge is that there are tremendous advances in

hardware that have not been accompanied by comparable advances in software.

Some of the software engineering goals for software are reliability, understandability, cost effectiveness, adaptability, and reusability.

Page 13: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 13

Software Engineering Phases

Problem Analysis - (Correct Problem) Identify data objectsGoal to model propertiesDetermine Input / Output dataConstraints on the problem

Design (Pseudocode/Flow Chart)Decompose into smaller problemsTop-down design (divide and conquer)Think of algorithm

Page 14: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 14

Software Engineering Phases (cont’d)

ImplementationWriting the computer algorithm (e.g. in C++)

TestingVerify the program meets requirementsSystem and Unit test

DocumentationKey part in the development process

Page 15: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 15

Exercise - Applying Software Engineering Method

Problem

Analyse, design and implement a C++ program to output the word “Hello!”.

Analysis Input

Nothing Output

“Hello!”

Page 16: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 16

Exercise (cont’d)

OUTPUT“Hello!”

START

STOP

Design Implementation (C++)#include <iostream>using namespace std;void main ()

{

cout << "Hello!";

}

Page 17: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 17

Flow Chart’s Symbols I

Terminals Start or stop of the program

Input/Output Any input or output operation

Flow lines Indicate the sequence of operations

START STOP

INPUT OUTPUT

Page 18: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 18

Hello.cpp// FILE: Hello.cpp// DISPLAYS THE WORD “HELLO” TO THE USER

#include <iostream>using namespace std;

void main (){ cout << "Hello!";}

Page 19: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 19

Page 20: Problem Solving Methods. CSCE 1062 Outline Problem Solving Methods Problem solving steps The analytical method The algorithmic method The software engineering.

CSCE 106 20

Next lecture we will continue

C++