CS118 – Programming
Fundamentals
Lecture # 02
Monday, September 21, 2020
FALL 2020
FAST – NUCES, Faisalabad Campus
Saqib Hayat
Algorithms and Problem
2
Solving Techniques
CS118 - FALL 2020 September 21, 2020
Basic Concepts of Problem Solving
3
Computer programming is traditionally thought of as problem-
solving process.
A computer program is a solution to a problem
Computer program: The computer program is a set of
instructions that tells the computer hardware what to do and
when to do it
There are two parts to develop computer programs, the algorithm and
the syntax
Algorithm: The programs algorithm is the development of step-
by-step, logical process that the program will follow to reach the
desired goal of the program (the solution)
Syntax : It is the rule of the programming language which
dictate proper statement structure and usage
CS118 - FALL 2020 September 21, 2020
The problem-solving process
5
There are several steps in the program development cycle
Program development cycle consists of five steps
Analyze the Problem
Plan the Solution
Code the Program
Test
Implementation/Deployment and maintain
CS118 - FALL 2020 September 21, 2020
The problem-solving process …
6
Analyze the problem
Plan the solution
Code the program
Implement and
Test
maintain
CS118 - FALL 2020 September 21, 2020
The problem-solving process
7
1. Analyze the problem : Programmer determines
What the program is supposed to do (the purpose of the program)
What data the program will use ( the programs input); what the
program is supposed to produce (the programs output); the process the
program will use to transform the data into the desired output
information
Visual tools for this stage can include
Input layout charts that represent how the input data is stored in the
records of a file or how input prompt will appear on the screen
Output layout spacing charts represent what the finished output report or
screen will look like
CS118 - FALL 2020 September 21, 2020
The problem-solving process …
8
2. Plan the solution : During the planning stage of the
programming development cycle, the programmer utilizes visual
tools such as flow charts, pseudocode and hierarchy charts to
develop the programs algorithm, or solution to the problem
A flow chart is a graphical representation step-by-step that shows the flow
of control of the program using symbolic diagrams.
Pseudocode is a visual representation of the same step-by-step logic, but
pseudocode is English–like phrases instead of symbols
Hierarchy (or structure) charts show the major operational tasks required
for the program solution. In addition, the charts demonstrate the relation
ships between each of the major sections
Once the algorithm has been documented using one or more of the visual
tools, the programmer checks the programs logic by stepping through the
algorithm with realistic test data
At this point the logic errors may be detected and corrected
CS118 - FALL 2020 September 21, 2020
The problem-solving process …
9
3. Code the program: The program (or source) code is written
in the programming language selected by the programmer
following the rules (or syntax) for that language
Once the source code is written
The program is processed by the language translator program
Any syntax errors are detected by the translator must be corrected
before the machine language (object) can be generated
When all debugging and syntax errors is complete, a run-time version
of the program can be executed
Language translator: A language translator converts human-readable
source code statements into the machine- readable object code;
depending on the language, the translator will be an assembler,
interpreter, or compiler program
CS118 - FALL 2020 September 21, 2020
The problem-solving process …
10
4. Test: Testing the program is done using sets of data designed
to produce the expected results
If the program language is faulty, the desired results will not be
produced
The programmer must then debug the source code and revise the logic
in the planning stages
This stage should require minimal effort
Debug and revise: To debug a program, the programmer finds and
corrects syntax errors in the source code
CS118 - FALL 2020 September 21, 2020
The problem-solving process …
11
5. Implementation/Deployment and maintain: The final stages
of the programming process is to put the program into
production
At this stage, all program documentation must be completed and
presented at the time the program is implemented
The documentation includes all the documents used in the planning stage
(such as input, output charts). The printed source code also becomes a
part of the documentation
In addition, user training manuals are provided as well as any other
information that the end user might require to properly run the program
Maintaining the program includes making appropriate updates to the
program as needed
For instance, if income tax rates change, an update to the tax amounts would
be required for a payroll program
CS118 - FALL 2020 September 21, 2020
12
Algorithms and Flowcharts
CS118 - FALL 2020 September 21, 2020
Algorithms
13
A concept that pervades all areas of computer science
Algorithm is a process that a computer could carry out to
complete a well defined task within finite time and resources
The objective of computer science is to solve problems by
developing, analyzing, and implementing algorithmic solutions
CS118 - FALL 2020 September 21, 2020
Al-Khwarizimi Principle
14
All complex problems can be broken into simpler sub-
problems
Solve a complex problem by breaking it down into smaller sub-
problems and then solve them (in a specified order), one at a
time
When all the steps are solved, the original problem itself has
also been solved
This process is called Algorithm
CS118 - FALL 2020 September 21, 2020
Divide and Conquer
15
Hard Problem
Easy Sub-problem Hard Sub-problem Easy Sub-problem
Easy Sub-problem Easy Sub-problem
CS118 - FALL 2020 September 21, 2020
Input-Process-Output (IPO) Charts
16
The Input-Process-Output (IPO) chart list the programs input data, processes and
outputs
IPO charts: are used to clearly define the inputs, process and outputs to be used in
program
Input: The data or information the program will use to produce the output
Process: The steps the program will follow in order to process the input into output
Output: The information produced by the program after processing the input
CS118 - FALL 2020 September 21, 2020
Flowcharts and Pseudocodes
17
Flowcharts are graphical representations of
the programs’ algorithm
Standard flowcharting symbols represent the
beginning, the end and the control structure
within the program that direct the flow chart
or the Programs logic
The symbols are connected using flow lines
that illustrate the flow of control thought the
program
Pseudocode: is an informal English-like
representation of the programs algorithm.
Pseudocode is written more like the actual
code that will be used to write the program.
CS118 - FALL 2020 September 21, 2020
Steps in Problem Solving
18
First produce a general algorithm (one can use pseudocode)
Refine the algorithm successively to get step by step detailed
algorithm that is very close to a computer language
Pseudocode is an artificial and informal language that helps
programmers develop algorithms
Pseudocode is very similar to everyday English
CS118 - FALL 2020 September 21, 2020
Algorithms & Pseudocode
19
A typical programming task can be divided into two phases
Problem Solving phase:
Produce an ordered sequence of steps that describe solution of problem
This sequence of steps is called an algorithm
Implementation phase:
Implement the program in some programming language
CS118 - FALL 2020 September 21, 2020
Sample problem
20
Compare two numbers given by the user and tell which one is
greater?
CS118 - FALL 2020 September 21, 2020
Pseudocode – Format
21
1. start
2. declare n1, n2
3. input n1,n2
4. if (n1 > n2)
4.1 print "n1 is greater"
5. else if (n2 > n1)
5.1 print "n2 is greater"
6. else
6.1 print "they are equal"
7. end
CS118 - FALL 2020 September 21, 2020
Algorithms and Pseudocode
23
Example 1: Write an algorithm to determine a student’s final
grade and indicate whether he is passing or failing. The final
grade is calculated as the average of four marks.
CS118 - FALL 2020 September 21, 2020
Algorithms and Pseudocode
24
Algorithm:
Input a set of four marks
Calculate their average by summing and dividing the sum by 4
If average is above 50
Print : “Pass”
else
Print “FAIL”
CS118 - FALL 2020 September 21, 2020
Algorithms and Pseudocode
25
Pseudocode:
Step 1: Input M1, M2, M3, M4
Step 2: Grade = (M1+ M2+ M3+ M4) / 4
Step 3: if (Grade > 50) then
Print “PASS”
else
Print “FAIL”
endif
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Decision Making
26
If-then
General form:
if (condition is met) then
statement(s)
Example:
if temperature < 0 then
wear a jacket
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Decision Making
27
If-then-else
General form:
if (condition is met) then
statement(s)
else
statements(s)
Example:
if (at work) then
Dress formally
else
Dress casually
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Repetition (3)
28
while-do
Repeat zero or more times (check condition before statement(s))
General form:
while (condition is met)
statement(s)
Example:
while students ask questions
Answer questions
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Fast Food Example
29
Use pseudo-code to specify the algorithm for a person who is
ordering food at a fast food restaurant
At the food counter, the person can either order or not order the
following items:
a burger
Fries
a drink
After placing her order the person then goes to the cashier
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Fast Food Example
30
1. Approach counter
2. if want burger then
2.1. order burger
3. if want fries then
3.1. order fries
4. if want drink then
4.1 order drink
5. Pay cashier
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: Fast Food Example (Computer)
31
1. Approach counter
2. Output ‘Do you want to order burger?’
3. Input order_burger
4. if order_burger = yes then
4.1. order_burger
5. Output ‘Do you want to order fries?’
6. Input order_fries
7. if order_fries = yes then
7.1. order_fries
8. Output 'Do you want to order drink?’
9. Input order_drink
10. If order_drink = yes then
10.1. order drink
11. Pay cashier
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: ATM Example
32
Use pseudo-code to specify the algorithm for an ATM bank
machine. The bank machine has four options:
1) Show current balance
2) Deposit money
3) Withdraw money
4) Quit
After an option has been selected, the ATM will continue
displaying the four options to the person until he selects the option
to quit the ATM
CS118 - FALL 2020 September 21, 2020
Pseudo-Code: ATM Example
33
Approach ATM If option = deposit then
Repeat Output 'Enter amount to
Output 'Select option' deposit'
Output '1) Make withdrawal' Input amount
Output '2) Make deposit' balance balance + amount
Output '3) Show balance' If option = withdrawal then
Output '4) Quit' Output 'Enter amount to withdraw'
Input option Input amount
balance balance – amount
If option = ‘Show Balance’
Output 'Balance is ' balance
Until option = quit
Stop
CS118 - FALL 2020 September 21, 2020
Questions
34
CS118 - FALL 2020 September 21, 2020