CSC 201 Compiled by Papy T
CSC 201 Compiled by Papy T
CSC 201 Compiled by Papy T
UNIVERSITY
ILÉ-IFÈ., NIGERIA.
FACULTY OF TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
INTRODUCTORY LECTURE NOTES
O
. DÉ.JO
. BÍ, O
. dé.túnjı́ A.
Room 109, Computer Buildings,
oodejobi@oauife.edu.ng
November, 2023
Contents
ii
Lecture Note 1
The Lectures in this aspect of the course is concerned with preliminary subject-matter
in Computer Programming. Here the instances of abstraction and formal definitions
of fundamental terminologies in computer programming are introduced. History of
modern computers and the techniques and methods underlying Computer Program De-
velopment process are also explained with examples.
1
The instruction that a computer executes is prescribed by its human programmer.
The instruction to achieve a problem-solving task is expressed using a “computer pro-
gramming language. “Computer programming language” differs from human written
language in the following aspects:
In this course, therefore, you should NEVER confuse a material agency (ma-
chine), no matter its sophistication, with biological agency (human).
Computer Programming is a process. A process has instances of state and transi-
tion. A programming language instruction is used to influence computer components
to give expression to the state and transition in the process. The sequence of Com-
puter instructions that describe a process from its “Beginning to its “End is a “program.
“Programming Language are created by mimicking “Written human language. The for-
mulation and expression of written sentences are replete in Computer Programming
language instruction. This is because “computer program instructions” are constructed
by taken recourse in the metaphor of “human written sentence construction”. The sim-
ilarities between “Computer programming language” and “Written human language”
are discussed in Section 1.8. However, there are fundamental distinctions between the
“Written human language” and “Computer programming language”. In the written hu-
man language, a NOUN is the name (label) used to identify an instance or agency. The
metaphor of NOUN used in computer programming language is an operand (string)
ascribed to a constant or variable data. In written human language, a VERB is word
ascribed to the motion (action) of an instance or agency. The metaphor of VERB in
computer programming language is the operator (e.g. Addition, Subtraction, Multi-
plication) used to manipulate data in the process of giving expression to the transition
2
in computer states. Whereas Verb and Noun are part-of-speech in the grammar of writ-
ten language, Operator and Operand are symbols in the syntax of a valid computer
instruction.
In a simple formulation:
1 EXPRESSION = ACTOR + ACTION
2 HUMAN WRITTEN LANGUAGE SENTENCE = NOUN + VERB
3 COMPUTER LANGUAGE INSTRUCTION = OPERAND + OPERATOR
Item 1 above is inherent in human sensory experience. An Action and its Actor
are inextricably intertwined and inseparable in human sensory experience. Item 2 is
located in human language expression. Action (Verb) and its Actor (Noun) are sepa-
rated and expressed individually. Item 3 is ascribed to the Manipulation (Operation) of
Operand (Data) in computer memory.
In this course, therefore, you should NEVER confuse Computer Program-
ming Language (E.g. Python, Java, Fortran), no matter its sophistication, for
Human Written Language (E.g. Yorùbá, Hausa, Igbo, English).
In order that two or more humans can communicate with each other, they must be
familiar with a language. Therefore, familiarity with a programming language, such as
Python, is required to effectively write instructions for a computer system. Familiarity
is acquired through a careful study of the instruction construction in a programming
language as well as engagement and practises with the prescribed standard and con-
vention. The more program you write in a Programming Language, the more your
familiarity and competency with its use.
DATA
PROCESS OUTPUT
INSTRUCTION
3
2. Processing data following the instruction.
3. Produce the output of the processed data according to the instruction.
A material agency (machine) or tool that has the capacity to carry out the tasks
listed above is a computer. Indeed modern computers have the capacity listed above,
but they are unlike other machines. What sets the modern computer apart from all the
machines before it is Language. Humans have created a language with which to give
instruction to modern computers. The language is created by imitating written human
languages. The language is called Computer Programming Language.
4
The Diode device era is followed by Transistor Era. During the Transistor
Era, circuits that implement basic logical operation such as AND, OR and NOT were
fabricated as a single ship. This way, the computing machine during this era consumes
less electricity. Magnetic cores and index register where incorporated into computing
machines. Example of machines in this era include: Honeywell 800, UNIVAC, IBM
7000 Series.
Transistor Era is followed by the Integrated Circuit Era. During this era, elec-
trical resistors, capacitors and transistors, are integrated as a silicon ship. The sil-
icon ships are use manufacture computing machine components. The microproces-
sor emerges during this era. The microprocessor is a device capable of automatically
carrying out arithmetic and logical operation. This makes it possible to manufacture
Calculator-on-a-chip devices. Example of machines in this era include Honeywell 6000
and the IBM 360/370 series. The disused chassis of IBM 370 machine used at the Uni-
versity of Ife. Computer Centre is depicted in Figure 1.2.
Figure 1.2: Plate of IBM 370 machine at the University of Ife. Computer Centre
From about 1975 onwards, Large Scale Integrated Circuit have emerged with
more advancement in technology. The number of electronic components and part that
5
can be integrated into a single ship has increased tremendously. The modern Nano-
technology era makes it possible to put millions of circuit into a material ship that is
about the size of human index-finger nail.
As a summary, you should note the following in respect of computer technology:
6
you cannot see human mental activity, but you could see the physical activities through
his/her action. However, human physical activities are the manifestation of human
mental activity. Hence, human mental and physical aspects work in harmony in hu-
man activities. Similarly, the hardware and software must work in harmony before the
computer can function properly.
The next section introduces you to the hardware components of the computer. The
components discussed here are necessary for understanding how the computer program
works. There are other hardware components of the computer which you do not really
need to know much about before you can write a program. For example, the computer
motherboard and power supply unit.
7
subcomponents:
This is the place where the computer stores results of ongoing operation. The memory
element are inside the processor. They are also called register. Each of the register
inside a process severs a specified purpose. An example is the Accumulator Regis-
ter, which stores the results of an ongoing arithmetic operation. Another example is
the processor Status Register, which stores the status of an ongoing operation, such
as when “an overflow” or “negative” result is generated. The Memory element can be
likened to a scratch pad that you use while solving mathematics problem: a place where
rough work is written. The content of the Memory Element or register is lost imme-
diately power is switched off from the computer. This is why the Memory Element of
register is called a Volatile Memory.
The Control Unit determines the operation of all the other hardware component of the
computer. However, the activity of the Control Unit is determined by the Computer
Software. The Control Unit (CU) will, for example, determine when the input device
must read data, when the output device must write output and when data and instruction
are transmitted between devices. The CU reads program instructions from the computer
memory and interprets (decodes) the instructions. It then uses the interpreted instruc-
tion to determine what is to be done. To achieve the tasks specified in the instructions,
the CU generates a series of control signals to the other parts of the computer hardware.
When everything seems to be working well but nothing is working, the control unit is
probably faulty.
Control units in advanced computers may change the order of some instructions
so as to improve performance.
The ALU carries out arithmetic and logical operation. It arithmetic operations include:
Addition (+) and Multiplication (×). Its logical operations are those that evaluate to
True or False. Examples includes Greater Than (>), Less than (<). Most computer in-
structions are realised through these simple operations. It turns out that by performing
these simple operations, a computer can be programmed to achieved complex tasks.
This is done by breaking the complex tasks into simple steps that are realised through
the operation of the Arithmetic and Logical Unit. Therefore, modern computers can
be programmed to perform a well-defined task; although it will take more time to do
so if its ALU does not directly support the operations in the task. An ALU may also
compare numbers and return boolean (true or false) value depending on whether one is
8
equal to, greater than or less than the other (“is 64 greater than 65?”). Logic operations
also include boolean logic: AND, OR, XOR and NOT. These can be useful both for cre-
ating complicated conditional statements processing boolean logic. Modern computers
(e.g. Superscalar machines) contain multiple ALUs so that they can process several
instructions at the same time. Graphics processors and computers with SIMD (Single
Instruction Multiple Data) and MIMD (Multiple Instruction Multiple Data) features
often provide ALUs that can perform arithmetic on vectors and matrices.
Memory elements (ME), Arithmetic and Logical Unit (ALU) and Control Unit
(CU) are together called the Central Processing Unit (CPU) of the computer.
CPU = ME + ALU + CU
The computer’s capacity to carry out small to large scale processes, its CPU must
be supported by Memory Devices.
There are two categories of memory devices: (i) Main memory and (ii) Mass
memory. These are discussed in the following subsection.
The Main memory is the memory device in which the computer stores the data and
instruction in the currently running program. The computer store temporary result of
operation in this memory. When a program is executing, its data and instructions are
store in the Main memory. The main memory is a Random Access Memory (RAM).
This implies that the computer can access data in the memory at any location of the
memory without delay and in any order. Main memory is usually smaller in size than
the Mass memory. It is also more expensive than the mass memory. A major weakness
of the Main memory is that when electric power is lost, its contents will be lost as well.
This is why it is called Volatile memory. The Main memory is also called Primary
memory or Core memory. The data and instruction that we wish to retrieve latter are
stored in the Mass memory. This is discussed as follows.
The Mass memory is the memory device in which the computer stores data and in-
struction that can be retrieved latter. When a program is NOT executing, its data and
instructions are store in the Mass memory. The mass memory is a Sequential Access
Memory (SAM). This implies that the computer can access data in the memory in the
9
sequence or order they are store in the memory. Mass memory is usually much larger in
size than the Main memory. The Mass memory is also cheaper than the Main memory.
A major strength of the Mass memory is that when electric power is lost, its contents
are retained. This is why it is called Non-Volatile memory. A major weakness of Mass
memory is that it is slower than the Main memory. The Mass memory is also called
Secondary memory or Peripheral memory. There are other memory devices, such
as the Read only Memory (ROM) and Programmable Read only Memory (PROM). In
these memory devices, specialised data and instructions are stored. For example, the
data and instruction that the computer requires for its intrinsic operations are kept in
these specialised memory devices. Examples of such specialise data and instruction
are those that the computer system use during “start-up” and “Booting”. The computer
timing data is also stored in Specialised memory devices. This class of memory are
usually of interest to “Embedded” or “Real-time” system programming.
10
Table 1.1: Computer memory metric
Ser. Name Description
Num-
ber
1. Bit A status of the computer cell. It can be Zero (0)
or One(1); 0 and 1
2. Nibble Four bits. 0 1 0 1
3. Byte Eight(8) Bits or Two (2) Nibble
4. Word This is the number of bytes that a machine can
process at one instance of its operation. This is
the data bus of the computer.
5. Kilobyte (KB) A byte is computed as 210 (1024) Bytes.
6. Megabyte One Megabyte is computed as 220 (1,048,576)
(MB) Bytes.
7. . Gigabyte A Gigabyte is a computed as 230
(GB) (1,073,741,824) Bytes.
8. Terabyte (TB) A Terabyte is computed as 240
(1,099,511,627,776) Bytes.
9. Petabyte (PB) A Petabyte is computer as 250
(1,125,899,906,842,624) Bytes.
10. Exabyte (EB) An Exabyte is computed 260
(1,152,921,504,606,846,976) Bytes.
11
A software is a set of programs that influences and controls a computer
hardware during the task of executing a process.
Computer software are of Two (2) categories:
(i) System software.
(ii) Application software
These are explained in the following Subsection.
12
1.6.2 Application software
An Application Package is a collection or suit of software intended for solving prob-
lems in a particular user environment. Each of the set of programs in an Application
software is for achieving specific user task. For example, a set of program can be writ-
ten for assisting with all the work done in the office. The work may include document
typing and processing also called word processing. Keeping a “table of inventory” also
called spreadsheet. Other program may be written for “drawing of graphics” and/or
“Architectural Design”. Some others may also be written for music compilation and
processing. An example of Application Package is Microsoft Office. This pack-
age comprises (i) MS Word (for word processing) (ii) Excel (For spreadsheet) (iii)
MS FrontPage (For graphic design) (iv) MS Publisher (For publishing works), (v) Ms
PowerPoint (For making presentation slides), etc. Another examples is OpenOffice. It
comprises similar applications like Microsoft Office. Other examples of Application
Software include:
As you are already aware, there are Application programs (Apps) on your Mobile
Phone for doing all sort of tasks from banking, to playing games, searching for lo-
cation, and so forth. These Apps cannot run except there is a System program e.g
Android, already running on the hardware of your Computer or Phone. Application
programs are written by Application programmers. Substantial parts of Application
programmers are written using High Level Programming languages such as Python,
Java, C++, Pascal, FORTRAN.
13
After applying this instruction to the data the computer produces an output. This
means that all what you want the computer to do must be reduced into data and in-
structions. While following the instruction, the computer will be manipulating the
data. If we adequately describe our instruction and accurately specify our data, then
the output that the computer generates will be what we want.
1. Operand (Data)
2. Operation (Operator)
14
1.7.1 Operand: Data
Data are the elements that the computer will manipulate during its processing operation.
Individual Data item (or datum) is labelled with a name. If the datum is a variable, it
is labelled with Variable name. If the datum is a constant, it is labelled with Constant
name. Other types of data including: Numerical, Literal or Logical are also labelled
accordingly. Operands are like the NOUN of a computer instruction because they state
the identity of the data to be manipulated.
15
Note that a letter is written by humans and the instruction or message in it will be
read by another human being.
In the same manner a computer program is written by human being (a Program-
mer) but the primary target or audience of the instructions or messages a machine (the
computer). A program:
1. A computer instruction is written in a Programming Language { e.g. Python,
FORTAN, JAVA, C++, VisualBasic, etc. }.
2. The symbols for composing an instruction are drawn from the alphabet of the
computer language.
3. There is format to which admissible instruction must conform {e.g. this is called
the Syntax or Format of instruction }.
4. A program has an opening and closing statement
5. There are sequence of instruction, functions and sub-programs between the Open-
ing and Closing statements.
6. The program conveys the writer (programmer’s) instructions to the computer (re-
ceiver).
The following subsections, and indeed, other aspects of this course will explicate
the above analogy.
To compose an effective computer program, it is important to be familiar with the
Programming Language and Programming Process. Familiarly with Programming
Language includes:
16
1. Data formatting.
2. Input and output statements.
3. Decision, Control and Conditional Statements.
4. Loops and Looping.
5. Array data structures.
6. Routings and Functions: Modular Programming (Breaking a complex program-
ming problem into smaller problems call modules).
7. File processing.
8. Object Oriented Programming
17
Table 1.2: Python Reserved or Key words
True elif try return def in raise
and else while lambda del is from
as except with nonlocal break import finally
assert finally yield None continue if
class global pass not false for
composition of names in Python, however, follow a set of rules. Some of the rules
include:
1. A variable or constant name can only be composed using the Python set of sym-
bols. This includes upper case letters {A, B, C, ..Z}, lower case letters {a, b, c,
..z} and digits {0,1,2,3,4,5,6,7,8,9}.
2. Variable or constant names are case-sensitive. What this implies is that Number,
number and NUMBER are three different names.
3. A variable or constant name CANNOT be any of the Python keywords.
4. A name should be limited to Thirty-one (31) characters in length. That is a name
should have not more than 31 characters.
5. A number should not start a name. For example example, the variable 5name is
wrong but Name5 is correct.
6. A special character (except the underscore, ), should not be used in forming a
name. For example, the variable Fn*ame is wrong but the name Fn ame is correct.
18
(iv) How to compile the digital version in (iii) into computer native language, that is
streams of 0 and 1.
(v) How to identify and remove errors and mistakes from your code.
(vi) How to document your code for future use and improvement.
Familiarly with Programming Process is briefly discussed in the following sec-
tions.
1.9 Algorithm
The origin of the term Algorithm was traced to a 9th century Arabic scholar called Abu
Ja’far Muhammed Ibn Musa Al-Khowarizm. An algorithm is a sequence of formal
instruction describing the solution to a computing problem. An algorithm describes
the solution one problem only. This implies that when an algorithm is written for a
problem it cannot be used to solve a different problem.
The following are the features of an algorithm:
1. [Terminal:] There is exactly one ENTRY (START) and one EXIT (END) points
in the algorithm. These are called the terminals of the algorithm.
2. [Finite process:] The steps in the algorithm must be finite. The number of steps
from when the input is applied and an output is generated must be totally count-
able. A step corresponds to an instruction.
3. [Effective:] The algorithm must produce the total output corresponding to the
input data.
4. [Soundness:] The algorithm must produce the same output for an input no matter
the number of times that the input is applied.
5. [Practical:] An algorithm must be executable on a computer system.
6. [Halt:] The program corresponding to an algorithm must release all computer
resources immediately after its termination.
The instruction in an algorithm and how they are structured follows a standard set
of rules. An algorithm intended for a program is design before it is reduced into codes
(set of instruction) and implemented on a computer. Algorithm designs are primarily
intended for use among programmers during the programming process. An algorithm
is, therefore, an important aspect of computer programming just as the Plan is important
in Building a house.
There are two (2) popular tools for designing an algorithm. These are: (i) Pseudo-
code and (ii) Flowchart. A pseudo-code uses instructions written out in long-hand as
19
well as mathematical expression to express an algorithm. This is done in a fashion
similar to human written language discussed above. Pseudo-code are usually not very
explicit as their interpretation often require an understanding of the rule for writing the
expression in the pseudo-code.
In the flowchart approach to algorithm design, however, geometric symbols are
used to represent instructions. Familiarity with only a few geometric symbols is re-
quired in order to design the algorithm for a complete problem. We will be using the
flowchart more often in this course. Some important flowchart symbols are shown in
Figure 1.5. We will discuss them further during our lecture.
20
1.10 Computer program development process
To develop a program for the solution a problem using the Python programming Lan-
guage, you need to follow some steps.
(i) Creating the source file. Here you type the program (from paper) into a com-
puter Text Editor.
21
(ii) Compiling the program. The program text will be applied to Python Compiler
software which will check it for Syntax error. If there are syntax errors (or
warning in your program) you will need to correct it in your source file. If no
error is found, the system will generate the object or executable file.
(iii) Repeat steps (i) and (ii) until your programe is running as desired. The out-
come of this sequence of steps, therefore, is a RUNNING PROGRAM.
Step 6: Programe Testing Run the program with the Input data you used in Step 1 to
confirm that the output you computer manually is also what the computer gener-
ates. Thereafter, select a number of example input data that you already familiar
with their outputs. If the output produce by your program is not correct, you need
to go back to the design [Step 4] of the solution. If the problem persists, then you
move to Step 3, and so forth. The outcome of this step is a PROGRAM TEST
DOCUMENT. The document contains a description of how the testing was per-
form. It states the data you used for each test and the output generated and the
programmers comments on the correctness of the output.
Understand the problem: The name of the program is FindAverage. The task of
finding the average of Five (5) numbers involves: (i) Finding the Sum by adding
the numbers together and (ii) Dividing the Sum by 5. We will assume that the
numbers are of type Real. Type Real are numbers with factional part. For example,
5 is an Integer because it has no fractional part, but 5.0 is a Real number because
it has a fractional part; even when the fractional part is zero.
The command f loat is used to convert an input into a real number in Python.
Therefore, an input data is converted to real number by applying the f loat com-
mand to it.
The command int is used to convert an input into a integer number in Python.
Therefore, an input data is converted to integer number by applying the int com-
mand to it.
If we assume that the numbers we wish to find the Average are:
• 5.0
• 8.0
• 7.0
• 9.0
22
• 24.0
We will
1. Sum the numbers, i.e. 5.0 + 8.0 + 7.0 + 9.0 + 24.0 = 53.0
53.0
2. Divide the Sum by 5, i.e. 5.0 = 10.6
Identify the input and output: The input to the problem are the five numbers: let us
label them using the variables:
N umber1, N umber2, N umber3, N umber4, N umber5
The output from the program is the average: let us label it with the variable name:
Average.
Formulate the process: The process require for computing the output from the input
are as follows:
Sum = N umber1 + N umber2 + N umber3 + N umber4 + N umber5
and
Sum
Average =
5.0
Design the solution algorithm: The solution algorithm is represented by the flowchart
in Figure 1.6.
Start
Read Number1
Read Number2
Read Number3
Read Number4
Read Number5
Average = Sum/5.0
Write Average
Stop
23
Implement the solution: To implement the design, create the source file by typing the
following program code into the Python editor.
Run the program as instructed in the CSC201 Laboratory and tutorial manual.
Test the Program: Run the program using the data used in Step 1 and see your output.
Now run the program again with at least Three (3) other set of input of your choice.
1 item = 5
2 Sum = 0.0
3
4 for n in range(item):
5 NextNumber = float(input("Enter the next number : "))
6 Sum = Sum + NextNumber
7
8 Average = Sum / item
9 print("Average of ", item, " numbers is :", Average)
The program in Table 1.3 will work only when the number of input is Five (5).
What this implies is that even if you want to find the Average of Three (3) numbers,
the program will not work. Also, the instruction to read every number is in the code.
Most often, programs are designed to be more flexible. The flowchart in Figure 1.7 is
the design for a program that can read a specified number of input data and output their
average. The Python code for the flowchart design in Figure 1.7 is in Table 1.4.
24
Start
Sum = 0.0
NextNumber = 0.0
Average =0.0
Item =0
Read NextNumber
No
Item = 5?
Yes
Average = Sum/5.0
Write Average
Stop
The Python program codes in Table 1.3 and Table 1.4 will work only when the
number of input is Five (5). What this implies is that even if you want to find the
Average of Three (3) numbers, the program will NOT work. Most often, programs
are designed to be more flexible. To improve the flexibility of the program, it will be
designed to be able to handle various number of input data.
1.12 Exercise
The Python code to find the average for any number of input data is in Table 1.5.
You are to carry our the Program development process above in respect of the
code.
25
Table 1.5: Python code for flexible Average computation
1 item = 0
2 Sum = 0.0
3
4 for n in range(item):
5 NextNumber = float(input("Enter next number : "))
6 Sum = Sum + NextNumber
7 item = item + 1
8 Average = Sum / item
9 print("Average of ", item, " numbers is :", Average)
26
CSC 201
ALGORITHMS AND FLOWCHARTS
INTRODUCTION
• The term algorithm originally referred to any computation performed
via a set of rules applied to numbers written in decimal form.
• The word is derived from the phonetic pronunciation of the last name
of Abu Ja'far Mohammed ibn Musa al-Khowarizmi, who was an Arabic
mathematician who invented a set of rules for performing the four
basic arithmetic operations (addition, subtraction, multiplication and
division) on decimal numbers.
INTRODUCTION CONTD
• An algorithm is a representation of a solution to a problem. If a
problem can be defined as a difference between a desired situation
and the current situation in which one is, then a problem solution is a
procedure, or method, for transforming the current situation to the
desired one.
• We solve many such trivial problems every day without even thinking
about it, for example making breakfast, travelling to the workplace
etc. But the solution to such problems requires little intellectual effort
and is relatively unimportant.
INTRODUCTION CONTD
• However, the solution of a more interesting problem of more
importance usually involves stating the problem in an understandable
form and communicating the solution to others.
• In the case where a computer is part of the means of solving the
problem, a procedure, explicitly stating the steps leading to the
solution, must be transmitted to the computer.
• This concept of problem solution and communication makes the
study of algorithms important to computer science
INTRODUCTION CONTD
• Throughout history, man has thought of ever more elegant ways of reducing the
amount of labour needed to do things.
• For a computer to perform a desired task, a method for carrying out some
sequence of events, resulting in accomplishing the task, must somehow be
described to the computer.
• The algorithm can be described on many levels because the algorithm is just the
procedure of steps to take and get the result. The language used to describe an
algorithm to other people will be quite different from that which is used by the
computer, however the actual algorithm will in essence be the same.
PROCEDURE
• A procedure is a finite sequence of well-defined instructions, each of which can be
mechanically carried out in a finite amount of time.
• The procedure must break up the problem solution into parts that the recipient
party can understand and execute.
• In the case of a computer, the problem solution is usually in the form of a
program that encompasses the algorithm and explains to the computer a clearly
defined procedure for achieving the solution.
• The procedure must consist of smaller steps each of which the computers
understand. There may be no ambiguities in the translation of the procedure into
the necessary action to be taken.
• A program is then just a specific realisation of an algorithm, which may be
executed on a physical device
• A computer is essentially a physical device designed to carry out a
collection of primitive actions.
• A procedure is a sequence of instructions written in terms of which
evoke a proper operation.
• To make effective use of an algorithm on a computer one must not
only find and understand a solution to the problem but also convey
the algorithm to the computer, giving the correct sequence of
understood commands that represent the same algorithm.
Algorithm
• An algorithm is a set of procedures for solving a problem. it is a finite
sequence of unambiguous instructions for solving a problem, i.e., for
obtaining a required output for any legitimate input in a finite amount of
time.
• An algorithm is procedure consisting of a finite set of unambiguous rules
(instructions) which specify a finite sequence of operations that provides
the solution to a problem, or to a specific class of problems for any
allowable set of input quantities (if there are inputs).
• In other word, an algorithm is a step-by-step procedure to solve a given
problem
• Since an algorithm is just the solution steps for a problem, it can be
represented by ordinary English expressions.
Characteristics of Algorithms
• While writing algorithms we will use following symbol for different operations:
‘+’ for Addition
‘-’ for Subtraction
‘*’ for Multiplication
‘/’ for Division and
‘ ’ for assignment. For example A X*3 means A will have a value of X*3.
Writing Algorithms Using Pseudocode
• pseudocode is like code but different. In fact, pseudocode is a description of the
program flow, written in the language you speak. When you write pseudocode, you
usually keep the sentences short and to the point.
• Pseudocode is one of the tools that can be used to write a preliminary plan that can be
developed into a computer program. Pseudocode is a generic way of describing an
algorithm without use of any specific programming language syntax. It is, as the name
suggests, pseudo code —it cannot be executed on a real computer, but it models and
resembles real programming code, and is written at roughly the same level of detail.
• Algorithm:
Step1: Read\input the Radius r of the Circle
Step2: Area = PI*r*r // calculation of area
Step3: Print Area
Problem2: Write an algorithm to read two
numbers and find their sum.
• Inputs to the algorithm:
First num1.
Second num2.
• Expected output:
Sum of the two numbers.
• Algorithm:
Step1: Start
Step2: Read\input the first num1.
Step3: Read\input the second num2.
Step4: Sum =num1+num2 // calculation of sum
Step5: Print Sum
Step6: End
Problem 3: Convert temperature Fahrenheit to
Celsius
• Inputs to the algorithm:
Temperature in Fahrenheit
• Expected output:
Temperature in Celsius
• Algorithm:
Step1: Start
Step 2: Read Temperature in Fahrenheit F
Step 3: C = 5/9*(F32)
Step 4: Print Temperature in Celsius: C
Step5: End
Writing Algorithms Using Flowcharts
• A flowchart is a graphical representation of an algorithm.
• This is not a complete list of all the possible flowcharting symbols, it is the
ones used most often in the structure of programming language
General Rules for flowcharting (1)
1. All boxes of the flowchart are connected with Arrows. (Not lines)
2. Flowchart symbols have an entry point on the top of the symbol
with no other entry points.
3. The exit point for all flowchart symbols is on the bottom except for
the Decision symbol.
4. The Decision symbol has two exit points; these can be on the sides
or the bottom and one side.
5. Generally a flowchart will flow from top to bottom. However, an
upward flow can be shown as long as it does not exceed 3 symbols.
6. Connectors are used to connect breaks in the flowchart. Examples
are:
• From one page to another page.
• From the bottom of the page to the top of the same page.
• An upward flow of more than 3 symbols
General Rules for flowcharting (2)
Flowchart to add
two(2) numbers
and display the
result
Example 2: Write an algorithm to find the sum of
two numbers.
FLOWCHART
• Pseudocode:
• Step 1 – Start
• Step 2 – Input A
• Step 3 – Input B
• Step 4 –Calculate C = A + B
• Step 5 – Output C
• Step 6 – Stop
Example 3: Write an algorithm to find the difference and the
division of two numbers and display the results.
• Pseudocode:
Step 1: Start
Step 2: Input N1
Step 3: Input N2
Step 4: D = N1 –N2
Step 5: V = N1 / N2
Step 6: Output D
Step 7: Output V
Step 8: Stop
design an algorithm for finding the average of
six numbers, and the sum of the numbers
• Start
Get the sum
Average = sum / 6
Output the average
Stop
flowchart to calculate the average of two
numbers.
input three numbers from the keyboard, ADD
and output the result.
• variables: sum, number1, number2, number3 of type integer
Accept number1, number2, number3
Sum = number1 + number2 + number3
Print sum
End program
Input numbers from the user and check whether it
is even or odd
Example 4. Design an algorithm and the corresponding flowchart for adding the test
scores as given below:
26, 49, 98, 87, 62, 75
• a) Algorithm
1. Start
2. Sum = 0
3. Get the first testscore
4. Add first testscore to sum
5. Get the second testscore
6. Add to sum
7. Get the third testscore
8. Add to sum
9. Get the Forth testscore
10. Add to sum
11. Get the fifth testscore
12. Add to sum
13. Get the sixth testscore
14. Add to sum
15. Output the sum
16. Stop
Calculate Profit and Loss
compute the volume of a sphere. Use the formula:
V = (4/3) *pi*r3 where pi is equal to 3.1416
approximately.
converts the input Celsius degree into its
equivalent Fahrenheit degree. Use the formula:
F = (9/5) *C+32.
converts the input dollar to its peso exchange rate
equivalent. Assume that the present exchange
rate is 51.50 pesos against the dollar. Then display
the peso equivalent
converts an input inch(es) into its equivalent
centimeters. Take note that one inch is equivalent
to 2.54cms.
exchanges the value of two variables: x and y. The
output must be: the value of variable y will
become the value of variable x, and vice versa.
to find the circumference of a circle. Use the
formula: C=2πr, where π is approximately
equivalent 3.1416.
takes as input the purchase price of an item (P), its expected
number of years of service (Y) and its expected salvage value
(S). Then outputs the yearly depreciation for the item (D). Use
the formula: D = (P – S) Y.
Swapping of 2 variables without using
rd
temporary (or 3 variable).
Determine the most economical quantity to be stocked for each product that a
manufacturing company has in its inventory: This quantity, called economic order
quantity (EOQ) is calculated as follows: EOQ=2rs/1 where: R= total yearly production
requirement S=set up cost per order I=inventory carrying cost per unit.
Write a program to compute the radius of a circle.
Derive your formula from the given equation:
A=πr², then display the output.
Find Perimeter Of Circle using Radius( pi =
3,14)
Solve Quadratic Equation
CSC 201
ALGORITHMS AND FLOWCHARTS
INTRODUCTION
• The term algorithm originally referred to any computation performed
via a set of rules applied to numbers written in decimal form.
• The word is derived from the phonetic pronunciation of the last name
of Abu Ja'far Mohammed ibn Musa al-Khowarizmi, who was an Arabic
mathematician who invented a set of rules for performing the four
basic arithmetic operations (addition, subtraction, multiplication and
division) on decimal numbers.
INTRODUCTION CONTD
• An algorithm is a representation of a solution to a problem. If a
problem can be defined as a difference between a desired situation
and the current situation in which one is, then a problem solution is a
procedure, or method, for transforming the current situation to the
desired one.
• We solve many such trivial problems every day without even thinking
about it, for example making breakfast, travelling to the workplace
etc. But the solution to such problems requires little intellectual effort
and is relatively unimportant.
INTRODUCTION CONTD
• However, the solution of a more interesting problem of more
importance usually involves stating the problem in an understandable
form and communicating the solution to others.
• In the case where a computer is part of the means of solving the
problem, a procedure, explicitly stating the steps leading to the
solution, must be transmitted to the computer.
• This concept of problem solution and communication makes the
study of algorithms important to computer science
INTRODUCTION CONTD
• Throughout history, man has thought of ever more elegant ways of reducing the
amount of labour needed to do things.
• For a computer to perform a desired task, a method for carrying out some
sequence of events, resulting in accomplishing the task, must somehow be
described to the computer.
• The algorithm can be described on many levels because the algorithm is just the
procedure of steps to take and get the result. The language used to describe an
algorithm to other people will be quite different from that which is used by the
computer, however the actual algorithm will in essence be the same.
PROCEDURE
• A procedure is a finite sequence of well-defined instructions, each of which can be
mechanically carried out in a finite amount of time.
• The procedure must break up the problem solution into parts that the recipient
party can understand and execute.
• In the case of a computer, the problem solution is usually in the form of a
program that encompasses the algorithm and explains to the computer a clearly
defined procedure for achieving the solution.
• The procedure must consist of smaller steps each of which the computers
understand. There may be no ambiguities in the translation of the procedure into
the necessary action to be taken.
• A program is then just a specific realisation of an algorithm, which may be
executed on a physical device
• A computer is essentially a physical device designed to carry out a
collection of primitive actions.
• A procedure is a sequence of instructions written in terms of which
evoke a proper operation.
• To make effective use of an algorithm on a computer one must not
only find and understand a solution to the problem but also convey
the algorithm to the computer, giving the correct sequence of
understood commands that represent the same algorithm.
Algorithm
• An algorithm is a set of procedures for solving a problem. it is a finite
sequence of unambiguous instructions for solving a problem, i.e., for
obtaining a required output for any legitimate input in a finite amount of
time.
• An algorithm is procedure consisting of a finite set of unambiguous rules
(instructions) which specify a finite sequence of operations that provides
the solution to a problem, or to a specific class of problems for any
allowable set of input quantities (if there are inputs).
• In other word, an algorithm is a step-by-step procedure to solve a given
problem
• Since an algorithm is just the solution steps for a problem, it can be
represented by ordinary English expressions.
Characteristics of Algorithms
• While writing algorithms we will use following symbol for different operations:
‘+’ for Addition
‘-’ for Subtraction
‘*’ for Multiplication
‘/’ for Division and
‘ ’ for assignment. For example A X*3 means A will have a value of X*3.
Writing Algorithms Using Pseudocode
• pseudocode is like code but different. In fact, pseudocode is a description of the
program flow, written in the language you speak. When you write pseudocode, you
usually keep the sentences short and to the point.
• Pseudocode is one of the tools that can be used to write a preliminary plan that can be
developed into a computer program. Pseudocode is a generic way of describing an
algorithm without use of any specific programming language syntax. It is, as the name
suggests, pseudo code —it cannot be executed on a real computer, but it models and
resembles real programming code, and is written at roughly the same level of detail.
• Algorithm:
Step1: Read\input the Radius r of the Circle
Step2: Area = PI*r*r // calculation of area
Step3: Print Area
Problem2: Write an algorithm to read two
numbers and find their sum.
• Inputs to the algorithm:
First num1.
Second num2.
• Expected output:
Sum of the two numbers.
• Algorithm:
Step1: Start
Step2: Read\input the first num1.
Step3: Read\input the second num2.
Step4: Sum =num1+num2 // calculation of sum
Step5: Print Sum
Step6: End
Problem 3: Convert temperature Fahrenheit to
Celsius
• Inputs to the algorithm:
Temperature in Fahrenheit
• Expected output:
Temperature in Celsius
• Algorithm:
Step1: Start
Step 2: Read Temperature in Fahrenheit F
Step 3: C = 5/9*(F32)
Step 4: Print Temperature in Celsius: C
Step5: End
Writing Algorithms Using Flowcharts
• A flowchart is a graphical representation of an algorithm.
• This is not a complete list of all the possible flowcharting symbols, it is the
ones used most often in the structure of programming language
General Rules for flowcharting (1)
1. All boxes of the flowchart are connected with Arrows. (Not lines)
2. Flowchart symbols have an entry point on the top of the symbol
with no other entry points.
3. The exit point for all flowchart symbols is on the bottom except for
the Decision symbol.
4. The Decision symbol has two exit points; these can be on the sides
or the bottom and one side.
5. Generally a flowchart will flow from top to bottom. However, an
upward flow can be shown as long as it does not exceed 3 symbols.
6. Connectors are used to connect breaks in the flowchart. Examples
are:
• From one page to another page.
• From the bottom of the page to the top of the same page.
• An upward flow of more than 3 symbols
General Rules for flowcharting (2)
Flowchart to add
two(2) numbers
and display the
result
Example 2: Write an algorithm to find the sum of
two numbers.
FLOWCHART
• Pseudocode:
• Step 1 – Start
• Step 2 – Input A
• Step 3 – Input B
• Step 4 –Calculate C = A + B
• Step 5 – Output C
• Step 6 – Stop
Example 3: Write an algorithm to find the difference and the
division of two numbers and display the results.
• Pseudocode:
Step 1: Start
Step 2: Input N1
Step 3: Input N2
Step 4: D = N1 –N2
Step 5: V = N1 / N2
Step 6: Output D
Step 7: Output V
Step 8: Stop
design an algorithm for finding the average of
six numbers, and the sum of the numbers
• Start
Get the sum
Average = sum / 6
Output the average
Stop
flowchart to calculate the average of two
numbers.
input three numbers from the keyboard, ADD
and output the result.
• variables: sum, number1, number2, number3 of type integer
Accept number1, number2, number3
Sum = number1 + number2 + number3
Print sum
End program
Input numbers from the user and check whether it
is even or odd
Example 4. Design an algorithm and the corresponding flowchart for adding the test
scores as given below:
26, 49, 98, 87, 62, 75
• a) Algorithm
1. Start
2. Sum = 0
3. Get the first testscore
4. Add first testscore to sum
5. Get the second testscore
6. Add to sum
7. Get the third testscore
8. Add to sum
9. Get the Forth testscore
10. Add to sum
11. Get the fifth testscore
12. Add to sum
13. Get the sixth testscore
14. Add to sum
15. Output the sum
16. Stop
Calculate Profit and Loss
compute the volume of a sphere. Use the formula:
V = (4/3) *pi*r3 where pi is equal to 3.1416
approximately.
converts the input Celsius degree into its
equivalent Fahrenheit degree. Use the formula:
F = (9/5) *C+32.
converts the input dollar to its peso exchange rate
equivalent. Assume that the present exchange
rate is 51.50 pesos against the dollar. Then display
the peso equivalent
converts an input inch(es) into its equivalent
centimeters. Take note that one inch is equivalent
to 2.54cms.
exchanges the value of two variables: x and y. The
output must be: the value of variable y will
become the value of variable x, and vice versa.
to find the circumference of a circle. Use the
formula: C=2πr, where π is approximately
equivalent 3.1416.
takes as input the purchase price of an item (P), its expected
number of years of service (Y) and its expected salvage value
(S). Then outputs the yearly depreciation for the item (D). Use
the formula: D = (P – S) Y.
Swapping of 2 variables without using
rd
temporary (or 3 variable).
Determine the most economical quantity to be stocked for each product that a
manufacturing company has in its inventory: This quantity, called economic order
quantity (EOQ) is calculated as follows: EOQ=2rs/1 where: R= total yearly production
requirement S=set up cost per order I=inventory carrying cost per unit.
Write a program to compute the radius of a circle.
Derive your formula from the given equation:
A=πr², then display the output.
Find Perimeter Of Circle using Radius( pi =
3,14)
Solve Quadratic Equation
Introduction to Programming with Python
1
Introduction to Python
• Python is a high-level programming language
• Open source and community driven
• “Batteries Included”
• a standard distribution includes many modules
• Dynamic typed
• Source can be compiled or run just-in-time
• Similar to perl, tcl, ruby
Features of Python
Python is a high-level, interpreted, interactive and object oriented-
scripting language. Python was designed to be highly readable which
uses English keywords frequently where as other languages use
punctuation and it has fewer syntactical constructions than other
languages.
• Python is Interpreted: This means that it is processed at runtime by the
interpreter and you do not need to compile your program before
executing it. This is similar to PERL and PHP.
• Python is Interactive: This means that you can actually sit at a Python
prompt and interact with the interpreter directly to write your programs.
• Python is Object-Oriented: This means that Python supports Object-
Oriented style or technique of programming that encapsulates code within
objects.
• Python is Beginner's Language: Python is a great language for the
beginner programmers and supports the development of a wide range of
applications, from simple text processing to WWW browsers to games.
• Python's feature highlights include:
• Easy-to-learn: Python has relatively few keywords, simple structure, and a clearly defined syntax.
This allows the student to pick up the language in a relatively short period of time.
• Easy-to-read: Python code is much more clearly defined and visible to the eyes.
• Easy-to-maintain: Python's success is that its source code is fairly easy-to-maintain.
• A broad standard library: One of Python's greatest strengths is the bulk of the library is very
portable and cross-platform compatible on UNIX, Windows, and Macintosh.
• Interactive Mode: Support for an interactive mode in which you can enter results from a
terminal right to the language, allowing interactive testing and debugging of snippets of code.
• Portable: Python can run on a wide variety of hardware platforms and has the same interface on
all platforms.
• Extendable: You can add low-level modules to the Python interpreter. These modules enable
programmers to add to or customize their tools to be more efficient.
• Databases: Python provides interfaces to all major commercial databases.
• GUI Programming: Python supports GUI applications that can be created and ported to many
system calls, libraries, and windows systems, such as Windows MFC, Macintosh, and the X
Window system of Unix.
• Scalable: Python provides a better structure and support for large programs than shell scripting.
Apart from the above mentioned features, Python has a big list of good features, few
are listed below:
• Support for functional and structured programming methods as well as OOP.
• It can be used as a scripting language or can be compiled to byte-code for building
large applications.
• Very high-level dynamic data types and supports dynamic type checking.
• Supports automatic garbage collection.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
By the way, the language is named after the BBC show “Monty Python’s Flying Circus”
and has nothing to do with nasty reptiles. Making references to Monty Python skits in
documentation is not only allowed, it is encouraged!
Python 3 is available for Windows, Mac OS and most of the flavors of Linux operating
system. Even though Python 2 is available for many other OSs, Python 3 support either
has not been made available for them or has been dropped.
Assignment 1:
• DOWNLOAD PYTHON INTERPRETER
• Installing Python Programming Language
Getting Python on Windows platform:
Binaries of latest version of Python 3 are available on Python Official Website.
For versions 3.0 to 3.4.x, Windows XP is acceptable. In order to install Python 3.5 to 3.8- minimum OS
requirements are Windows 7 with SP1. Python 3.9+ cannot be used on Windows 7 or earlier.
Python 3.11 is the newest major release of the Python programming language:
The most up-to-date and current source code, binaries, documentation, news, etc., is available on the
official website of Python. You can download Python documentation from the site. The documentationis
available in HTML, PDF and PostScript formats.
Python Official Website: http://www.python.org/Python Official Website: http://www.python.org/
• You can create and run python codes on your mobile devices. There are so many python 3 interpreter
and IDE available on Google and IOS play store. For example, Pydroid 3 on Android phone.
• -Understand the following:
i. Local Environment Setup
ii. Running Python
First Python Program
•Interactive Mode Programming
Invoking the interpreter without passing a script file as a parameter brings up the
following prompt-
Type the following text at the Python prompt and press Enter-
Program Elements
• Identifiers:
• Variables:
• Reserved words
8
Python Identifiers
• A Python identifier is a name used to identify a variable,
function, class, module or other object. An identifier starts
with a letter A to Z or a to z or an underscore ( _ )
followed by zero or more letters, underscores and digits (0
to 9).
• Must begin with letter or underscore, followed by any number
of letters, digits, underscores
9
Rules for writing identifiers
• Identifiers can be a combination of letters in lowercase (a to z) or uppercase
(A to Z) or digits (0 to 9) or an underscore _.
Valid examples: Names like myClass, var_1 and print_this_to_screen,
11
Case-sensitivity
• Python is a case-sensitive language. This means,
Variable and variable are not the same.
• Thus, Manpower and manpower are two different
identifiers in Python.
12
Variables
• Variables:
– Do not need to be declared
– A variable is created when a value is assigned to it:
Examples: num = 3
– Can’t be used in an expression unless it has a value
– Error message: Name Error – means no value is
associated with this name
13
Variables
• In many programming languages, variables
are statically typed. That means a variable is >>> var = 23.5
initially declared to have a specific data type, >>> print(var)
and any value assigned to it during its 23.5
lifetime must always have that type.
>>> var = "Now I'm a string"
>>> print(var)
• Variables in Python are not subject to this Now I'm a string
restriction. In Python, a variable may be
assigned a value of one type and then later
re-assigned a value of a different type:
• Variable names don’t have static types – values (or objects) do
A variable name has the type of the value it currently references
14
Variables contain references to data values
Variables actually contain
A 3.5
references to values (similar A=A*2 A 3.5
to pointers). A = “cat”
This makes it possible to 7.0
assign different object types
to the same variable
“cat”
• Python handles memory management automatically. It will create new objects and store
them in memory; it will also execute garbage collection algorithms to reclaim any
inaccessible memory locations.
• Python does not implement reference semantics for simple variables; if A = 10 and B =
A, A = A + 1 does not change the value of B
15
Reserved Words
The following list shows the Python keywords. These are reserved
words and you cannot use them as constants or variables or any
other identifier names. All the Python keywords contain lowercase
letters only.
16
Reserved words
17
Lines and Indentation
• Python does not use braces ({}) to indicate blocks of code for class and
function definitions or flow control. Blocks of code are denoted by line
indentation, which is rigidly enforced.
• The number of spaces in the indentation is variable, but all statements within
the block must be indented the same amount. For example-
Thus, in Python all the continuous lines indented with the same number of spaces would 18
form a block.
Multi-Line Statements
• Statements in Python typically end with a new line.
Python, however, allows the use of the line continuation
character (\) to denote that the line should continue. For
example
19
Quotation in Python
• Python accepts single ('), double (") and triple (''' or """)
quotes to denote string literals, as long as the same type
of quote starts and ends the string.
• The triple quotes are used to span the string across
multiple lines. For example, all the following are legal
20
Comments in Python
• A hash sign (#) that is not inside a string literal is the
beginning of a comment. All characters after the #, up to
the end of the physical line, are part of the comment and
the
• Python interpreter ignores them.
21
• You can type a comment on the same line after a
statement or expression
22
Using Blank Lines
23
Interesting Features
• White space does indicate meaning
– Instead of curly brackets or begin-end pairs,
whitespace is used for block delimiters.
– Indent statements in a block, un-indent at end of
block.
• Statements are terminated by <Enter>
• No variable declarations
• Dynamic typing
24
Python Basics
DR. B.O. AKINYEMI
Interactive Input statements
• The input function is a simple way for your program to get information from
people using your program. The basic structure is:
variable = input(“string”)
variable name = input(message to user)
• Here is an example:
>>>name = input('Enter your name: ')
2
Input statements- numeric data
• To get numeric data use a cast :
>>> number = int(input("enter an integer: "))
enter an integer: 87
>>> number
87
• If types don’t match (e.g., if you type 4.5 and try to cast it as an integer) you
will get an error:
• Multiple inputs:
>>> x, y = int(input("enter an integer: ")),
float(input("enter a float: "))
enter an integer: 3
enter a float: 4.5
>>> print("x is", x, " y is ", y)
x is 3 y is 4.5 3
Input statements- eval() function
• Instead of the cast you can use the eval( ) function and Python
choose the correct types:
>>> x, y = eval(input("Enter two numbers: "))
Enter two numbers: 3.7, 98
>>> x, y
(3.7, 98)
4
Output Statements
• Statement syntax: (EBNF notation)
print ({expression,})
where the final comma in the list is optional
• Examples:
>>>print() # prints a blank line
>>>print(3, y, z + 10) # go to new line
>>>print('result: ', z, end=" ")# no newline
• Output items are automatically separated by a single space.
>>>name = input('Enter your name: ')
>>>print('Hello, ', name)
5
Exercise 1
6
Assignment Statements
• It calculates the value of the expression to the right of the equal sign and assigns
that value to the variable named on the left of the equal sign.
• Syntax: variable = expression
• Example
D= 2 * A*B, Test= 4 >= 8
• A variable’s type is determined by the type of the value assigned to it.
• Multiple assignment →var{, var} = expr{, expr)
>>> x, y = 4, 7
>>> x
4
>>> y
7
7
Expression, Operators and Operands
Expression can be any valid combination of constants, variables, parentheses and arithmetic and
logical operators. Tables 1.1 and 1.2 respectively described arithmetic and relational operators.
+ Addition == Equal to (
9
Expressions
• An expression calculates a value
• Arithmetic operators: +, -, *, /, ** (exponentiation)
• Add, subtract, multiply, divide work just as they do in
other C-style languages (BEDMAS)
• OR---A common mnemonic to remember this rule is
PEMDAS, or Please Excuse My Dear Aunt Sally.
• Spaces in an expression are not significant
• Parentheses override normal precedence
10
Expressions
• Mixed type (integer and float) expressions are converted to
floats:
>>> 4 * 2.0 /6
1.3333333333333333
• For this program we need to get two numbers from the user. There are ways to
do that in one line, but for now we’ll keep things simple. We get the numbers one
at a time and give each number its own name.
• The only other thing to note is the parentheses in the average calculation. This is
because of the order of operations. All multiplications and divisions are
performed before any additions and subtractions, so we have to use parentheses
to get Python to do the addition first.
15
Points to Understand the Code
• Case: Case matters. To Python, print, Print, and PRINT are all different things.
For now, stick with lowercase as most Python statements are in lowercase.
• Spaces: Spaces matter at the beginning of lines, but not elsewhere. (Indentation
matters to meaning the code). For example, the code below will not work.
temp = eval(input('Enter a temperature in Celsius: '))
print('In Fahrenheit, that is', 9/5*temp+32)
– Block structure indicated by indentation
• The first assignment to a variable creates it
– Dynamic typing: no declarations, names don’t have types, objects do
• Assignment uses = and comparison uses ==
• For numbers + - * / % are as expected.
– Use of + for string concatenation.
– Use of % for string formatting (like printf in C)
CSC 201
CONTROL STRUCTURES OR LOGICAL STRUCTURES
CONTROL STRUCTURES OR LOGICAL STRUCTURES
• Control Structures are just a way to specify flow of control in programs. Any algorithm or program can be
more clear and understood if they use self-contained modules called as logic or control structures. It basically
analyzes and chooses in which direction a program flows based on certain parameters or conditions. There
are three basic types of logic, or flow of control, known as:
• The key to better algorithm design and thus to programming lies in limiting the controlstructure to only three
constructs.
• The sequence/sequential structure
• Decision Structure or Selection Structure/conditional structure
• Repetition or Iteration/looping Structure
Start
Get the sum
Average = sum / 6
Output the average
Stop
= is equal to
> is greater than
< is less than
>= is greater than or equal
<= is less than or equal
<> is not equal to
Compound Logical Operators
• There are many occasions when we need to extend the conditions that are
to be tested. Often there are conditions to be linked.
• In everyday language we say things like If I had the time and the money I
would go on holiday. The and means that both conditions must be true
before we take an action.
• We might also say I am happy to go to the theatre or the cinema. The
logical link this time is or .
• Conditions in if statements are linked in the same way. Conditions linked
with and only result in an action when all conditions are true. For example,
if a >b and a > c then display “a is the largest”.
• Conditions linked with an or lead to an action when either or both are true.
Selection Example:
• The following shows how the selection control structure is used in a program
where a user chooses the options for multiplying the numbers or adding them or subtracting.
• Example : A program segment repeatedly asks for entry of a number in the range 1
to 100 until a valid number is entered.
REPEAT
DISPLAY “Enter a number between 1 and 100”
ACCEPT number
UNTIL number < 1 OR number > 100
Example 2. A survey has been carried out to discover the most popular sport. The
results will be typed into the computer for analysis. Write a program to accomplish this.
• REPEAT
DISPLAY “Type in the letter chosen or Q to finish”
DISPLAY “A: Athletics”
DISPLAY “S: Swimming”
DISPLAY “F: Football”
DISPLAY “B: Badminton”
DISPLAY “Enter data”
ACCEPT letter
If letter = ‘A’ then
Athletics = athletics + 1
If letter = ‘S’ then
Swimming = Swimming + 1
If letter = ‘F’ then
Football = Football + 1
If letter = ‘B’ then
Badminton = Badminton + 1
UNTIL letter = ‘Q’
DISPLAY “Athletics scored”, athletics, “votes”
DISPLAY “Swimming scored”, swimming, “votes”
DISPLAY “Football scored”, football, “votes”
DISPLAY “Badminton scored”, Badminton, “votes”
The WHILE loop
•
The second type of iteration we will look at is the while iteration. This type of
conditional loop tests for terminating condition at the beginning of the loop. In
this case no action is performed at all if the first test causes the terminating
condition to evaluate as false.
The syntax is:
•
WHILE (a condition is true)
A statement or block of statements
ENDWHILE
• Example 11: A program segment to print out each character typed at a keyboard
until the character ‘q’ is entered.
Start
Get the sum
Average = sum / 6
Output the average
Stop
= is equal to
> is greater than
< is less than
>= is greater than or equal
<= is less than or equal
<> is not equal to
Compound Logical Operators
• There are many occasions when we need to extend the conditions that are
to be tested. Often there are conditions to be linked.
• In everyday language we say things like If I had the time and the money I
would go on holiday. The and means that both conditions must be true
before we take an action.
• We might also say I am happy to go to the theatre or the cinema. The
logical link this time is or .
• Conditions in if statements are linked in the same way. Conditions linked
with and only result in an action when all conditions are true. For example,
if a >b and a > c then display “a is the largest”.
• Conditions linked with an or lead to an action when either or both are true.
Selection Example:
• The following shows how the selection control structure is used in a program
where a user chooses the options for multiplying the numbers or adding them or subtracting.
• Example : A program segment repeatedly asks for entry of a number in the range 1
to 100 until a valid number is entered.
REPEAT
DISPLAY “Enter a number between 1 and 100”
ACCEPT number
UNTIL number < 1 OR number > 100
Example 2. A survey has been carried out to discover the most popular sport. The
results will be typed into the computer for analysis. Write a program to accomplish this.
• REPEAT
DISPLAY “Type in the letter chosen or Q to finish”
DISPLAY “A: Athletics”
DISPLAY “S: Swimming”
DISPLAY “F: Football”
DISPLAY “B: Badminton”
DISPLAY “Enter data”
ACCEPT letter
If letter = ‘A’ then
Athletics = athletics + 1
If letter = ‘S’ then
Swimming = Swimming + 1
If letter = ‘F’ then
Football = Football + 1
If letter = ‘B’ then
Badminton = Badminton + 1
UNTIL letter = ‘Q’
DISPLAY “Athletics scored”, athletics, “votes”
DISPLAY “Swimming scored”, swimming, “votes”
DISPLAY “Football scored”, football, “votes”
DISPLAY “Badminton scored”, Badminton, “votes”
The WHILE loop
•
The second type of iteration we will look at is the while iteration. This type of
conditional loop tests for terminating condition at the beginning of the loop. In
this case no action is performed at all if the first test causes the terminating
condition to evaluate as false.
The syntax is:
•
WHILE (a condition is true)
A statement or block of statements
ENDWHILE
• Example 11: A program segment to print out each character typed at a keyboard
until the character ‘q’ is entered.
int() float()
3
Data Types
>>> type(15) >>> 1j * 1j
<class 'int'> (-1+0j)
>>> type (3.) >>> s = 3 + 1j
<class 'float'> >>> type(s)
>>> x = 34.8 <class 'complex'>
>>> type(x) >>> x = "learning”
<class 'float'> >>> type(x)
<class 'str'>
4
Numeric Data Type in Python
•Integer – In Python 3, there is no upper bound on
the integer number which means we can have the
value as large as our system memory allows.
# Integer number
num = 100
print(num)
print("Data Type of variable num is", type(num))
• Output:
100
Data Type of variable num is, <class ‘int’>
Data Types in Python
• Python Numbers
• Python List
• Python Tuple
• Python Strings
• Python Set
• Python Dictionary
6
Basic Datatypes
Integers (default for numbers)
z = 5 / 2 # Answer 2, integer division
Floats
x = 3.456
Strings
• Can use ”…" or ’…’ to specify, "foo" == 'foo’
• Unmatched can occur within the string
“John’s” or ‘John said “foo!”.’
• Use triple double-quotes for multi-line strings or
strings than contain both ‘ and “ inside of them:
“““a‘b“c”””
• Long – Long data type is deprecated in Python 3 because there is no need for it, since the
integer has no upper limit, there is no point in having a data type that allows larger upper
limit than integers.
• Float – Values with decimal points are the float values, there is no need to specify the data
type in Python. It is automatically inferred based on the value we are assigning to a
variable. For example here fnum is a float data type.
# float number
fnum = 34.45
print(fnum)
print("Data Type of variable fnum is", type(fnum))
Complex Number
•Numbers with real and imaginary parts are known as
complex numbers.
# complex number
cnum = 3 + 4j
print(cnum)
print("Data Type of variable cnum is", type(cnum))
•Output:
Binary, Octal and Hexadecimal numbers
• In Python we can print decimal equivalent of binary, octal and hexadecimal
numbers using the prefixes.
• 0b(zero + ‘b’) and 0B(zero + ‘B’) – Binary Number
• 0o(zero + ‘o’) and 0O(zero + ‘O’) – Octal Number
• 0x(zero + ‘x’) and 0X(zero + ‘X’) – Hexadecimal Number
# integer equivalent of binary number 101
num = 0b101
print(num)
# tuple of strings
t2 = ("hi", "hello", "bye")
# loop through tuple elements
for s in t2:
print (s)
# list of strings
lis2 = ("Apple", "Orange", "Banana")
# loop through tuple elements
for x in lis2:
print (x)
•Output:
Hello World
Getting Input from User in Python
•input() function is used in Python to get user input.
•Output:
Enter any string: AKINYEMI
AKINYEMI
Get Integer Input from user
# Python Program - Get Integer Input from User
num = int(input("Enter an Integer: "))
print(num)
•Output:
Enter an Integer : 10
10
Get Float Input from user
# Python Program - Get Float Input from User
num = float(input("Enter a float value: "))
print(num)
•Output:
Enter a float value: 25.5
25.5
Python Program to Add Two Numbers
•hardcoded values in the source code:
# two float values
val1 = 100.99
val2 = 76.15
# Adding the two given numbers
sum = float(val1) + float(val2)
# Displaying the addition result
print("The sum of given numbers is: ", sum)
• Output:
The sum of given numbers is: 177.14
• Adding the numbers entered by User
# Getting the values of two numbers from user
val1 = float(input("Enter first number: "))
val2 = float(input("Enter second number: "))
# Adding the numbers
sum = val1 + val2
# Displaying the result
print("The sum of input numbers is: ", sum)
Output:
Enter first number: 10
Enter second number: 35.2
The sum of input numbers is: 45.2
Using built-in functions
• Note: The reason we used the float() function over the input()
function is because the input() function receives the value as
String, so to convert it into a float number we must use the
float() function
• If integer numbers:
val1 = int (input("Enter first number: "))
The int() function converts the given string into an integer number
• If Binary
val1 = bin (input("Enter first number: "))
The bin() function converts the given string into a binary number
Program for adding two binary numbers
# decimal value 1
num1 = '00001'
# decimal value 17
num2 = '10001'
# sum - decimal value 18
# binary value 10010
sum = bin(int(num1,2) + int(num2,2))
print(sum)
• Conversion of the string(which is a binary value) into an integer number so
we are passing the base value as 2 (binary numbers have base 2, decimals
have base value 10).
• Once the strings are converted into an integer values then we are adding
them and the result is converted back to binary number using the bin()
Python Program for simple interest
•Simple interest formula is given by:
Simple Interest = (P x T x R)/100
Where,
P is the principle amount
T is the time and
R is the rate
# Python program to find simple interest
SI = (P * R * T) / 100
# Print the resultant value of SI
print("simple interest is", SI)
Python Program for Program to find area of a circle
•Area of a circle can simply be evaluated
using following formula.
Area = pi * r2
where r is radius of circle
# Python program to find Area of a circle
PI = 3.142
Area= PI * (r*r)
print("Area is”, Area));
Python Program for compound interest
• Formula to calculate compound interest annually is given by:
# calculating power
y A number, the exponent
import math
z Optional. A number, the modulus
print(math.pow(2, 3))
Output:
8.0
Python Math Trigonometric Functions
• All the trigonometric functions are available in python math
module, so you can easily calculate them using sin(), cos(),
tan(), acos(), asin(), atan() etc functions.
• Also ,you can convert angles from degree to radian and radian
to degree.
# Trig functions
import math
angleInDegree = 90
angleInRadian = math.radians(angleInDegree)
print('The given angle is :', angleInRadian)
print('sin(x) is :', math.sin(angleInRadian))
print('cos(x) is :', math.cos(angleInRadian))
print('tan(x) is :', math.tan(angleInRadian))
Class Exercises
1. Write a Python program which accepts the radius of a circle from the
user and compute the area.
• The variable empCount is a class variable whose value is shared among all
instances of a this class. This can be accessed as Employee.empCount from inside
the class or outside the class.
• The first method __init__ is a special method, which is called class constructor or
initialization method that Python calls when you create a new instance of this
class.
• You declare other class methods like normal functions with the exception that the
first argument to each method is self. Python adds the self argument to the list for
you; you do not need to include it when you call the methods.
Creating Class and Object in Python
• Then, we create instances of the Parrot class. Here, blu and woo are
references (value) to our new objects.
• Although you must specify self explicitly when defining the method,
you don’t include it when calling the method.
• Python passes it for you automatically
Example- Creating Instance Objects
• To create instances of a class, you call the class using class name and
pass in whatever arguments its __init__ method accepts.
Deleting instances: No Need to “free”
• When you are done with an object, you don’t have to delete or free it
explicitly.
• Python has automatic garbage collection.
• Python will automatically detect when all of the references to a piece
of memory have gone out of scope. Automatically frees that memory.
• Generally works well, few memory leaks
• There’s also no “destructor” method for classes
Access to Attributes and
Methods
• Instead of using the normal statements to access attributes, you can
use the following functions −
• The getattrobj, name[, default] : to access the attribute of object.
• The hasattrobj, name : to check if an attribute exists or not.
• The setattrobj, name, value : to set an attribute. If attribute does not
exist, then it would be created.
• The delattrobj, name : to delete an attribute.
Definition of student
Traditional Syntax for Access
Accessing unknown members
• Problem: Occasionally the name of an attribute or method of a class is
only given at run time…
• Solution:
• getattr(object_instance, string)
• string is a string which contains the name of an attribute or method
of a class
• getattr(object_instance, string) returns a reference to that attribute
or method
getattr(object_instance, string)
hasattr(object_instance,string)
Attributes
Two Kinds of Attributes
• The non-method data stored by objects are called attributes
• Data attributes
• Variable owned by a particular instance of a class
• Each instance has its own value for it
• These are the most common kind of attribute
• Class attributes
• Owned by the class as a whole
• All class instances share the same value for it
• Called “static” variables in some languages
• Good for (1) class-wide constants and (2) building counter of how many
instances of the class have been made
Data Attributes
• Data attributes are created and initialized by an __init__() method.
• Simply assigning to a name creates the attribute
• Inside the class, refer to data attributes using self— for example,
self.full_name
Class Attributes
• Because all instances of a class share one copy of a class attribute,
when any instance changes it, the value is changed for all instances
• Class attributes are defined within a class definition and outside of
any method
• Since there is one of these attributes per class and not one per
instance, they’re accessed via a different notation:
• Access class attributes using self.__class__.name notation
-- This is just one way to do this & the safest in general.
Data vs. Class Attributes
Example- Accessing Attributes
• You access the object's attributes using the dot operator with object.
Class variable would be accessed using class name as follows −
Example- putting all the concepts together
Example contd.
• When the above is run:
• Syntax:
Use of Inheritance in Python