2. OUTLINE
• Programming Concepts
• Programming Logic
• Program Running
• Components of a Program
• Programming Paradigms
• Structured Programming
• Object Oriented Programming.
• Inheritance.
• Encapsulation and Abstraction
• Polymorphism and Overloading
• Architectural model
3. Programming Concepts
• Programming: Predefined way of telling the computer that what task is to be
performed. Also defined as sequence of instructions.
• Computer Languages: Predefined system of Set of Instructions that a computer
accepts.
– High Level Programming Languages: Usually English Like Instruction set with a
power to build application logic. Usually have an extremely strict syntax rules.
e.g. C, Java, C++, C# etc.
– Low Level Programming Languages: Set of Hardware related Mnemonics for
direct control over processing and input/output functions. E.g. Assembly
Language
– Formatting and Interface Languages: Languages made primarily for the
purpose of User side rendering of information. E.g. HTML, DHTML, XML Etc.
– Data Query Languages: Languages to get and post to structured system of
records called a database. SQL etc.
– Data Definition Languages: Languages to define properties of Data or any type
of content items. E.g. XML Schema (XSD), SQL-DDL (create table etc.)
4. Programming Logic
• Logic/Algorithm: Formulation Involved
in performing a task. For e.g.
– Fahrenheit to Celsius Conversion Formula.
– Writing of Data in a file one character at a
time or one block at a time.
– Compression of image file to a smaller size file.
– Method of following a protocol such as the
HTTP protocol.
Usually these words are interchangeably used
but the word algorithm is more suitable for
specific tasks now performed as a routine for
e.g. image compression is more appropriately
called algorithm while writing to a file may
just be called a simple logic.
5. Program Running
• Interpretation:
– Process of parsing the program instructions one by one
so that it directly produces the desired output.
– For e.g. Javascript is interpreted at the browser to run
the given functionality.
– Errors in the program code are caught at the time of
running the program and are likely hinder application
workflow.
• Compilation:
– Process of parsing the program instructions in one go
and produce an intermediate file that can be directly
run by the host system.
– Errors are required to be removed before compilation is
successfully completed.
– Application workflow is usually not hindered as basic
errors are removed initially. Only unexpected input
conditions produce errors.
6. Programming Instruction Purposes
• The Primary Purposes of
Programming Instructions are.
– To take Input.
– To give Output
– To perform operations.
– To run a program section based on
a condition selection.
– To repeat a section of code based
on condition.
Think that a computer is a generic
machine that can emulate other
machines based on the program it
runs.
INPUT
OUTPUT
OPERATE
SELECTION
REPETITION
7. /* add.c simple C program */
#include <stdio.h>
#define LAST 10
int main()
{
int i, sum = 0;
for ( i = 1; i <= LAST; i++)
{
sum += i;
}
printf("sum = %dn", sum);
return 0;
}
Programming Components (Tokens)
Keywords: The instruction
words used in a certain
language. For eg. INT, IF, THEN,
DO, NEXT, RETURN etc.
Comments:Text not to be
processed.
Identifiers: User
defined data item or
function names.
Operators: Things like +,
-, OR, AND etc.
Separators: ( ), { }, [ ] ; etc
Literals: User provided
strings or numbers etc.
Whitespaces: Tabs, space etc.
Directives: Special instructions
for compiler only.
8. Programming Terms
• Statements: The actions that a program takes are
expressed as Statements.
– Declaration and Assignment (int a=0;)
– Expression (area = 3.14*(radius*radius) )
– Selection or Iteration (if, switch, do, for etc.)
– Jump (goto, break, continue, return etc.)
• Expressions: A sequence of one or more operands
and zero or more operators that can be evaluated
to a single output.
– ((x<10)&&(x>5))||((x > 20)&&(x < 25))
– System.Convert.ToInt32("35")
9. Programming Paradigms
• Declarative: What computation should be
performed and not how to compute it. HTML, CSS,
SQL (Select Query)
• Imperative (requiring attention): That define
sequence of tasks to control flow of computational
algorithm.
– Non-Structured: Allows Jumping randomly by line numbers
or labels. E.g. Basic, Assembly, Cobol, Batch Files.
– Structured: Use only sequence, selection(condition) or
iteration(loop) methods to provide instructions. E.g. C, C#,
Java etc.
10. Structured Programming Models
• Procedural: Grouping of series of instructions as a
procedure (routine, function, subroutine, method,
module) that can be called from multiple places to
undertake the same task again.
• Object Oriented: Allows to define templates generally
called classes, similar to real life definitions that
encapsulates various properties and methods. For. E.g.
real life template “CAR” would mean properties like:
Colour, Body Style, Fuel Type and Methods like:
Driving( ), Changing Gears( ), Opening( ) Doors etc.
The physical interpretations like MARUTI-ALTO,
HONDA-CITY, HUNDAI-SANTRO, TATA-NANO are
understood as the objects of the class CAR. Thus the
name has been given as object oriented
programming or OOP.
11. Object Oriented Programming
• Class: A template definition of data items(properties)
and actions(Methods). For Example the Diagram of
CAR can be a real world metaphor to a class.
• Object: The physical item based on the class
definition is an object. For Example the real CAR
would be an Object. So one can say Objects are
instances of Class.
It is clear that one can have any number of instances
as the physical space permits.
12. OOPS - Inheritance
• Inheritance: One can observe that
even the template definitions have
more definitions of categories within a
template. For . E.g. Definition of a
“Car” can be the main template and
Definition of a “Small_Car” will be as
such a category with in “Car”.
It is clear that the definition of a
“Small_Car” will have all the definition
items included in the definition of a
“Car”. So we can say that class
“Small_Car” can be inherited from its
parent class “Car”. More properties
may follow in the definition of
“Small_Car”.
Class Car
Class Car
Class Small_Car
Class Big_Car
13. OOPS – Encapsulation & Abstraction
• Encapsulation: It is the way where actual methodology of achieving a result is hidden from
the external world users. For e.g. we can define a class CAR as follows.
Class CAR
{
property colour;
Method Steering(turn)
{
if turn is anticlockwise make the front wheel go left;
If turn is clockwise make the front wheel go right;
}
}
Here we see that method Steering( ) is actually hidden behind the class CAR and details of
the method are hidden to the external world and whenever the designer wants he can
change the design of achieving the goal of turning the steering handle. This is called
ENCAPSULATION.
• Abstraction: In above example we can see that user is only required to know about turning
the steering and he is not required to bother about internal system of turning a wheel. So
we can call the Method Steering is as such an ABSTRACT method and its purpose would be
distinctly different from any other method of the class CAR. The purpose we achieve out by
encapsulation is called ABSTRACTION.
14. OOPS: Polymorphism
• Polymorphism: Values of different data types to be handled using a uniform interface . For
e.g. if we assume PedalPush( ) to be method in the class CAR then this method can actually
be behaving in a polymorphic manner if the data parameter type are different, a Clutch, a
Brake or an Accelerator.
Class CAR
{
property WheelSize;
Method PedalPush(PedalTypeClutch)
{
Detach Engine Rotor from Wheel Rotation Rod;
}
Method PedalPush(PedalTypeBrake)
{
Initiate Brake Fluid to Brake Drum;
}
Method PedalPush(PedalTypeClutch, PedalTypeAccelerator)
{
Control Speed of the Car;
}
}
Overloading can be based on parameter type or number of parameters as is obvious from the
above example.
15. OOPS: Operator Overloading
• Operator Overloading: Providing polymorphic behaviour to
operators is called Operator Overloading. While overloading
an operator different functionality is provided on operands
based on the type of operands. Consider following case of
action of + (addition) operator.
1) 1 + 2 = 3
2) 2.1 + 0.02 = 2.02
3) [1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6]
4) “Girl" + “friend" = “Girlfriend“
Here case 1 is integer addition, case 2 is floating point addition,
case 3 is list consolidation and case 4 is string concatenation. So
the code call has to be based on types of operand that are
added.
One can also see that operators are a special case
implementation of functions only. For e.g. x + y*z can be
written as add(x, multiply(y,z))
16. Architectural Models – Client Server
• A server application that is accessed directly by multiple clients. Also
known as 2 –tier model.
SERVER
(Like Webserver such as IIS)
ASP, ASP.NET etc run at the Server
end and the converted data as HTML,
Javascript is sent to the client. Main
application logic and database
access is done at the server.
CLIENT
(Like Browser)
HTML, DHTML and Javascript are
interpreted at the client
17. Architectural Models – 3 Tier
• The purpose of introducing an
additional layer is to separate
the business computation logic
or security logic from data
handling logic.
• Layers are often implemented
on physically separate
computer systems.
• This model is often extended to
more tiers called n-tier
architecture.
Middle Tier
(Contains the Presentation Layer
that serves the client interface and
the Business Logic Layer that
handles the computational process,
security may also be built-in here)
CLIENT
(Runs Converted Data from the
Presentation Layer)
Last Tier
(Usually Contains the Database
Interaction interface and the storage)
19. • Ask and guide me at
sunmitraeducation@gmail.com
• Share this information with as
many people as possible.
• Keep visiting www.sunmitra.com
for programme updates.