Chapter 1
Chapter 1
Programming
Ntiamoah Nkansah B.SC (Hons)Information
Technology
Lesson Objectives
What is a computer Programming Language?
Generations of computer Programming
Languages
Evaluating Computer Programming
Languages
Introduction to structured Programming
language
An introduction to Object Oriented
Programming
What is a Computer Programming
Language?
Language is the basis of communication. Without a
language there will be no effective communication (sound,
writing or gestures)
There is not one absolute definition of what a computer
programming language is
Programming languages allows computers and humans to
communicate
Computers understand logic expressed mathematically
through what is known as machine code which is in 0’s
and 1’s and human beings understand natural language
Programming languages allows us to write in human
understanding form and then the language is translated
into a form that the computer can understand
What is a Computer Programming
Language?
Let us discuss this definitions:
A computer programming language has been defined as a
tool to help the programmer
A programming language is a way of writing that can be
read by both human beings and machines
A sequence of instructions for a machine to carry out
A way for human beings to communicate with a
machine which is unable to understand natural
language
It offers a way of writing algorithms that can be
understood by both humans and machines.
A computer program offers a human standard way of
expressing algorithms to solve a particular program.
What is a Computer Programming
Language?
In your own definition of what a computer
programming language is?
What is a Computer Programming
Language?
My worked on Definition
A programming language is a tool which offers a means
of writing logical set of instructions (algorithms) that
can be understood by both human beings and machines
Examples of Computer Programming Languages
C, Pascal
Fortran, Cobol
Java, Visual Basic
C#, Prolog,
SQL, Action Script,
etc
What is a Computer Programming
Language?
Algorithm
A systematic procedure that produces –in a
finite number of steps – the answer to a
question or a solution to a problem
Any computing problem can be solved by
executing a series of actions in a specific order.
A procedure for solving a problem in terms of
The actions to be executed and
The order in which the actions are to be executed is
called an algorithm.
What is a Computer Programming
Language?
Example:
Rise and shine Algorithm
(1) Get out of bed (2) take off pajamas
(3) take a shower,
(4) get dressed (5) eat breakfast, (6)
carpool to school
Change sequence of tasks
(1) Get out of bed, (2) take off pajamas,
(3) get dressed,
(4) take a shower,
(5) eat breakfast, (6) carpool to school
Generations of Computer Programming
Languages
There are five (5) generations of computer
programming languages (PL)
First generation PL
Second generation PL
Third generation PL
Fourth generation PL
Fifth generation PL
Every computer generation has it short falls.
New generations of computer languages
addresses this short falls and add more
features and capabilities
Generations of Computer Programming
Languages
First Generation Language
They were machine languages.
Instructions and addresses were numerical.
They were machine dependent
Advantages
The code a user writes can run very fast and efficiently, since it is
directly executed by the CPU.
Disadvantages
Computers were tedious or tiresome to program (learn set of
numeric digits and how to combine then to create instructions.
It was prone to errors
Only computer scientist and professional s were programming
the computer
It was platform dependent
Generations of Computer Programming
Languages
Second Generation languages
Programming languages were still machine
dependent.
Instructions and addresses where symbolic.
A translator called the assembler was used to
translate symbols to machine form.
Examples of 2GL are IBM BAL, and VAX
Macro, etc
Generations of Computer Programming
Languages
Advantages
Refer to disadvantages in the previous
generation
Disadvantages
Programmer require many instructions to
accomplish a simple task
It was still platform dependent
Generations of Computer Programming
Languages
Third Generation Languages
Allow the programmer to concentrate on the
problem instead of the machine they were writing
for.
They are called high level programming languages.
Translator were the compilers and interpreters but
not the assembler.
This is the era of structured programming and
Database management systems and Object
Oriented programming.
Examples FORTRAN, COBOL, Pascal, C, BASIC, C+
+, java, C#, etc
Generations of Computer Programming
Languages
Advantages
Few instructions could accomplish a huge task
Issues of platform dependency was resolved
Disadvantages
It is slow to translate depending on users specs
A lot of brain-intensive work is involved
Generations of Computer Programming
Languages
Forth Generation Languages
They are known as non-procedural languages.
They concentrate on what you want to do rather than
how you want to do it.
Examples include report generators, form generators,
CASE tools, Data Management tools (SAS, SPSS, Stata),
SQL, Postscript, etc
Advantages
Increase in productivity (more achieved in a shortest
possible time)
Disadvantages
It turns to resource intensive and turns slow down
systems
Generations of Computer Programming
Languages
fifth Generation Computers
Are normally concerned with Artificial Intelligence, fuzzy
logic and neural networks.
This language generation allows computers to think for
themselves like human beings by drawing inference using
programmed information in large database
The databases programmed in a specialized area of study
shows a significant expertise greater than humans
Improvements in the fourth generation languages now
carried features where users did not need any
programming knowledge. Little or no coding and computer
aided design with graphics provides an easy to use product
that can generate new applications
Example is prolog
Debate
Intelligence has been defined as the ability to
understand and think about things and to
gain and use knowledge
Since 5th generation programming languages
have empowered computers to thinks and
behave like human beings and they can think
faster, seems to have all answers to human
problems, are more reliable and billion times
faster than humans, can we conclude that
Computers are more intelligent than humans?
Natural Intelligence vs. Artificial
intelligence
Learning
Humans can acquire knowledge through experimenting
Computers can acquire knowledge through direct gathering of
information (from books, web-sites, conversation
Information retrieval from the internal memory ability
Retrieval speed: machines are more faster than computers
Retrieval accuracy: machines
to
Objects have states (attributes) and behavior
(methods).
An object’s state describes it. An object’s
behavior is the things that it knows how to do
Object Oriented Programming Design
Principles
Examples
Car
States
Engine type, make, color, etc
Behavior
Accelerate, brake, change gear, etc
Dog
States
Name, breed, color
Behaviors
Snoring, barking, chasing
Human being
Attributes
Height, age, height, nationality
Behavior
Eating, sleeping, drinking, playing, etc
Object Oriented Programming Design
Principles
An object is an instance of a class.
A Class is used as templates to create other
objects.
Example
A persons class can be used to create or
instantiate other persons.
Note that a person’s classes can be extended to
create a population.
Classes also have attributes and operations or
behavior
Object Oriented Programming Design
Principles
Classification
Classification looks at the shared attributes
and behavior to create or describe classes of
objects
Example, you can say that lizards, crocodiles,
chameleons may belong to a class known as
reptiles
All reptiles shares attributes such as size and
color and behavior such as laying of eggs
Object Oriented Programming Design
Principles
Types of classes
The abstract class
The concrete class
An abstract class may have one or more
subclasses but never an instance. A reptile is
an example of an abstract class
A concrete class however is a class than can
have one or more subclasses and / or
instances. Lizards and crocodiles are
examples of concrete classes
Object Oriented Programming Design
Principles
Encapsulation (information hiding) and abstraction
Encapsulation is also referred to as black box technology.
With encapsulation, objects bundles together its attributes
and its operations so that they are inseparable, so that it is
only the object that knows about it and can act on it.
The advantage with encapsulation is that, it reduces the
potential for errors.
Although, objects hide its operations from the outside
world, it does offer a means of communication with the
outside world.
This means of communication with the outside world is
known as interface.
Object Oriented Programming Design
Principles
Abstraction
The advantage with abstraction is that, it enables the developer to
re-use a class and filter out operations and attributes that are
superfluous to needs
Messages and Operations
When an object receives a message from another object, it activates
a method or operation.
For example, a remote control sends a message to a television set to
perform an operation such as change channel.
The process of passing a message from a message sender to a
message receiver is termed message passing.
Massage may also contain arguments or parameters to clarify the
request.
Example, a remote can passes an argument to a television set to
change channel to a particular channel or the reduce the volume by
one unit
Object Oriented Programming Design
Principles
Relationships (inheritance and association)
Inheritance
Classification looks at the shared attributes and behavior to create or
describe classes of objects.
Example, you can say that lizards, crocodiles, chameleons may belong
to a class known as reptiles
All reptiles shares attributes such as size and color and behavior such
as laying of eggs
Individual objects of the same type are linked hierarchically to an
abstract super class.
Subtype defines relationships between similar objects.
Sub types are about inheritance or generalization.
Sub types forms relationship “is a” or “a kind of “relationship with
its super classes.
For example: a bus is a kind of vehicle just as a car is also a vehicle.
Object Oriented Programming Design
Principles
Association
Association represents a relationship between different
objects.
For example, a customer may rent a number of videos,
a person works in a company, a company has a number
of offices, etc
There is a line of label between objects called role
name to state the relationship between objects.
The addition of arrow heads to the association’s lines
show the direction in which messages flow which can
either be unidirectional (moves in one direction only)
or bi-directional (moves in both directions between
objects).
Object Oriented Programming Design
Principles
Multiplicity
Multiplicity is concerned with how many
objects may be involved in a relationship
Polymorphism
Polymorphism knows that each object knows
that each object knows how it is supposed to
perform an operation even though it may have
the same name as another object’s operations
End…
End of chapter 1