1
AN INTRODUCTION TO
COMPUTERS AND
PROBLEM SOLVING
07/31/21 Lecture 1
An Introduction to Computers and Problem
Solving
2
1.1 An Introduction to Computers
1.2 Program Development Cycle
1.3 Programming Tools
07/31/21
Communicating with the Computer
3
Machine language – low level, hard for humans to
understand
Visual Basic – high level, understood by humans,
consists of instructions such as Click, If, and Do
07/31/21
Compiler
4
A compiler translates a high-level language into
machine language.
The Visual Basic compiler points out certain types of
errors during the translation process.
07/31/21
Programming and Complicated Tasks
5
Tasks are broken down into instructions that can be
expressed by a programming language
A program is a sequence of instructions
Programs can be only a few instructions or millions
of lines of instructions
07/31/21
All Programs Have in Common:
6
Take data and manipulate it to produce a result
Input – Process – Output
Input – from files, the keyboard, or other input device
Output – usually to the monitor, a printer, or a file
07/31/21
Hardware and Software
7
Hardware – the physical components of the
computer
Central processing unit
Disk drive
Monitor
Software – The instructions that tell the computer
what to do
07/31/21
Programmer and User
8
Programmer – the person who solves the problem
and writes the instructions for the computer
User – any person who uses the program written by
the programmer
07/31/21
1.3 Program Development Cycle
9
Performing a Task on the Computer
Program Planning
07/31/21
Terminology
10
A computer program may also be called:
Project
Application
Solution
07/31/21
Program Development Cycle
11
Software refers to a collection of instructions for the
computer
The computer only knows how to do what the
programmer tells it to do
Therefore, the programmer has to know how to
solve problems
07/31/21
Performing a Task on the
12
Computer
Determine Output
Identify Input
Determine process necessary to turn given Input into
desired Output
07/31/21
Problem-Solving: Approach Like
13
Algebra Problem
Example: Addition
Output: a number giving the result of addition.
Input: numbers you need to add.
Process: Result = num1 + num2.
07/31/21
Pictorial representation of the Problem
14
Solving Process
07/31/21
Program Planning
15
A recipe is a good example of a plan
Ingredients and amounts are determined by
what you want to bake
Ingredients are input
The way you combine them is the processing
What is baked is the output
07/31/21
Program Planning (continued)
16
Always have a plan before trying to write a
program
The more complicated the problem, the
more complex the plan must be
Planning and testing before coding saves
time
07/31/21
Program Development Cycle
17
1. Analyze: Define the problem.
2. Design: Plan the solution to the problem.
3. Choose the interface: Select the objects (text
boxes, buttons, etc.).
07/31/21
Program Development Cycle
(continued)
18
4. Code: Translate the algorithm into a
programming language.
5. Test and debug: Locate and remove any errors in
the program.
6. Complete the documentation: Organize all the
materials that describe the program.
07/31/21
1.4 Programming Tools
19
Flowcharts
Pseudocode
Hierarchy Chart
Direction of Numbered NYC Streets Algorithm
Class Average Algorithm
07/31/21
Algorithm
20
A step-by-step series of instructions for solving a
problem (a recipe is an example of an algorithm).
07/31/21
Programming Tools
21
Three tools are used to convert algorithms into computer
programs:
Flowchart - Graphically depicts the logical steps to
carry out a task and shows how the steps relate to each
other.
Pseudocode - Uses English-like phrases with some
Visual Basic terms to outline the program.
Hierarchy chart - Shows how the different parts of a
program relate to each other.
07/31/21
Problem Solving Example
22
How fast is a car traveling
if it goes X miles in n
hours?
07/31/21
Algorithm
23
1. Request the distance and time the car has
traveled(input)
2. speed = distance / time. (processing)
3. a number giving the speed in miles per hour.
(output)
07/31/21
Flowchart
24
Graphically depicts the logical steps to carry
out a task and show how the steps relate to
each other.
07/31/21
Flowchart Symbols
25
07/31/21
Flowchart Symbols (continued)
26
07/31/21
Flowchart
27
Example
start
Distance
time
Speed=
Distance/time
Speed
End
07/31/21
Pseudocode
28
Uses English-like phrases with some Visual
Basic terms to outline the task.
07/31/21
Pseudocode Example
29
Determine the distance and time the car has traveled
(input)
Calculate speed of car by divide the distance over time
(speed = distance / time) (processing)
Display a number giving the speed in miles per
hour(output)
07/31/21
Hierarchy Chart
30
Shows how the different parts of a program relate to
each other
Hierarchy charts are also called
structure charts
HIPO (Hierarchy plus Input-Process-Output) charts
top-down charts
VTOC (Visual Table of Contents) charts
07/31/21
Divide-and-Conquer Method
31
Used in problem solving – take a large problem and
break it into smaller problems
Solve the small problems first
07/31/21
Statement Structures
32
Sequence – execute instructions from one line to
the next without skipping over any lines
Decision - if the answer to a question is “Yes” then
one group of instructions is executed. If the answer
is “No,” then another is executed
Looping – a series of instructions are executed
repeatedly
07/31/21
Sequence
33
Flow Chart
07/31/21
34 Decision Flow Chart
07/31/21
Looping
35
Flow Chart
07/31/21
Direction of Numbered NYC Streets
36
Algorithm
Problem: Given a street number of a one-way
street in New York City, decide the direction of the
street, either eastbound or westbound
Discussion: in New York City even numbered
streets are Eastbound, odd numbered streets are
Westbound
07/31/21
Flowchart
37
07/31/21
Pseudocode
38
Program: Determine the direction of a numbered
NYC street
Get street
If street is even Then
Display Eastbound
Else
Display Westbound
End If
07/31/21
Hierarchy Chart
39
07/31/21
Class Average Algorithm
40
Problem: Calculate and report the average grade for a
class
Discussion: The average grade equals the sum of all
grades divided by the number of students
Input: Student grades
Processing: Find sum of the grades; count number of
students; calculate average
Output: Average grade
07/31/21
Flowchart
41
07/31/21
Pseudocode
42
Program: Determine average grade of a class
Initialize Counter and Sum to 0
Do While there are more data
Get the next Grade
Add the Grade to the Sum
Increment the Counter
Loop
Compute Average = Sum / Counter
Display Average
07/31/21
Hierarchy Chart
43
07/31/21
Comments
44
When tracing a flowchart, begin at the start symbol
and follow the flow lines to the end symbol.
Testing an algorithm at the flowchart stage is known
as desk checking.
Flowcharts, pseudocode, and hierarchy charts are
program planning tools that are in dependent of the
language being used.
07/31/21
Tips and Tricks of Flowcharts
45
Flowcharts are time-consuming to write and difficult
to update
For this reason, professional programmers are more
likely to favor pseudocode and hierarchy charts
Because flowcharts so clearly illustrate the logical
flow of programs, they are a valuable tool in the
education of programmers
07/31/21