0% found this document useful (0 votes)
21 views28 pages

CSC201 2023 Lecture ONE

This document contains introductory lecture notes on computer programming from the Department of Computer Science and Engineering at O.BÁFÉ.MI AWÓLÓ.WÒ. UNIVERSITY in Nigeria. The notes define key terms related to computing including hardware, software, programming languages, algorithms, and the computer program development process. Examples are provided to explain concepts like variables, operators, and how to write a simple program to calculate an average. Exercises are included at the end to help students practice the material.

Uploaded by

jordanmubey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views28 pages

CSC201 2023 Lecture ONE

This document contains introductory lecture notes on computer programming from the Department of Computer Science and Engineering at O.BÁFÉ.MI AWÓLÓ.WÒ. UNIVERSITY in Nigeria. The notes define key terms related to computing including hardware, software, programming languages, algorithms, and the computer program development process. Examples are provided to explain concepts like variables, operators, and how to write a simple program to calculate an average. Exercises are included at the end to help students practice the material.

Uploaded by

jordanmubey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

O.BÁFÉ.MI AWÓLÓ.WÒ.

UNIVERSITY
ILÉ-IFÈ., NIGERIA.
FACULTY OF TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
INTRODUCTORY LECTURE NOTES

CSC 201: Computer Programming I


3 Units
Harmattan Semester, 2022-2023 Session
THIS DOCUMENT IS NOT FOR SALE !

O
. DÉ.JO
. BÍ, O
. dé.túnjı́ A.
Room 109, Computer Buildings,
[email protected]

November, 2023
Contents

1 Definition and explanation of terms 1


1.1 Agencies of computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 What a “computer”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 History of Modern Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 The Computer System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Computer Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.1 Input-Output devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.2 Central Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.3 Memory devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.4 Memory metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Computer Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.1 System software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.2 Application software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7 What is Programming? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1 Operand: Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7.2 Operation: Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8 The concept of Programming language . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8.1 Familiarly with Programming Language . . . . . . . . . . . . . . . . . . . . . . 16
1.8.2 Python Instruction format and structure . . . . . . . . . . . . . . . . . . . . . . 16
1.8.3 Python Variables and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8.4 Python Reserved words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8.5 Naming Python variable and constant . . . . . . . . . . . . . . . . . . . . . . . 17
1.8.6 Python Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.8.7 Familiarly with Programming Process . . . . . . . . . . . . . . . . . . . . . . . 18
1.9 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.10 Computer program development process . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.11 Case example: FindAverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.12 Exercise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

ii
Lecture Note 1

Definition and explanation of terms

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.1 Agencies of computing


Ìs.irò (Computing) is a process (Ìlànò.n). The Yorùbá word Ìs.irò (Computing) translates
into English as (Ì-s.ı́-èrò): “The act of giving expression to instances of state in human
mental activity”. A prescribed mental activity is called Ìlànò.n (a process). A process
comprises Two (2) aspects: (i) State and (ii) Transition. The state and transition in a
process are inherent in human mental activity. Instances in mental activity are known
to their human agency only and cannot be seen. The state and transition in human
mental activity find sensorily accessible expression through an instrument of language.
Therefore, a process is human mental activity prescribed and expressed using a
language.
Humans are biological agencies. The computer is a machine. A machine is a
material agency. The computing machine is a tool for assisting the efficient expression
of a process ascribed to human mental activity. Computer programmer is a human or
group of humans. There are Two (2) fundamental differences between biological (e.g.
humans) and material (e.g. computer machine) agencies:

(i.) Faculty of language and


(ii.) Sensory organs.

“Sensory organs” and “Faculty of language” are inherent in biological agencies. A


material agency is a deliberately created tool for achieving a prescribed task. The func-
tion of material agency (machines) is prescribed to conform to a well-defined process.
The purpose of material agency (machines) is determined by its designer and user.

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:

(i.) “Computer programming languages are prescribed and specifically designed to


communicate with machines. Computer instructions may NOT conform to Wit-
ten language grammar or Mathematical rules. E.g. I = I + 1
(ii.) Computer machines do not learn “A programming language” before they execute
its instructions. Human must learn a language before they can use it to commu-
nicate or effect action.
(iii.) Computer machines do not process the symbols in the instruction of “Program-
ming languages”, they process a material rendering of the instruction. A com-
puter manipulates prescribed signals such as Mechanical as well as signals ren-
dered into Diode Valve, Transistor, Electro-magnetic, Electronic, Micro-electronic,
and Nano-electronics. Symbols are ascribed to these signals by humans.
(iv.) Computer machine cannot recognise if there are mistakes in it program. However,
a computer can be programmed to reckon and report errors in the structure of an
instruction.

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.

1.2 What a “computer”?


Computer is a device with the capacity to accept data and instructions,
process the data using the instruction and produce output in the format
specified in the instruction.
Based on the above definition, the computer can be viewed as depicted in Figure
1.1.

DATA
PROCESS OUTPUT
INSTRUCTION

Figure 1.1: Definition of Computer

A computing machine is, therefore, expected to have component for:


1. Accepting data and 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.

1.3 History of Modern Computers


The history computer evolves with technology. In the Manual era, material objects
are physically manipulated by humans to assist or support ı̀s.irò (a computing) process.
Fingers, Stones, pebbles, animal bones, pieces of wood and bamboo, etc. are used to
support memory and organisation during a computing process. Specialised tools such
as the Abacus, Slide-rule, Ò. pè.lè. and loom (cloth weaving) were developed and used
during the manual era. The character of the manual era is that, humans physically and
directly manipulate the materials used in the computing process. The main problem
with the manual era is that its computation process is realised with much labour. This
makes the output of computations prone to mistakes.
The manual era is followed by the mechanical era. During this era, metals such as
iron, copper and sliver were refined and used to fabricate devices that automatically give
expression to the state and transition in a computing process. This is the beginning of
the Machine era. A machine (È.ro.) is a material agency that is capable of working “by
itself” (that is autonomously). Example of machines in the Mechanical Era include,
(i) Pascal calculator, (ii) Leibniz calculator and (iii) Charles Babbage’s Difference
Engine. The main problem with the Mechanical era is that its computation process is
unreliable as machines broke down frequently. This makes the output of computations
prone to error. The Mechanical era is followed by the Vacuum and Cathode-ray Tube
era. The Vacuum and Cathode-ray Tube technology makes it possible to store and
manipulate the electrical signals used to represent instances in the state of a computing
process. This technology culminated in faster and more accurate material realisation
of the computing process. Example of machines in this era include Harvard Mark I
and IBM SSEC machines. This Vacuum and Cathode-ray Tube era is followed by
the Diode device era. The major problem of the Vacuum and Cathode-ray Tube is
the heat generated during computing process. Computer memory devices are realised
using mercury delay. The tube and mercury technology consumes substantial energy
as well. This problem was reduced by the Diode device era. The Diode technology
makes it possible to create cooler and more accurate computing machine. Example of
machine in the Diode device era include ENIAC and EDVAC.

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:

1. Computer machines evolve with technology;


2. The performance of computing machines improve with advancement in technol-
ogy;
3. The cost of computing machines reduce with advancement in technology;
4. The size of computing machines reduce with advancement in technology;
5. The reliability of computing machines increase with advancement in technology;
6. The function and versatility of computing machines increase with advancement in
technology;

Despite the evolution of computer technology, however, the logic of computing


process remains unchanged. What this implies is that the logic of addition, multi-
plication, division, searching, sorting, and so forth, remain unchanged. This is so
even when better technique have been advance to achieve them. Therefore, a meaning-
ful definition of computing is not grounded in the technology for its creation.
You are expected to read more about the history of computer in standard textbooks
and on the internet. You may be required to submit an assignment on this.

1.4 The Computer System


The computer system is composed of Tangible (physical) and Intangible (non-physical)
aspects. The physical aspect are all the thing that you can physically touch, feel and
move. The Physical aspect of a computer are collectively called the Computer Hard-
ware. Examples of computer hardware include: the mouse, monitor or screen, key-
board, input-output devices such as printer and scanner as well as memory devices
such as your Flash Disk.
The Non-physical aspect are the intangible state and activity of the computer. You
cannot see or touch this aspect but you can know that they are in operation through the
activities of the physical aspect. The intangible aspects of the computer are collectively
called Computer Software. Examples of computer software are: Operating System
Software such as Microsoft Windows, UNIX, Android; Application Program Soft-
ware such as Microsoft Excel, Power-point as well as the Apps running on your mobile
phones.
If we use human as a metaphor or analogy, the physical body, i.e. head, legs,
hands, eyes, etc. are the hardware. Human mental activity are the software. Though

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.

1.5 Computer Hardware


The hardware structure of a computer is depicted in Figure 1.3. In the figure, the dotted
arrow head line is control signal and the full arrow lines are the data lines.

Figure 1.3: Structure of a Computer

Hardware is a set of physical devices that facilitates a computer soft-


ware’s operation.

1.5.1 Input-Output devices


The input component is also called the input device. Examples include Keyboard,
mouse, touch screen, pen and so on. The ability to use the Keyboard and Mouse is
central to computer programming.

1.5.2 Central Processing Unit


The Processing component comprises a number of other components that facilitate
the execution of a programme. The Computer Process Unit comprises three (3) other

7
subcomponents:

Memory Element (ME)

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.

Control Unit (CU)

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.

Arithmetic and logic unit (ALU)

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.

1.5.3 Memory devices


Memory Devices are the hardware components of a computer in which
data and instruction are stored.

There are two categories of memory devices: (i) Main memory and (ii) Mass
memory. These are discussed in the following subsection.

Main memory devices

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.

Mass memory devices

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.

1.5.4 Memory metric


Computer memory devices are of various sizes. The different sizes of computer mem-
ory are reckoned using a metric based on the number of cells that makes up a unit of
data. The Bit (Binary Digit) is the smallest data element in modern digital computing
machines. The Bit is stored in a Cell. Therefore, a cell holds a Binary digit (Bit) dur-
ing computer operation. Each cell holds either Zero 0 or One 1 at an instance in
the computer operation. Four (4) cells, each of them holding a bit, e.g. 0 1 0 1 ,
makes a Nibble. A unit of data in modern computer is a Byte. A computer Byte
comprises Two (2) Nibbles or Eight (8) Bits, e.g. 0 1 0 1 0 1 0 1 . The number of
unit data comprising the entire storage space in a memory device is reckoned in Bytes
as depicted and described in Table 1.1. A Byte can hold one character, E.g. the letter
‘R’, the digit ‘5’, etc. Memory metric is, therefore, a rough estimate of the number
of characters that can be stored into a memory device. If the number of character in
your notebook is up to Ten thousand (10, 000), then you will need a memory of about
Ten Kilobyte (10KB) to store it. This is estimated as 10 × 210 Bytes, where 210 Bytes
corresponds to about One thousand (1,000) characters.

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.

1.6 Computer Software


The intangible aspect of the computer system are called “Computer Software”. Com-
puter Software often comprises several “Computer Programs”. If a program, or set of
programs, fails, the computer hardware may not function properly. The human who
writes program for controlling a computer is called a Computer Programmer. The
humans or group of humans involved in the Specification, Design, Programming (Cod-
ing) and Evaluation (Testing) of software are also called Software Developer. Every
programming for problem-solving involves familiarity with every aspects of software
development. The job of a computer programmer (software developer) is to design
and implement a set of programs that will make the computer to do what a user
wants. Usually the user is a human being. The user can also be another computer.
For the programmer to achieve this task he/she must first understand the problem that
the user wants to use the computer to solve. The programmer must also understand
the capability of the computer as well as how to instruct the computer to perform the
specified task. In this course you will learn how to instruct a computer using the
Python programming language.

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.

1.6.1 System software


System software is specifically developed by computer manufactures to make the com-
puter ready for use by other programs and users. System software performs the follow-
ing tasks:
1. Create the environment for other programs to run. [Run is the terminology used
for “a process executing on a computing machine”]
2. Manage the computer resources (disks, memory, printers, etc. ) for effective use.
E,g, Data Zipping (Compress data into smaller memory size)
3. Provide data about the status of the hardware and related computer component
[E.g. time].
4. Provide prompts (message) that can help the user in computer usage.
5. Provide interfaces that suit users fancy and appeal;
6. Respire or reclaim unused computer resources such as memory. System Software
that reclaims memory are call “Garbage Collector”.
A very important system program is the Operating system. Examples of operating
systems include:
1. Windows XP
2. UNIX
3. LINUX
4. Solaris
5. Mac OS
Other examples of system programs includes: Editor, Linker, Loader. System
programs are usually written by System programmers. System programs are commis-
sioned by specialised Computer vendors, organisation or Business interests. Aspects
of system programs are usually written using Low Level Language called Assembly
Language.

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:

1. In Mathematics, Science and Engineering [Octave, Matlab, Mathematical and


Maple]
2. In Internet browsing [Google Chrome, Safari, Firefox]
3. In Graphics design and Architecture [AutoCard, Adobe Photoshop, CorelDraw]
4. Online meeting [Skype, Hangouts, Google Meet, Zoom, and Whatsapp]
5. Banking [Oracle, TEMENOS, CorePlus, Bankware]

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.

1.7 What is Programming?


Computers will do what humans instruct. The instructions for computers are written in
a Programming Language. Computer will NOT do what they are NOT programmed to
do. To ask a computer to perform a task, you have to give it Two (2) things:

1. The data on which the computer will perform the task.


2. The set of instruction on how to manipulate the data.

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.

The art of composing the sequence of instructions that controls a com-


puter system is called programming.

The outcome of a computer programming activity is a program.

A program is a sequence of instructions which when executed by a com-


puter, the output corresponding to an input data will be produced.

An instruction is a unit of message or command that influences the operation of a


computer. An instruction is composed of Two (2) parts:

1. Operand (Data)
2. Operation (Operator)

INSTRUCTION = OPERAND + OPERATION


INSTRUCTION = DATA + OPERATOR
An analysis of the instruction:
ADD Two (2) data items identified with the names X and Y and Store the output in Z
is as depicted in Figure 1.4.

Figure 1.4: Fundamentals of Data and Instruction

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.

1.7.2 Operation: Operator


Operators define the manipulation that will be carried out on data. This include arith-
metic operation such as Addition, Subtraction, Multiplication and Division. It also
includes; Negation, Reversing, Search, Printing, Reading, and so forth. Operators are
like the VERB of a computer instruction because they prescribe the manipulation to be
applied on the data. That is, the state what should be done (Action) with the data.

1.8 The concept of Programming language


The process of programming can be viewed as the process involved when two (2) hu-
man individuals communicate through Writing Letter. The two (2) individual are
communicating using the written form of their habitual instrument of language. Their
habitual instrument of language is Human Language. In this case, however, the Pro-
grammer is communicating with a machine using a computer Programming Lan-
guage. Indeed the Program writing process is grounded in the metaphor of Letter
writing.
These are the attributes of the Letter Writing process
1. The message in a letter is written in a Human Language { e.g. Yorùbá, Igbo,
Hausa, English, etc. }.
2. The symbols in the message are drawn from the alphabet of the Human Language.
3. There is a format of presentation to which the text (narrative) in the letter conforms
{e.g. formal and informal letter }.
4. There is an opening (beginning) and a closing (ending) statement.
5. There are sequence of words, phrases, sentences and paragraphs between the
Opening and Closing statement. Each of the words, phrases, sentences and para-
graphs expresses aspects of the message in the letter. Each word, phrase, sentence
and/or paragraph is composed using the symbols drawn from the alphabet.
6. The message in the letter conveys information from the Writer (Sender) to the
Reader(Receiver).

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:

1.8.1 Familiarly with Programming Language


Familiarly with Programming Language includes:
1. The symbols in alphabet as well as those that have special influence on the com-
puter operation.
2. How to compose and ascribed names to data.
3. How to use the data and operand to compose instruction.

1.8.2 Python Instruction format and structure


During this course, the format and structure of the instruction for following Python
statements and expressions will be explained with examples. You will also be intro-
duced to other formats and structures that are used in the Python Object Oriented Pro-
gramming Language. In addition, you will learn the techniques for using the format
and instruction in programming. Some of the instruction and statement formats and
structures that would be consider include:

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

1.8.3 Python Variables and Constants


The variables in a Python program can be liken to the nominal part-of-speech in human
written language. The nominal part-of-speech is a NOUN. The “Noun” is a class of
strings, each of which is used to identify an instance or agency. Variable can hold one
constant at an instance during a computer operation. Therefore, the content of a variable
can change during the execution of a process. The constants in a Python program can be
liken to the words in human written language. The “word” is a string used to identify an
instance or agency. Constants do not change during the a computer operation. When the
value to be stored changes then it is given a variable name, for example Number or Sum.
Variable names correspond to the identity of a memory location in a computer system.
In the case of a constant, the exact value of the constant, e.g. “Ade”, “1234”, and
“Lagos” is stated. In the expression NAME = “Ade” , the string NAME is a variable
while the string “Ade” is a constant. Also in the expression Y = 10 , the symbol Y is a
variable while the number 10 is a constant. The number 10 can also be called a constant
string of Two (2) digits, 1 and 0.

1.8.4 Python Reserved words


There are certain names that have special function in the Python programming lan-
guage. These names are called Reserved words or Key words. Reserved words
CANNOT be used to name a variable or constant. Thirty-Tree (33) Python Reserved
words are listed in Table 1.2.

1.8.5 Naming Python variable and constant


The name of a variable can be composed from a combination of letters and digits. This
is much in a way similar to how words are composed from the English alphabet. The

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.

1.8.6 Python Statements


A Python statement is an instruction, which when executed, will influence the com-
puter operation. A statement is similar to a sentence in human languages. Each of the
statement in a program is also called a code. Various Python statement and how they
are used are discussed in your Laboratory and Tutorial Manual.

1.8.7 Familiarly with Programming Process


Familiarly with Programming Process includes:
(i) How to design the algorithm of a programming process
(ii) How to reduce the algorithm into program code or instruction.
(iii) How to create the digital version (the computer text) for the instruction composed
in (ii)

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.

Figure 1.5: Flowchart Symbols

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.

Step 1: Understand the problem: It is good to always start your programming by


giving the problem it solves a name. The first step in computer problem solving
is to understand the problem. To do this, you need to take a simple case example
and solve the problem manually. This will allow you to understand what goes into
the process of solving the problem. The outcome of this process is a SPECIFI-
CATION DOCUMENT containing a description of the solution process.
Step 2: Identify Input and Output: It this step the Input data are listed with their
data types and sample values. Also, the expected outputs are listed and is de-
scribed. After this identification step, you need to use signifiers, called variable
or constant names to label each Input and Output. The outcome of this step is a
DATA DICTIONARY of the program
Step 3: Formulate the process: The individual manipulation operations required for
transforming the input data to its corresponding output data are listed. This will
include: what calculations are required and how they will be invoked. You may
need to consider a number of alternative solution process at this stage before set-
tling for the most appropriate one for the problem at hand. The outcome of this
process is a PROCESS DICTIONARY. This comprises a list of the processes
that will be execute in order to produce output from an input. The document will
normally include a brief description of each of the process listed.
Step 4: Solution Algorithm Design: Formulate an algorithm to realise the Steps 2
and 3. This is the program design. To achieve this, you need to use Flowchart
symbols to construct a step by step or sequence of tasks involved in solving the
problem. You also need to follow the logic of the solution in achieving this task.
It may be the case that the solution will be implemented in modules by breaking
a bigger problem into smaller ones. Each of the smaller problems is then imple-
mented as a module. The outcome of this process is the SOLUTION DESIGN.
This is in the form of a flowchart (or pseudo-code) corresponding to the design of
the problem’s solution.
Step 5:Implement the Design: In this stage of the problem solving, you need to con-
vert the algorithm designed in Step 4 into a computer program. Here you will
reduced the Flowchart into Python instructions. The tasks here includes:

(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.

1.11 Case example: FindAverage


We will demonstrate the software development process discussed in Section 1.10 by
developing a program to find the average of Five (5) numbers.

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

Sum = Number1 + Number2 +


Number3 + Number4 + Number5

Average = Sum/5.0

Write Average

Stop

Figure 1.6: Design for the Average Program

23
Implement the solution: To implement the design, create the source file by typing the
following program code into the Python editor.

Table 1.3: Python code for the Flowchart in Figure 1.6

1 Number1 = float(input("Enter Number1: "))


2 Number2 = float(input("Enter Number2: "))
3 Number3 = float(input("Enter Number3: "))
4 Number4 = float(input("Enter Number4: "))
5 Number5 = float(input("Enter Number5: "))
6 Sum = Number1 + Number2 + Number3 + Number4 + Number5
7 Average = Sum/5
8 print("Average of the numbers is :", Avegrage)

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.

Table 1.4: Python code for the Flowchart in Figure 1.7

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

Sum = Sum+ NextNumber


Item = Item +1

No
Item = 5?

Yes

Average = Sum/5.0

Write Average

Stop

Figure 1.7: Design for the Average Program

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

You might also like