Computer Programming and Description of Terms
By the end of the lesson you should be able to:
Programming refers to the process of developing computer instructions to solve a particular problem
Programming language refers to a special set of symbols that can be translated into machine-readable form by the computer when arranged in a particular sequence or order
Source program: a program that is not yet translated into machine-readable form
Object code - refers to a program that in machine-readable form i.e 1's and 0's
Translators: refer to language processors that convert the source program into object code
Assembler: translates assembly language that the computer can understand and execute.
Interpreter: translate source code line-by-line to object code
Compiler: translates the entire source to object code
Levels of Programming Languages
By the end of the lesson you should be able to:
Low-level languages
These are languages that can easily be understood by the computer either directly or needs less effort to translate to object code. They include: Machine and Assembly language
The low level languages are divided into :
High-level languages
These are languages that require either a compiler or interpereter to convert them to machine. They are very close to english and are easily understood by humans. These languages are machine independent.
High-level languages are divided into:
Third Generation Languages (3GLs)
Breaks a problem into parts called modules which are implemented by functions. This is called procedural or structured programming.
Examples:
Fourth Generation Languages
These gives the programmer tools to create forms and form controls. This is followed by even driven programming that makes building of applications faster.
Examples:
Fifth generation languages
Are designed to make computer solve a particular problem without the computer programmer. There are conditions in place that must be met. Such programming languages include:
Object Oriented Programming
Here a problem is divided into classes that has properties and behavious. Then object are defined as per these classes.
Examples include:
C++, Java, Python etc.
Program Development
By the end of the lesson, the learner should be able to
Stages involved in the program development cycle.
The process of program development can be broken down into the following stages:
Problem recognition.
Problem recognition refers to the understanding and interpretation of a particular problem.
The programmer must know what problem he/she is trying to solve. He/she must also understand clearly the nature of the problem & the function of the program.
In order to understand a problem, look for the keywords such as compute, evaluate, compare, etc.
Usually, a programmer identifies problems in the environment and tries to solve them by writing a computer program.
There are 3 situations that cause the programmer to identify a problem that is worth solving:
Sample problem: Develop a program that can be used to calculate/find the area of a circle. Use the equation A = π * r2.
Problem definition (Problem Analysis).
In Problem definition, the programmer tries to define (determine) the:
For example:
In calculating the area of any circle, the parameters needed to determine the area of any circle are:
(b) The radius of the circle.
At the end of the problem definition, the programmer is required to write a requirements report/document for the new program. This document will enable the programmer to come up with a program design that meets the needs at hand.
Note. Problem definition should be done thoroughly to ensure user satisfaction, and to facilitate the subsequent stages in the program development cycle. A failure at this stage usually results in a system that will not work as intended, or that may not work at all.
Program design
Program design is the actual development of the program’s process or problem solving logic called the Algorithm.
It involves identifying the processing tasks required to be carried out in order to solve the problem.
The design stage enables the programmer to come up with a model of the expected program (or a general framework (outline) of how to solve the problem, and where possible, break it into a sequence of small & simple steps.
The models show the flow of events throughout the entire program from the time data is input to the time the program gives out the expected information.
Note. It is important to design programs before entering them into the computer. The programmer should only attempt to covert a design into a program code after ensuring that it is logically correct. If possible, check the logical order on the desk.
Some programmers produce rough & ready solutions at a Keyboard, and continue to amend the programs until eventually the program appears to do what was expected. This is not recommended in programming because of the following reasons:
E.g., there may not have been plan for testing the program or procedures, hence, the program may easily fail.
Modular programming
Many programs are non-monolithic (i.e., they are not usually made up of one large block of code). Instead, they are made up of several units called modules, that work together to form the whole program with each module performing a specific task.
This approach makes a program flexible, easier to read, and carry out error correction.
Program coding
Program coding is the actual process of converting a design model into its equivalent program.
Coding requires the programmer to convert the design specification (algorithm) into actual computer instructions using a particular programming language.
For example;
The programmer may be required to write the program code either in Pascal, C++, Visual Basic or Java, and develop (invent) suitable identifiers, variable names, & their data types. However, remember that, at this stage the coding is still a Pencil & paper exercise.
The end result of this stage is a source program that can be translated into machine readable form for the computer to execute and solve the target problem.
Rules followed in coding a program.
Sample programs written in Pascal language.
Example 1:
Develop a program code that would be used to solve the equation of a straight line given by the expression: Y = mx + c
Program StraighLine (input, output);
VAR
y, m, x, c: INTEGER;
BEGIN
Writeln (‘Input the value of M’);
Readln (M);
Writeln (‘Input the value of X’);
Readln (X);
Writeln (‘Input the value of C’);
Readln (C);
Y: = (m * x) +c;
Writeln (‘The value of y is:’, Y);
END.
Pascal code |
Explanation |
Program StraightLine (input, output); |
This is the program Header.
The word “Program” indicates the beginning of the program whose name is StraightLine. The (input, output) statements shows that the program expects some input from the Keyboard and display the output on the Screen. |
VAR |
VAR is short form for Variable. A variable is a location for data in the computer memory.
This statement tells the computer that variables are about to be declared. When a variable is declared, the computer sets aside some memory space to store a value in the variable. |
y, m, x, c: INTEGER; |
Four variables of type Integer have been declared. This means that, the memory spaces that will be set aside can only hold values that are whole numbers. |
BEGIN |
The Begin statement marks the start of the program body. Statements in this section are executed by the computer. E.g., execution starts by asking the user to input the value of m. |
Writeln (‘Input the value of M’); |
The Writeln statement displays whatever is between the inverted commas in the brackets. The statements will be sent to the screen exactly the way they appear in the brackets. This is because; the inverted commas are meant to make the output readable on the screen. To display the value held in a variable on the screen, remove the inverted commas and write the name of the variable in the brackets, e.g., Writeln (y) will display the value held in the variable y. |
Readln (M); |
The Read or Readln statement reads a value and stores it in a variable. When the program is running, a Read/Readln statement in the code will displays blinking cursor that indicates to the user where to type the input. |
Y: = (m * x) +c; |
Calculates the value of y. in Pascal, the symbol ‘: =’ is called the Assignment statement. The values on the right are calculated then the answer stored in the variable y which is on the left of the assignment symbol. |
Writeln (‘The value of y is:’, Y); |
The Writeln displays the value held in the variable y on the screen. Note. Y is not within the inverted commas. |
END. |
The ‘END.’ statement shows the end of a program. |
Example 2:
Program AreaCircle (input, output);
CONST
Pi = 3.142;
VAR
Radius, Area: REAL;
BEGIN
Writeln (‘Enter the radius’);
Readln (Radius);
Area: = Pi * Radius * Radius;
Writeln (‘The Area is’, Area);
END.
Pascal code |
Explanation |
Program AreaCircle (input, output); |
The Header of the program.
The statements in ( ) shows that the user inputs data via Keyboard and the program display information on the Screen. |
CONST Pi = 3.142; |
A constant has been declared with a name Pi and value 3.142. |
VAR Radius, Area: REAL; |
Variables with fractional parts have been declared. |
BEGIN |
Marks the beginning of the program body. |
Writeln (‘Enter the radius’); |
Displays on the screen the string between the inverted commas. |
Readln (Radius); |
Displays a blinking cursor that tells the user that an input is needed before the program can continue. |
Area: = Pi * Radius * Radius; |
Calculates the Area. An assignment statement (: =) has been used. |
Writeln (‘The Area is’, Area); |
Displays the value stored in the variable Area. |
END. |
Marks the end of the program. |
Revision Questions.
Program Testing and Debugging
After designing & coding, the program has to be tested to verify that it is correct, and any errors detected removed (debugged).
TESTING:
Testing is the process of running computer software to detect/find any errors (or bugs) in the program that might have gone unnoticed.
During program testing, the following details should be checked;
Note. The testing process is a continuous process, and it ends only when the Programmer & the other personnel involved are satisfied that when operational, the program will meet the objectives and the growing demands of the organization.
Types of program errors
There are 5 main types of errors that can be encountered when testing a program. These are:
Syntax errors
Every programming language has a well-defined set of rules concerning formal spellings, punctuations, naming of variables, etc. The instructions are accepted only in a specified form & and must be obeyed by the programmer.
Syntax errors are therefore, programming errors/mistakes that occur if the grammatical rules of a particular language are not used correctly.
Examples:
Reserved words are those words that have a special meaning to the programming language, and should not be used by the programmer for anything else.
Syntax errors are committed by the programmer when developing, or transcribing the program, and can be detected by the language translators, such as the Compiler as it attempts to translate a program. Such errors must be corrected by the programmer before the program runs.
Logical (arithmetic) errors.
These are errors in the program logic.
Logical errors relate to the logic of processing followed in the program to get the desired results. E.g., they may occur as a result of misuse of logical operators.
Logical errors cannot be detected by the translator. The programmer will detect them when the program results are produced.
The program will run, but give the wrong output or stop during execution.
Run-time (Execution) errors.
These errors occur during program execution.
Run-time (execution) errors occur when the programmer introduces new features in the program, which are not part of the translator’s standards.
For example; they may occur if:
Execution errors are not detected by the translator programs, but are detected by the computer during execution. Sometimes, execution errors may lead to premature end of a program.
To detect and eliminate Execution errors, a test run should be performed on the program after it has been translated.
Semantic errors.
These are meaning errors. They occur when the programmer develops statements, which are not projecting towards the desired goal. Such statements will create deviations from the desired objectives.
Semantic errors are not detected by the computer. The programmer detects them when the program results are produced.
Example;
TAX: = GP - (GP * 13%)
TAX: = GP - (GP * 13%)
In the 1st statement, if the selection is between 1500 & 2200, the computer will pick only 1500 & 2200, and the other values will not be touched.
In the 2nd statement, the computer will be able to pick all the values between 1500 & 2200 because of the ‘AND’ operator.
Lexicon errors.
These are the errors, which occur as a result of misusing Reserved words (words reserved for a particular language).
Revision Questions.
DEBUGGING:
The term Bug is used to refer to an error in a computer program.
Most programming errors often remain undetected until an attempt is made to translate a program.
The most common errors include:-
Debugging is therefore, the process of detecting, locating & correcting (removing, eliminating) all errors (mistakes or bugs) that may exist in a computer program.
TYPES OF TESTING (Methods of error detection)
For the program to be assumed as correct, several testing needs to be conducted by the programmer to ascertain/establish their validity.
There are several methods of testing a program for errors. These include:
Dry Running (Desk checking):
Dry running is a method of checking a program for errors by making the corrections on a paper before entering it in the program editor.
It involves going through the program while still on paper verifying & validating its possible results. If the final results agree with the original test data used, the programmer can then type the program into the computer and translate it.
Translator system checking:
This is a type of testing, which involves the computer & the translator programs.
After entering the program, it is checked using a translator to detect any syntax errors. The translator can be a Compiler or an Interpreter, which goes through the set of instructions & produces a list of errors, or a program/statement listing which is free from errors.
Functional testing (White-box testing):
This type of testing is based upon examining the internal structure of a program & selecting test data, which give rise to the alternative cases of control flow.
Use of Test data.
The accuracy of a program can be tested by inputting a set of values referred to as Test data. The test data is designed to produce predictable output.
There are 2 types of test data;
The programmer invents simple test data, which he/she uses to carry out trial runs of the new program. At each run, the programmer enters various data variations including data with errors to test how the system will behave. For example, if the input required is of numeric type, the programmer may enter alphabetic characters. The programmer will then compare the output produced with the predicted (actual) output.
Notes.
Use of debugging utilities.
After the program has been entered in the program editor, debugging utilities which are built in the computer can be run during translation to detect any syntax errors in the program.
The errors are corrected and the debugging process is repeated again to find out more errors, before the program is executed.
Diagnostic procedures.
For complex programs, diagnostic procedures, such as Trace routines, may be used to find logical errors.
A Trace prints out the results at each processing step to enable errors to be detected quickly.
System Test with actual data.
This is whereby the new program is run in parallel with the existing system for a short time so that results can be compared and adjustments made. In such cases, the system test is made using actual data.
Review Questions.
Implementation and Maintenance.
IMPLEMENTATION
Implementation refers to the actual delivery, installation and putting of the new program into use.
The program is put into use after it is fully tested, well documented, and after training the staff who will be involved in the running of the new program.
Structured Walk Through:
It is an organized style of evaluating/reviewing a program by a team of other programmers, which then reports to the programming team.
REVIEW AND MAINTENANCE.
Once the program becomes operational, it should be maintained throughout its life, i.e., new routines should be added, obsolete routines removed, & the existing routines adjusted so that the program may adapt to enhanced functional environments.
The main objective of maintenance is to keep the system functioning at an acceptable level.
Program maintenance mainly involves: -
Note. Program maintenance runs parallel to the maintenance of the program documentation, i.e., any time maintenance is carried out on the program, the documentation should also be updated to convey the right image of the system.
Program documentation.
After writing, testing, and debugging a program, it must be documented. In other words, the programmer should describe all what he was doing during the program development stages.
Program documentation is the writing of supportive materials explaining how the program can be used by users, installed by operators, or modified by other programmers.
Note. All the program development activities (i.e., from the initial stage up to the complete program) should be documented/recorded in order to assist in the development of the program, future modification of the program, general maintenance, machine & software conversion at a later date, and program changeover.
Documentation can either be; Internal or External.
Internal documentation is the writing of non-executable lines (comments) in the source program that help other programmers to understand the code statements.
External documentation refers to reference materials such as user manuals printed as booklets.
Types of program documentation.
There are 3 target groups for any type of documentation:
This enables the user to learn how to use the program as quickly as possible, and with little help from the program developer.
This is meant for computer operators such as the technical staff. It is used to help them install & maintain the program.
This is a detailed documentation written for skilled programmers. It provides the necessary technical information to help in future modification of the program.
Some documents used in program documentation.
This is a manual provided for an end-user to enable him/her use or operate the program with minimal or no guidance.
A User guide is used in user-oriented documentation.
It is used by someone who already knows how to use the program but needs to be reminded about a particular point or obtain more detailed information about a particular feature.
This could be a single sheet or card small enough to fit into a pocket. It is used by the user to get help for the common tasks carried out within the program.
They are intended for System analysts & Programmers. They assist in maintaining & modifying the program design and code.
Contents in a program document.
Documentation includes:
Review Questions.
(b). What does a program documentation contain?
DEVELOPING OF ALGORITHMS
After carefully analyzing the requirements specification, the programmer usually comes up with the algorithm.
Definition of an Algorithm:
Program design Tools.
Algorithms can be illustrated using the following tools:
Note. For any given problem, the programmer must choose which algorithm (method) is best suited to solve it.
PSEUDOCODES.
However, pseudocodes are not executable by a computer.
Guidelines for designing a good pseudocode.
i.e., a pseudocode should show clearly the start and stop of executable statements and the control structures.
Example 1:
Write a pseudocode that can be used to prompt the user to enter two numbers, calculate the sum and average of the two numbers and then display the output on the screen.
START
PRINT “Enter two numbers”
INPUT X, Y
Sum = X + Y
Average = Sum/2
PRINT Sum
PRINT Average
STOP
Example 2:
Write a structured algorithm that would prompt the user to enter the Length and Width of a rectangle, calculate the Area and Perimeter, then display the result.
Solution
Step 1: Draw the rectangle of Length (L) and Width (W).
Step 2: Write down the Pseudocode.
START
PRINT “Enter Length and Width”
READ L, W
Area = L * W
Perimeter = 2 (L + W)
PRINT Area
PRINT Perimeter
STOP