Chapter 1 - Computer Programming
Chapter 1 - Computer Programming
In order to solve a given problem, computers must be given the correct instruction about how they can solve
it. The terms computer programs, software programs, or just programs are the instructions that tells the
computer what to do. Computer requires programs to function, and a computer programs does nothing
unless its instructions are executed by a CPU. Computer programming (often shortened to programming
or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of
computer programs. Writing computer programs means writing instructions that will make the computer
follow and run a program based on those instructions. Each instruction is relatively simple, yet because of
the computer's speed, it is able to run millions of instructions in a second. A computer program usually
consists of two elements:
Data – characteristics
Code – action
Computer programs (also know as source code) is often written by professionals known as Computer
Programmers (simply programmers). Source code is written in one of programming languages. A
programming language is an artificial language that can be used to control the behavior of a machine,
particularly a computer. Programming languages, like natural language (such as Afan Oromo, Amharic), are
defined by syntactic and semantic rules which describe their structure and meaning respectively. The syntax
of a language describes the possible combinations of symbols that form a syntactically correct program. The
meaning given to a combination of symbols is handled by semantics. Many programming languages have
some form of written specification of their syntax and semantics; some are defined only by an official
implementation. In general, programming languages allow humans to communicate instructions to
machines.
Available programming languages come in a variety of forms and types. Thousands of different
programming languages have been developed, used, and discarded. Programming languages can be divided
in to two major categories: low-level and high-level languages.
Low-level languages
Computers only understand one language and that is binary language or the language of 1s and 0s. Binary
language is also known as machine language, one of low-level languages. In the initial years of computer
programming, all the instructions were given in binary form. Although the computer easily understood these
programs, it proved too difficult for a normal human being to remember all the instructions in the form of 0s
and 1s. Therefore, computers remained mystery to a common person until other languages such as assembly
Prepared by Dept of IT,2022
2
College of Engineering and Technology Dept. of Information Technology
Basic Programming
language was developed, which were easier to learn and understand. Assembly language correspondences
symbolic instructions and executable machine codes and was created to use letters (called mnemonics) to
each machine language instructions to make it easier to remember or write. For example:
ADD A, B – adds two numbers in memory location A and B
Assembly language is nothing more than a symbolic representation of machine code, which allows symbolic
designation of memory locations. However, no matter how close assembly language is to machine code,
computers still cannot understand it. The assembly language must be translated to machine code by a
separate program called assembler. The machine instruction created by the assembler from the original
program (source code) is called object code. Thus assembly languages are unique to a specific computer
(machine). Assemblers are written for each unique machine language.
High-level languages
Although programming in assembly language is not as difficult and error prone as stringing together ones
and zeros, it is slow and cumbersome. In addition it is hardware specific. The lack of portability between
different computers led to the development of high-level languages—so called because they permitted a
programmer to ignore many low-level details of the computer's hardware. Further, it was recognized that the
closer the syntax, rules, and mnemonics of the programming language could be to "natural language" the
less likely it became that the programmer would inadvertently introduce errors (called "bugs") into the
program. High-level languages are more English-like and, therefore, make it easier for programmers to
"think" in the programming language. High-level languages also require translation to machine language
before execution. This translation is accomplished by either a compiler or an interpreter. Compilers translate
the entire source code program before execution. Interpreters translate source code programs one line at a
time. Interpreters are more interactive than compilers. FORTRAN (FORmula TRANslator), BASIC
(Bingers All Purpose Symbolic Instruction Code), PASCAL, C, C++, Java are some examples of high-level
languages.
…………………………………………….
The question of which language is best is one that consumes a lot of time and energy among computer
professionals. Every language has its strengths and weaknesses. For example, FORTRAN is a particularly
good language for processing numerical data, but it does not lend itself very well to organizing large
programs. Pascal is very good for writing well-structured and readable programs, but it is not as flexible as
the C programming language. C++ embodies powerful object-oriented features
As might be expected in a dynamic and evolving field, there is no single standard for classifying
programming languages. Another most fundamental ways programming languages are characterized
(categorized) is by programming paradigm. A programming paradigm provides the programmer's view of
code execution. The most influential paradigms are examined in the next three sections, in approximate
chronological order.
Structured programming is a special type of procedural programming. It provides additional tools to manage
the problems that larger programs were creating. Structured programming requires that programmers break
program structure into small pieces of code that are easily understood. It also frowns upon the use of global
variables and instead uses variables local to each subroutine. One of the well-known features of structural
programming is that it does not allow the use of the GOTO statement. It is often associated with a "top-
down" approach to design. The top-down approach begins with an initial overview of the system that
contains minimal details about the different parts. Subsequent design iterations then add increasing detail to
the components until the design is complete.
The most popular structured programming languages include C, Ada, and Pascal.
1.2.1 Pseudocode
Pseudocode (derived from pseudo and code) is a compact and informal high-level description of a computer
algorithm that uses the structural conventions of programming languages, but typically omits detailes such
as subroutines, variables declarations and system-specific syntax. The programming language is augmented
with natural language descriptions of the details, where convenient, or with compact mathematical notation.
The purpose of using pseudocode is that it may be easier for humans to read than conventional programming
languages, and that it may be a compact and environment-independent generic description of the key
principles of an algorithm. No standard for pseudocode syntax exists, as a program in pseudocode is not an
executable program. As the name suggests, pseudocode generally does not actually obey the synatx rules of
any particular language; there is no systematic standard form, although any particular writer will generally
borrow the appearance of a particular language.
The programming process is a complicated one. You must first understand the program specifications, of
course, then you need to organize your thoughts and create the program. This is a difficult task when the
Prepared by Dept of IT,2022
4
College of Engineering and Technology Dept. of Information Technology
Basic Programming
program is not trivial (i.e. easy). You must break the main tasks that must be accomplished into smaller ones
in order to be able to eventually write fully developed code. Writing pseudocode will save you time later
during the construction & testing phase of a program's development.
Example:
Write a program that obtains two integer numbers from the user. It will print out the sum of
those numbers.
Pseudocode:
CelsusToFarh
(main func)
centigard Fahrenheit
centigard
1.2.3 Flowchart
A flowchart (also spelled flow-chart and flow chart) is a schematic representation of an algorithm or a
process. The advantage of flowchart is it does not depend on any particular programming language, so that
it can used, to translate an algorithm to more than one programming language. Flowchart uses different
symbols (geometrical shapes) to represent different processes. The following table shows some of the
common symbols.
Prepared by Dept of IT,2022
5
College of Engineering and Technology Dept. of Information Technology
Basic Programming
Example 1: - Draw flow chart of an algorithm to add two numbers and display their result.
Algorithm description
Read the rules of the two numbers (A and B)
Add A and B
Assign the sum of A and B to C
Display the result ( c)
The flow chart
Start
Read A, B
C= A+B
Print C
End
Example 2: Write an algorithm description and draw a flow chart to check a number is negative or not.
Algorithm description.
Prepared by Dept of IT,2022
6
College of Engineering and Technology Dept. of Information Technology
Basic Programming
1/ Read a number x
2/ If x is less than zero write a message negative
else write a message not negative
Some times there are conditions in which it is necessary to execute a group of statements repeatedly. Until
some condition is satisfied. This condition is called a loop. Loop is a sequence of instructions, which is
repeated until some specific condition occurs. A loop normally consists of four parts. These are:
Initialization: - Setting of variables of the computation to their initial values and setting the counter for
determining to exit from the loop.
Computation: - Processing
Test: - Every loop must have some way of exiting from it or else the program would endlessly remain in a
loop.
Increment: - Re-initialization of the loop for the next loop.
Example 3: - Write the algorithmic description and draw a flow chart to find the following sum.
Sum = 1+2+3+…. + 50
Algorithmic description
1. Initialize sum to 0 and counter to 1
1.1.If the counter is less than or equal to 50
2. Write sum
The Systems Development Life Cycle (SDLC) is a conceptual model used in project management that
describes the stages involved in a computerized system development project from an initial feasibility study
through maintenance of the completed application. The phases of SDLC is discussed below briefly.
The first step is to identify a need for the new system. This will include determining whether a business
problem or opportunity exists, conducting a feasibility study to determine if the proposed solution is cost
effective, and developing a project plan.
This process may involve end users who come up with an idea for improving their work or may only involve
IS people. Ideally, the process occurs in tandem with a review of the organization's strategic plan to ensure
that IT is being used to help the organization achieve its strategic objectives. Management may need to
approve concept ideas before any money is budgeted for its development.
A preliminary analysis, determining the nature and scope of the problems to be solved is carried out.
Possible solutions are proposed, describing the cost and benefits. Finally, a preliminary plan for decision
making is produced.
The process of developing a large information system can be very costly, and the investigation stage may
require a preliminary study called a feasibility study, which includes e.g. the following components:
a. Organizational Feasibility
How well the proposed system supports the strategic objectives of the organization.
b. Economic Feasibility
Cost savings
Prepared by Dept of IT,2022
8
College of Engineering and Technology Dept. of Information Technology
Basic Programming
Increased revenue
Decreased investment
Increased profits
c. Technical Feasibility
d. Operational Feasibility
End users must be involved in this process to ensure that the new system will function adequately and meets
their needs and expectations.
The created system design, but must reviewed by users to ensure the design meets users' needs.
1.3.5 Implementation
The real code is written here. Systems implementation is the construction of the new system and its delivery
into production or day-to-day operation. The key to understanding the implementation phase is to realize
that there is a lot more to be done than programming. Implementation requires programming, but it also
requires database creation and population, and network installation and testing. You also need to make sure
the people are taken care of with effective training and documentation. Finally, if you expect your
development skills to improve over time, you need to conduct a review of the lessons learned.
the system works on the intended platform and with the expected volume of data (volume testing) and that
the system does what the user requires (acceptance/beta testing).
1.3.8 Maintenance
What happens during the rest of the software's life: changes, correction, additions, moves to a different
computing platform and more. This, the least glamorous and perhaps most important step of all, goes on
seemingly forever.