A.
What is computer programming?
The set of statements, people used to communicate
with computers these are similar to human language. The results of the statements are translated
into machine code, which computers understand.
Programming
languages fall into three broad categories:
1. Machine languages
2. Assembly languages
3. Higher-level languages
1. Machine languages
2. Assembly languages
3. Higher-level languages
B.
The Evolution of Programming Languages
1.
Machine Languages - (first-generation
languages :1GL)
•
Machine 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.
2.
Assembly Languages - (second-generation
languages :2GL)
•
Assembly 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.
3.
Higher-Level Languages – (Third-generation languages, Fourth-generation
languages, Fifth-generation 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:
I.
Third-generation
languages (3GL)
II.
Fourth-generation
languages (4GL)
III.
Fifth-generation
languages (5GL)
Third-generation
languages
• Third-generation languages (3GLs) are the first to use true English-like
phrasing, making them easier to use than previous languages.
•
3GLs are portable; meaning the object code created for one type of system
can be translated for use on a different type of system.
The
following languages are 3GLs:
FORTAN C
COBOL C++
BASIC Java
Pascal ActiveX
A Typical C Program Development
Environment:
Fourth-Generation Languages:
•
Fourth-generation languages (4GLs) are even easier to use than 3GLs.
•
4GLs may use a text-based environment (like a 3GL) or may allow the
programmer to work in a visual environment, using graphical tools.
•
The following languages are 4GLs:
Visual Basic (VB)
VisualAge
Authoring
environments
Fifth-Generation Languages:
•
Fifth-generation languages (5GLs) are an issue of debate in the
programming community – some programmers cannot
agree that they even exist.
•
These high-level languages would use artificial intelligence to create
software, making 5GLs extremely difficult to develop.
•
Solve problems using constraints rather than algorithms, used in
Artificial Intelligence
E.g.: Prolog
A.
Overall
Description
How
do you plan on programming a computer? Are you going to create a simple
calculator? a document editing application? a multi-functional interactive
game? Or something else? Whatever your plans, the road ahead is an interesting
one. Computer programming is a challenging and rewarding discipline.
Computer
programming is defined as telling a computer what to do through a special set
of instructions which are then interpreted by the computer to perform some
task(s). These instructions can be specified in one or more programming
languages including C#.net, Java, C, and C++.
A
computer goes through a set of steps whose purpose is to achieve something.
These steps are instructed to the computer by computer programs. Essentially,
computer programming is the process by which these programs are designed and
implemented.
There
are many advantages to learning computer programming such as gaining new
skills, being able to tell the computer what to do, and becoming better
acquainted with computers. Whether you are a computer hobbyist, a student, an
IT professional, or are just curious about the subject, learning how to program
a computer will be highly beneficial.
While
computer programming can be a great tool used to achieve many things, there are
a few misconceptions about it. Let's clear them up!
• You need to have some kind of special software to
write programs
It
does help, but such software is not required, and for beginners it is better to
work without it for the purpose of gaining experience.
• To be a computer programmer, you must have vast technical knowledge
While
it is true that some computer programming languages are highly technical, most
do not require you to have vast technical knowledge. So don’t worry, you don't
have to be an expert to write code.
With
computer programming, you tell the computer what to do. The more you master the
subject, the more power to you!
B. Computer programming Artifacts (Basically
key parts each part will be discuss later with full detail)
The
concepts discussed on this page are essential knowledge to anyone who wants to
become skilled in computer programming. While some are not universal, these concepts
are present in the majority of computer programming languages and/or are a
fundamental part of the programming process.
• Algorithm
A set of steps for carrying out a specific task.
Algorithms are used extensively in computer programming to arrive at a solution
for a problem. The process of creating an algorithm involves documenting all
the necessary steps needed to arrive at the solution and how to perform each
step. A real world example of an algorithm would be a recipe. The instructions
of a typical recipe (add ingredients, mix, stir, etc.) are an algorithm.
• Source code
The actual text used to write the instructions for a
computer program. This text is then translated into something meaningful the
computer can understand.
• Compiler
A software tool that translates source code into data
that the computer can understand. Specifically, a compiler is used to turn
source code into object code. The object code is then passed through a program
called a linker which turns it into an executable program.
• Data type
The classification of pieces of information in a
program. The amount of different data types varies between languages.
Typically, there are data types for integers (whole numbers), floating-point
numbers (numbers with a decimal part), and single characters. To distinguish
between different data types, a computer uses special internal codes.
• Variable
A container which represents a value in a program.
Variables can store different types of data including numeric values, single
characters, and text strings. The value of a variable can change all throughout
a program.
• Constant
The same thing as a variable with one major difference
- the value of a constant does not change, while the value of a variable can
change all throughout a program.
• Conditional
A set of code that will execute only if a certain
condition is true. Conditionals are used to test expressions and perform
certain operations accordingly. For example, you could test a number input by
the user and if it is too high print the message "The number entered is to
high" and the program exits. Thanks to conditionals, a program can work
differently every time it runs.
• Array
A special type of variable used in many programming
and web languages including PHP, Javascript, and Java that contains a list of
related values. For example, a colors array would contain a list of colors.
• Loop
A segment of code that executes repeatedly based on a
certain condition. Loops are used to perform tasks repeatedly a certain amount
of times. For example, if you needed to print the numbers 1 to 10. You can use
a loop for this task instead of manually printing all the numbers.
• Function
A set of code used to carry out specific tasks. A
function can take parameters which will affect its output as well as return
values. Functions prevent unnecessary redundancy because you can use them as
much as needed instead of retyping some code over and over. For example, if you
need to multiply two numbers, instead of doing the calculation manually every
time, you can supply the data to a function through some parameters which will
do it for you.
• Class
A template for a real world objects to be used in a
program. For example, a programmer can create a car class which represents a
car. This class can contain the properties of a car (color, model, year, etc.)
and functions that specify what the car does (drive, reverse, stop, etc.).
Classes are used in object-oriented programming.
C. Programming Languages
1.
Web Languages
Used
for creating and editing pages on the web. You can do anything from putting
plain text on a webpage, to accessing and retrieving data from a database. Vary
greatly in terms of power and complexity.
I.
HTML
Hyper
Text Markup Language. The core language of the World Wide Web is used to define
the structure and layout of web pages by using various tags and attributes.
Although a fundamental language of the web, HTML is static - content created
with it does not change. HTML is used to specify the content a webpage will
contain, not how the page functions.
II.
XML
Extensible
Markup Language. A language developed by the W3C which works like HTML, but
unlike HTML, allows for custom tags that are defined by programmers. XML allows
for the transmission of data between applications and organizations through the
use of its custom tags.
III.
Javascript
A
language developed by Netscape used to provide dynamic and interactive content
on webpages. With Javascript it is possible to communicate with HTML, create
animations, create calculators, validate forms, and more. Javascript is often
confused with Java, but they are two different languages.
IV.
VBScript
Visual
Basic Scripting Edition. A language developed by Microsoft that works only in
Microsoft's Internet Explorer web browser and web browsers based on the
Internet Explorer engine such as FlashPeak's Slim Browser. VBScript Can be used
to print dates, make calculations, interact with the user, and more. VBScript
is based on Visual Basic, but it is much simpler.
V.
PHP
Hypertext
Preprocessor (it's a recursive acronym). A powerful language used for many
tasks such as data encryption, database access, and form validation. PHP was
originally created in 1994 By Rasmus Lerdorf.
VI.
Java
A
powerful and flexible language created by Sun MicroSystems that can be used to
create applets (a program that is executed from within another program) that
run inside webpages as well as software applications. Things you can do with
Java include interacting with the user, creating graphical programs, reading
from files, and more. Java is often confused with Javascript, but they are two
different languages.
2.
Software Languages
Used
for creating executable programs. You can create anything from simple console
programs that print some text to the screen to entire operating systems. Vary
greatly in terms of power and complexity.
I.
C
An
advanced programming language used for software application development.
Originally developed by Dennis Ritchie at Bell Labs in the 1970's and designed
to be a systems programming language but since then has proven itself to be
able to be used for various software applications such as business programs,
engineering programs, and even games. The UNIX operating system is written in
C.
II.
C++
Descendant
of the C language. The difference between the two languages is that C++ is
object-oriented. C++ was developed by Bjarne Stroustrup at Bell Labs and is a
very popular language for graphical applications.
III.
Visual
Basic
A
language developed by Microsoft based on the BASIC language. Visual Basic is
used for creating Windows applications. The VBScript language (also developed
by Microsoft) is based on Visual Basic.
IV.
Java
A
powerful and flexible language created by Sun Micro Systems that can be used to
create applets (a program that is executed from within another program) that
run inside webpages as well as software applications. Things you can do with
Java include interacting with the user, creating graphical programs, reading
from files, and more. Java is often confused with JavaScript, but they are two
different languages.
D. Basic
Programming Concepts
1.
Procedure-oriented
programming
A
type of programming, where a structured method of creating programs is used.
With procedure-oriented programming, a problem is broken up into parts and each
part is then broken up into further parts. All these parts are known as procedures.
They are separate but work together when needed. A main program centrally
controls them all.
Some
procedure-oriented languages are COBOL, FORTRAN, and C.
2.
Object
oriented programming
A
type of programming where data types representing data structures are defined
by the programmer as well as their properties and the things that can be done
with them. With object-oriented programming, programmers can also create
relationships between data structures and create new data types based on
existing ones by having one data type inherit characteristics from another one.
In
object-oriented programming, data types defined by the programmer are called
classes (templates for a real world object to be used in a program). For
example, a programmer can create a data type that represents a car - a car
class. This class can contain the properties of a car (color, model, year,
etc.) and functions that specify what the car does (drive, reverse, stop, etc.)
Some object-oriented languages are C++, Java,
and PHP.
E. Phases Of Execution Of Computer Programming
1.
Source
Code
2.
Parsing
source code
To
'parse' means to break up into smaller parts. Before source code can be
converted into meaningful data for the computer, it has to be parsed. Once this
happens, source code is ready for the next step which is compilation.
3.
Compiling
source code
Compiling
source code refers to turning it into an actual program.When source code is
compiled, it is turned into an actual program (machine code) through a series
of steps:
4.
Source
code is turned into object code by a compiler
Object
code is the machine code that is actually executed by the computer. A compiler
turns source code into object code, but it is not yet ready to become a
program. Before object code can become a program, it has to pass through a
linker.
5.
Object
code is passed through a linker
A
linker is a program that combines various modules and object code files into an
executable program. Once the data is passed through a linker, an executable
program comes into existence.
NOTE: Machine
code is platform specific. So for example, a program that is compiled on
Windows will not work on Linux.
6.
Interpreting
source code
Interpreting
source code refers to turning it into an intermediate form which is executed by
a program called an interpreter instead of turning source code directly into
machine code like a compiler does.An interpreter interprets the source code
into something that the computer can understand.
Which languages go through which process and why
While
code written in any programming language must be parsed, some code is compiled,
and some code is interpreted.
Code
written in languages used for software development such as C, C++, C#, and
Delphi is compiled. These languages are designed to create executable programs,
so code written in them needs to be compiled.
Code
written in languages used for web development such as Javascript, VBScript,
PERL, and PHP is interpreted. These languages are designed to create web
applications and display data on web pages, not to create executable programs.
So code is written in them needs to be interpreted.
It
is actually possible to either compile or interpret code written in some high
level languages if the circumstances require it. For example, an interpreter is
sometimes used during the development stage of a program because the process of
compiling a program (if it is a large program) can be time consuming.
F.
Summery
Computer
programming is defined as telling a computer what to do through a special set
of instructions which are then interpreted by the computer to perform some
task(s). These instructions can be specified in one or more programming
languages including Java, C, and C++.
A
computer goes through a set of steps whose purpose is to achieve something.
These steps are instructed to the computer by computer programs. Essentially,
computer programming is the process by which these programs are designed and
implemented.
The
advantages to learning computer programming include gaining new skills, being
able to tell the computer what to do, and becoming better acquainted with
computers. Computer programming is a challenging and rewarding discipline.
Whatever you plan on building, the road ahead of you is an interesting one.

