Computer Programming
CPro1
Chapter 2
Beginning the Problem-Solving
Process
2
Week 1 Summary
• Programs: step-by-step instructions that tell a computer
how to perform a task
• Programmers use programming languages to
communicate with the computer
▫ First programming languages were machine languages
▫ High-level languages can be used to create procedure-oriented
programs or object-oriented programs
• Algorithm: step-by-step instructions that accomplish a task
(not written in a programming language)
▫ Algorithms contain one or more of the following control
structures: sequence, selection, and repetition
3
Week 1 Summary
• 3 main elements of programming
▫ Sequence structure: process the instructions,
one after another, in the order listed
▫ Repetition structure: repeat one or more
instructions until some condition is met
▫ Selection structure: directs the computer to
make a decision, and then to select an
appropriate action based on that decision
4
Week 2 Objectives
• Explain the problem-solving process used to
create a computer program
• Analyze a problem
• Complete an Input-Process-Output (IPO)
chart (not Initial Public Offering)
• Plan an algorithm using pseudocode and
flowcharts
• Desk-check (pen and paper check) an
algorithm
5
Concept Lesson
• Problem Solving
▫ Solving Everyday Problems
• Creating Computer Solutions to Problems
▫ Analyzing the Problem
▫ Planning the Algorithm
▫ Desk-Checking the Algorithm
• The Gas Mileage Problem
• Summary
6
Problem Solving
• In this lecture, we will:
▫ Explore the thought process followed when solving
problems. All of us have a different way of solving
things, take for example a simple 8 x 9 problem.
Some of us will memorize it.
Some of use will solve it by 8 x 10 80 – 8 72
Some of use will do 8 x 5 + 8 x 4 (‘coz we can’t
remember our multiplication tables).
Some of us will go through those “songs” for
multiplication tables during our primary school days.
7
Problem Solving
• In this lecture, we will:
▫ Learn how to use a similar process to create a
computer solution to a problem
Called a computer program.
Each of us will have a different approach, so
sometimes programming is called an Art as some
believe it isn’t a science!
We start with analyzing the problem, finding a
solution and then only creating the program.
8
Solving Everyday Problems
• First step in solving a problem: analyze it
▫ E.g., problem of being hungry
• Next, you plan, review, implement,
evaluate, and modify (if necessary) the
solution
▫ E.g., if you are still hungry
9
Solving Everyday Problems
(1st attempt)
10
Solving Everyday Problems
(modification)
11
Creating Computer Solutions to
Problems
• Analysis tools: IPO charts,
pseudocode/algorithm, flowcharts
• To desk-check or hand-trace, use
pencil, paper, and sample data to walk
through algorithm
• A coded algorithm is called a program
12
Creating Computer Solutions to
Problems (continued)
13
Analyzing the Problem
• Analyze a problem to:
▫ Determine the goal of solving it
Output
▫ Determine the items needed to achieve that goal
Input
• Always search first for the output
▫ Meaning, what does the customer want, or what
are the answers to your problem. That’s the most
important part.
14
Analyzing the Problem
• Always search first for the output
(continue)
▫ From knowing what you want for the
answer, you can then determine what are
the questions you need to ask (input)
▫ And how you are going to use (process) the
input to obtain the output.
15
Analyzing the Problem
(continued)
• Consider you have the following simple requirements
about what Sarah Martin wants.
16
IPO Charts
• Use an IPO chart to organize and
summarize the results of a problem
analysis
▫ IPO: Input, Processing, and Output
17
Analyzing the Problem
(continued)
• Reduce the amount of information you
need to consider in your analysis:
18
IPO Charts (continued)
• First, the output …
19
IPO Charts (continued)
• Then the input …
20
IPO Charts Problem
Analyzing
• Then you work out the processing
required.
21
Analyzing the Problem
(continued)
• But as mentioned, most requirements are
incomplete!
• Worse than having too much information is not
having enough information to solve problem:
22
Analyzing the Problem
(continued)
• Distinguish between information that is
missing and information that is implied:
23
Planning the Algorithm
• Algorithm: set of instructions that will
transform the problem’s input into its
output
▫ Record it in the Processing column of the
IPO chart
• Processing item: intermediate value
used by algorithm when processing input
into output
24
Planning the Algorithm (Con’t)
• Pseudocode is a tool programmers use to
help them plan an algorithm
▫ Short English statements
▫ Indentation is important (as mentioned last
week).
25
Planning the Algorithm
(continued)
26
Planning the Algorithm
(continued)
• Flowcharts are also used to plan an
algorithm
▫ Use standardized symbols
▫ Symbols connected with flowlines
▫ Oval: start/stop symbol
▫ Rectangle: process symbol
Represents tasks such as calculations
▫ Parallelogram: input/output symbol
Represents I/O tasks
▫ Diamond: selection symbol
27
Planning the Algorithm
(continued)
28
Planning the Algorithm
(continued)
• A problem can have more than one
solution:
29
Hints for Writing Algorithms
This problem specification is almost identical to the one shown
earlier in Figure 2-4
30
Hints for Writing Algorithms
You may use a portion of a previous solution to solve current problem
31
Desk-Checking the Algorithm
32
Desk-Checking the Algorithm
(con’t)
33
Desk-Checking the Algorithm
(con’t)
• Valid data is data that the programmer is expecting the
user to enter
• Invalid data is data that he or she is not expecting the
user to enter
• You should (in reality, you MUST) test an algorithm with
invalid data
▫ Users may make mistakes when entering data
▫ A good programmer can foresee what type of mistakes
users make.
34
Summary
• Problem-solving typically involves analyzing the problem,
and then planning, reviewing, implementing, evaluating,
and modifying (if necessary) the solution
• Programmers use tools (IPO charts, pseudocode,
flowcharts) to help them analyze problems and develop
algorithms
▫ During analysis, you determine the output and input
▫ During planning, you write the steps that will transform
the input into the output
35
Summary (continued)
• After the analysis and planning, you desk-check
the algorithm
▫ Follow each of the steps in algorithm by hand
• Coding refers to translating the algorithm into a
language that the computer can understand
• Before writing an algorithm, consider whether
you have already solved a similar problem