INTRODUCTION
TO
PROGRAMMING
CONCEPTS
PREPARED BY: MR. JOHN PATRICK S.
PAULINO
ICT S112: FUNDAMENTALS OF COMPUTING 1
ICT S112: FUNDAMENTALS OF COMPUTING 2
ICT S112: FUNDAMENTALS OF COMPUTING 3
LANGUAGE
Human Language Computer Language
- Commonly used to express - The languages by which a user
feelings and understand other command a computer to work
person expressions. on the algorithm which a user
- It can be oral or gestural kind has written to get an output.
of communication
ICT S112: FUNDAMENTALS OF COMPUTING 4
DEFINITION OF COMPUTER PROGRAM
A computer program is a series of organized instructions that
directs a computer to perform tasks.
A computer program is a collection of instructions that performs a
specific task when executed by a computer.
ICT S112: FUNDAMENTALS OF COMPUTING 5
DEFINITION OF PROGRAMMING LANGUAGE
A programming language is a set of
Programming languages are use to
words, symbols, and codes that
write application programs which
enables human to communicate with
are used by end users.
computers.
The development of programming
languages has improved considerably Each computer programming
with the ease and ability of language has its own distinctive
programmers to write powerful grammars and syntax and its own
applications programs that can solve manner of expressing ideas.
any task in the world today.
ICT S112: FUNDAMENTALS OF COMPUTING 6
EXAMPLES OF PROGRAMMING LANGUAGE
ICT S112: FUNDAMENTALS OF COMPUTING 7
LEVELS OF PROGRAMMING LANGUAGE
ICT S112: FUNDAMENTALS OF COMPUTING 8
THE EVOLUTION OF PROGRAMMING LANGUAGE
To build programs, people use languages that are like human language. The results
are translated into machine code, which computers understand.
Programming languages fall into three broad categories:
Machine languages
Assembly languages
Higher-level languages
ICT S112: FUNDAMENTALS OF COMPUTING 9
THE EVOLUTION OF PROGRAMMING LANGUAGE –
MACHINE LANGUAGES
Machine languages (first-generation languages) are the most basic
type of computer languages, consisting of strings of numbers the
computer's hardware can use.
Different types of hardware use different machine code.
For example, IBM computers use different machine language than
Apple computers.
ICT S112: FUNDAMENTALS OF COMPUTING 10
THE EVOLUTION OF PROGRAMMING LANGUAGE –
ASSEMBLY LANGUAGES
Assembly languages (second-generation languages) are only
somewhat easier to work with than machine languages.
To create programs in assembly language, developers use cryptic
English-like phrases to represent strings of numbers.
The code is then translated into object code, using a translator
called an assembler.
ICT S112: FUNDAMENTALS OF COMPUTING 11
ICT S112: FUNDAMENTALS OF COMPUTING 12
THE EVOLUTION OF PROGRAMMING LANGUAGE –
HIGHER-LEVEL LANGUAGES
Higher-level languages are more powerful than assembly language and allow the
programmer to work in a more English-like environment.
Higher-level programming languages are divided into three "generations," each more
powerful than the last:
Third-generation languages
Fourth-generation languages
Fifth-generation languages
ICT S112: FUNDAMENTALS OF COMPUTING 13
GENERATIONS OF PROGRAMMING LANGUAGE
ICT S112: FUNDAMENTALS OF COMPUTING 14
GENERATIONS OF PROGRAMMING LANGUAGE
ICT S112: FUNDAMENTALS OF COMPUTING 15
PROGRAMMING LANGUAGE APPROACHES
Structured approach in programming
Object Oriented approach in programming
ICT S112: FUNDAMENTALS OF COMPUTING 16
STRUCTURED PROGRAMMING
Often uses a top-down design model where developers map out
the overall program structure into separate subsections from top to
bottom.
In the top-down design model, programs are drawn as rectangles.
A top-down design means that the whole program is broken down
into smaller sections that are known as modules.
ICT S112: FUNDAMENTALS OF COMPUTING 17
ICT S112: FUNDAMENTALS OF COMPUTING 18
STRUCTURED PROGRAMMING
Structured programming is beneficial for organizing and coding
computer programs which employ a hierarchy of modules. This
means that control is passed downwards only through the hierarchy.
Examples of structured programming language includes Ada, Pascal,
and Fortran.
ICT S112: FUNDAMENTALS OF COMPUTING 19
OBJECT-ORIENTED PROGRAMMING
The object-oriented approach refers to a special type of programming approach
that combines data with functions to create objects.
ICT S112: FUNDAMENTALS OF COMPUTING 20
OBJECT-ORIENTED PROGRAMMING
In an object-oriented program, the object have relationships with
one another.
One of the earliest OOP language is Smalltalk. JAVA, Visual BASIC,
and C++ are examples of popular OOP languages.
ICT S112: FUNDAMENTALS OF COMPUTING 21
ICT S112: FUNDAMENTALS OF COMPUTING 22
DIFFERENCE BETWEEN SP AND OOP
Structured programming often uses
a top-down design model while the
object-oriented programming
approach uses objects.
ICT S112: FUNDAMENTALS OF COMPUTING 23
TRANSLATORS
Assemblers
Compilers
Interpreters
ICT S112: FUNDAMENTALS OF COMPUTING 24
ASSEMBLER
Assembly language is converted into executable machine code by a
utility program referred to as an assembler.
An assembler creates object code by translating assembly language
instructions into opcodes.
ICT S112: FUNDAMENTALS OF COMPUTING 25
COMPILER
A computer program which reads source code and outputs assembly code or
executable code is called compiler.
This software, converts the code written in high-level language into object file.
Compilers translate entire programs into machine code, which can be run later
on the target computer.
Examples of Programming Languages Using compiler :
C
C++
ICT S112: FUNDAMENTALS OF COMPUTING 26
INTERPRETER
Interpreters translate source code into machine language while a
program is running, one line at a time, unlike compiler, which
processes everything at once. In this case a single line is executed at
a time. It is time consuming.
Examples of Programming Languages Using Interpreter :
Lisp
BASIC
ICT S112: FUNDAMENTALS OF COMPUTING 27
SOURCE CODE
Source Code is In the form of Text.
Source Code is Human Readable.
Source Code is Generated by Human.
Source Code is Input Given to Compiler.
ICT S112: FUNDAMENTALS OF COMPUTING 28
OBJECT CODE
Object Code is in the form of Binary Numbers.
Object Code is in Machine Readable.
Object Code is Generated by Compiler.
Object code is Output of Compiler.
ICT S112: FUNDAMENTALS OF COMPUTING 29
PREPROCESSOR
All the preprocessor commands written in a high level language are
processed by the preprocessor before compiler takes over.
Example: "#define MAX_ROWS 10"
Preprocessor finds all the places and replaces MAX_ROWS with
10 in the files of the project.
ICT S112: FUNDAMENTALS OF COMPUTING 30
LINKER
Linker uses the object files created by the compiler and then uses
the predefined library objects to create an executable.
ICT S112: FUNDAMENTALS OF COMPUTING 31
FIVE QUALITIES OF A GOOD PROGRAM
A good program is not necessarily a powerful application but at
the very least, it must pass certain criteria so that it can stand out
among other programs in the market.
If you are a programmer by profession, your main goal in creating
programs is and should always be to satisfy the requirements of your
clients. Aside from attaining this goal, you should also take the
following qualities into consideration when you create your program:
ICT S112: FUNDAMENTALS OF COMPUTING 32
FIVE QUALITIES OF A GOOD PROGRAM
1) It should be free from bugs.
The best thing a programmer can do is to
Program errors normally occur no matter how constantly find bugs in the program or for
careful the programmer is in constructing the largescale applications, enlist the aid of beta
program. Even commercially released applications testers. This will not necessarily eliminate every
are not spared from this buggy predicament. program error but at least it would minimize the
occurrence of such bugs.
ICT S112: FUNDAMENTALS OF COMPUTING 33
2) It must run in an accurate and efficient
manner.
• During quality control, a program must be tested for its
accuracy and efficiency. Not all programs are created
equal. Some programs are not sophisticated enough to FIVE
successfully complete multiple tasks. Others have a QUALITIES OF
slew of powerful features but they take too long to A GOOD
load. As a programmer, it should be your priority to
satisfy your client's needs without neglecting accuracy PROGRAM
and efficiency.
• You must not compromise one for the other, instead,
you should set some kind of equilibrium point which
balances the two qualities.
ICT S112: FUNDAMENTALS OF COMPUTING 34
3) The program's interface must be
accessible and user-friendly.
FIVE • No matter how good a program's features
QUALITIES OF are, a cluttered user interface will most
A GOOD likely drag it down. Don't risk it.
PROGRAM • Potential users will steer clear from your
program unless you have a comprehensive
help file to go along with the messy UI.
35 ICT S112: FUNDAMENTALS OF COMPUTING
FIVE QUALITIES OF A GOOD PROGRAM
4) It should be easy to maintain and doesn't hog system resources.
• What good is a program if it bogs down the entire computer system?
• Sometimes, you must carefully consider an average user's system specifications. If you're
creating a program in a high-end computer and you notice that it runs really smoothly, you
should also make the effort to test it in a system with only the barest necessities.
• Remember that there are still people out there who use relatively low-end computers, so
if you don't want to alienate them, try to put yourself in their shoes. Of course, you should
not sacrifice a program's quality in the process. You must strike a balance in this criterion
as well.
ICT S112: FUNDAMENTALS OF COMPUTING 36
FIVE QUALITIES OF A GOOD PROGRAM
5) The source code is well-organized and optimized
for the best performance.
If your main goal is to share bits and pieces of your
code to the community to showcase your skills as a
programmer, then you should clean it up and trim
down excess code.
It is advisable to organize your code in such a
manner that they will understand your program's
flow.
ICT S112: FUNDAMENTALS OF COMPUTING 37
CHARACTERISTICS OF A GOOD PROGRAM
Every computer requires appropriate instruction set (programs) to perform the
required task. The quality of the processing depends upon the given instructions. If
the instructions are improper or incorrect, then it is obvious that the result will be
superfluous. Therefore, proper and correct instructions should be provided to the
computer so that it can provide the desired output. Hence, a program should be
developed in such a way that it ensures proper functionality of the computer. In
addition, a program should be written in such a manner that it is easier to
understand the underlying logic. A few important characteristics that a computer
program should possess are as follows:
ICT S112: FUNDAMENTALS OF COMPUTING 38
CHARACTERISTICS OF A GOOD PROGRAM
Portability: Portability refers to the
ability of an application to run on
different platforms (operating
systems) with or without minimal
changes. Due to rapid development
in the hardware and the software,
nowadays platform change is a
common phenomenon. Hence, if a
program is developed for a platform,
then the life span of the program is
severely affected.
ICT S112: FUNDAMENTALS OF COMPUTING 39
CHARACTERISTICS OF A GOOD
PROGRAM
Readability: The program should be written in
such a way that it makes other programmers or
users to follow the logic of the program without
much effort. If a program is written structurally, it
helps the programmers to understand their own
program in a better way. Even if some
computational efficiency needs to be sacrificed for
better readability, it is advisable to use a more user-
friendly approach, unless the processing of an
application is of utmost importance.
ICT S112: FUNDAMENTALS OF COMPUTING 40
CHARACTERISTICS OF A GOOD PROGRAM
Efficiency: Every program requires certain
processing time and memory to process the
instructions and data. As the processing power and
memory are the most precious resources of a
computer, a program should be laid out in such a
manner that it utilizes the least amount of memory
and processing time.
ICT S112: FUNDAMENTALS OF COMPUTING 41
CHARACTERISTICS OF A GOOD PROGRAM
Structural: To develop a program,
the task must be broken down into
several subtasks. These subtasks are
developed independently, and each
subtask can perform the assigned job
without the help of any other
subtask. If a program is developed
structurally, it becomes more
readable, and the testing and
documentation process also gets
easier.
ICT S112: FUNDAMENTALS OF COMPUTING 42
CHARACTERISTICS OF A GOOD
PROGRAM
Flexibility: A program should be flexible enough to
handle most of the changes without having to
rewrite the entire program. Most of the programs
are developed for a certain period and they require
modifications from time to time. For example, in
case of payroll management, as the time progresses,
some employees may leave the company while
some others may join. Hence, the payroll application
should be flexible enough to incorporate all the
changes without having to reconstruct the entire
application.
ICT S112: FUNDAMENTALS OF COMPUTING 43
CHARACTERISTICS OF A GOOD PROGRAM
Generality: Apart from flexibility, the program
should also be general. Generality means that if a
program is developed for a task, then it should also
be used for all similar tasks of the same domain.
For example, if a program is developed for an
organization, then it should suit all the other
similar organizations.
ICT S112: FUNDAMENTALS OF COMPUTING 44
CHARACTERISTICS OF A GOOD
PROGRAM
Documentation: Documentation is one of the
most important components of an application
development. Even if a program is developed
following the best programming practices, it will be
rendered useless if the end user is not able to fully
utilize the functionality of the application. A well-
documented application is also useful for other
programmers because even in the absence of the
author, they can understand it.
ICT S112: FUNDAMENTALS OF COMPUTING 45