Lecture – 01 & 02
Computer Programming
Second Semester
Contents
• Introduction to problem solving,
• a brief review of Von-Neumann architecture,
• Introduction to programming,
• role of compiler and linker,
• introduction to algorithms,
• basic data types and variables,
• input/output constructs, arithmetic,
• comparison and logical operators,
2
Contents
• conditional statements and execution flow for conditional statements,
• repetitive statements and execution flow for repetitive statements,
• lists and their memory organization,
• multi- dimensional lists, introduction to modular programming,
• function definition and calling,
• stack rolling and unrolling,
• string and string operations,
• pointers/references,
• static and dynamic memory allocation,
• File I/O operations
2
Computer Programming
4
Computer Programming
• It is the process of giving instructions (commands) to the computer to do a
meaningful task.
• It is an act of teaching the computer on how to do a task.
• The art and science of creating instructions for a computer to follow.
• Creating a sequence of instructions to enable the computer to do something.
5
Why Programming?
6
Why Programming?
• Computer is just a dumb machine made up of different electronic
components. It is like a box which cannot do anything by itself.
• It is the user who tells the computer “what it has to do?”
• If we need our computer to perform some task, we first have to teach the
computer in detail “how it will accomplish that task?”
• Once the computer is taught about a particular task, it will completely obey
it but cannot do anything that it is not taught to.
7
Why Programming?
• Like the humans, we can teach the computer through communicating with it
using a particular language.
• The language that computer understands is machine language, also called
as binary language. Machine language is the language of 0s and 1s.
• We give detailed instructions to the computer to solve a particular task.
Programming is the term that refers to teaching, instructing or giving
commands to the computer.
8
Why Programming?
• Programming is more about problem solving skills than writing the code
itself.
• Programming teaches you how to understand, analyze and solve the
problems. It enhances your analytical reasoning abilities and helps you cope
with daily real life problems as well.
• Hence learning to program is important because it develops analytical and
problem solving abilities.
9
Programmer
• The person who gives the instructions (commands) to the computer is
known as the programmer.
• A person who designs and writes computer programs.
10
Instruction
DO THIS!
11
Instruction
• Instruction is any command given to the computer.
• For example:
1) Add two variables A and B
2) Display result
3) Read file
• Each of these is the individual instruction to the computer.
12
Program
NOW DO THIS!
NOW DO THIS!
NOW DO THIS!
NOW DO THIS!
NOW DO THIS!
13
Program
• Program is a set (collection) of instruction to do a meaningful task.
• A sequence of instructions that are interpreted and executed by a computer.
It can be made of a single or hundred of instructions.
• For example: In order to teach the computer on how to calculate average of
three numbers? We need to give multiple instructions to the computer to do
the task.
14
Program
Instruction 1: Get first number from the user and store it in A variable
Instruction 2: Get second number from the user and store it in B variable
Instruction 3: Get third number from the user and store it in C variable
Instruction 4: Add A, B, C and store the result in SUM variable
Instruction 5: Divide SUM by 3 and store result in AVG variable
Instruction 6: Display AVG variable
• Instructions 1-6 are used to solve a single task. This collection of instruction
is known as a program.
15
Programming Language
16
Programming Language
• A programming language is an artificial language designed to
communicate instructions to a computer.
• A programming language is a notation for writing programs.
• A vocabulary and set of grammatical rules for instructing a computer to
perform specific tasks.
17
Programming Language
• Each language has a unique set of keywords (special words that it
understands) and a special syntax (format) for organizing program
instructions.
• There are many programming languages. For example:
• GW Basic • JAVA • Python
• C • Pascal • C#
• C++ • COBOL
18
Types of Programming Languages
• There are three types of programming languages:
19
Low-Level Language
Machine (Computer) Human (Programmer)
LANGUAGE
A language which is closer to machine (computer)
20
Low-Level Language
• A low level language is one which is closer to the machine (computer).
• It is easier for machines to understand and difficult for humans to
understand.
• It is faster in execution as compared to high and middle level languages.
21
Low-Level Language
• Two of the types of low level languages are:
22
Machine Language
• It is one of the low level language.
• It is the language of 0s and 1s.
• Machine languages are the only languages directly understood by the
computers.
• While easily understood by computers, machine languages are almost
impossible for humans to use because they consist entirely of numbers (0s
and 1s).
23
Machine Language
• It is the native language of the machines (computers).
• Here all the instructions are written as code of binary sequence. For
example:
• In order to do addition, the code is: 10010001
• In order to decrement a number by one, the code is: 11011011
• In order to move data from one place to another, the code is:
10000111
24
Machine Language
• There are hundreds of instructions and each instruction has a binary
code.
• Is it possible to remember all the codes of hundreds of instruction?
• Obviously not! Hence machine language almost impossible to
understand.
25
Machine Language
• Machine language program example:
10010010
11001010
01001010
11110101
00000101
00101000
11101010
10101010
26
Assembly Language
• Assembly language is same as machine language but uses English like
words to represent individual operations.
• For example: Instead of binary codes it uses : ADD, MOV, SUB, INC
• Assembly language is also a low-level language.
• It is easier than the machine language but still it is very difficult to control
a larger program using assembly.
27
Assembly Language
• As assembly language contains English like words, which will not be
understood by the computer (because it only understands 0s and 1s)
• A translator first converts the assembly language program into machine
language program.
• Translator used with assembly language is called Assembler.
28
Assembly Language
• Assembly language program example:
MVI A, 05h
MVI B, 9Ah
ADD B
INC A
STA 8200h
HLT
29
High-Level Language
Machine (Computer) Human (Programmer)
LANGUAGE
A language which is closer to human (programmer)
30
High-Level Language
• A high level language is one which is closer to the human
(programmer).
• It is easier for humans to understand and difficult for machines
to understand.
• It is slower in execution as compared to low level languages.
31
High-Level Language
• Like assembly language, it also uses English like words for the
operations.
• For example: for, if, else, break, continue, while, include,
using, import
• It is more easier than assembly language.
32
High-Level Language
• Some of the high level programming languages are:
• GW Basic • COBOL • J#
• C++ • Python • Ruby
• JAVA • C# • PHP
• Pascal • Visual Basic
33
High-Level Language
• High level language program example:
int main()
{
int a = 5;
int b = 6;
if(a > b)
cout<<“First number is greater.”;
else
cout<<“Second number is greater.”;
}
34
Middle-Level Language
Machine (Computer) Human (Programmer)
LANGUAGE
A language which is some how closer to machine as well as human
35
Middle-Level Language
• A middle level language is one which is closer to machine
(computer) as well as to human (programmer).
• A language that has the features of both low level and high
level languages.
• More formally, a high level language that allows you to write
low level programs in it is called as middle level language.
36
Middle-Level Language
• Some of the middle level programming languages are:
• C
• IBM PL/S (Programming Language/Systems)
• BCPL (Basic Combined Programming Language)
• BLISS (Bill's Language for Implementing System Software)
37
Source Code and Object Code
Source Code Object Code
• The set of instructions written in any • The set of instructions written in
language other than machine language is machine language is called as object
called as source code. code. It is also known as machine code.
• It is not directly understood by the • It is the only code which is directly
machine (computer). understood by the machine (computer).
38
Source Code and Object Code
Source Code Object Code
• It is in the form of text. • It is in the form of binary numbers.
• It is human readable. • It is machine (computer) readable.
• It is generated by human (programmer). • It is generated by the language translator.
• It is input to the language translator. • It is the output of the language translator.
39
Language Translators
40
Language Translators
• Language translator is a program that converts the source code
in to the object code.
CONVERT
Source Code Translator Object Code
Language Translator
41
Why Language Translators?
• Computer only understands object code (machine code).
• It does not understand any source code.
• There must be a program that converts source code in to the object code
so that the computer can understand it.
• The language translator is one which does this job.
• The programmer writes the source code and then translator converts it
in machine readable format (object code).
42
Types of Language Translators
• There are three types of language translator:
43
Assembler
• Assembler is the language translator that converts assembly
language code in to the object code (machine code).
CONVERT
Assembly
Assembler Object Code
Source Code
44
Compiler
• Compiler is the language translator that converts high level
language code in to the object code (machine code).
• It converts the whole code at a time.
CONVERT
High-Level
Compiler Object Code
Source Code
45
Compiler
Program Read whole Program
Line 1 : Instruction 1 Line 1 : Instruction 1
Line 2 : Instruction 2 Line 2 : Instruction 2 Convert whole
Line 3 : Instruction 3 Line 3 : Instruction 3 program in to object Execute
Line 4 : Instruction 4 Line 4 : Instruction 4 code
Line 5 : Instruction 5 Line 5 : Instruction 5
1 2 3 4
46
Interpreter
• Interpreter is the language translator that converts high level
language code in to the object code (machine code).
• It converts the code line by line.
CONVERT
High-Level
Interpreter Object Code
Source Code
47
Interpreter
Program
Line 1 : Instruction 1 Read Line 1 Convert in to object code Execute 2
Line 2 : Instruction 2 Read Line 2 Convert in to object code Execute 3
Line 3 : Instruction 3 Read Line 3 Convert in to object code Execute 4
Line 4 : Instruction 4 Read Line 4 Convert in to object code Execute 5
Line 5 : Instruction 5 Read Line 5 Convert in to object code Execute 6
48
Difference between Compiler and Interpreter
Compiler Interpreter
• It converts whole code at a time. • It converts the code line by line.
• It is faster. • It is slower.
• Requires more memory. • Requires less memory.
• Errors are displayed after entire program • Errors are displayed for every instruction
is checked. interpreted (if any).
• Example: C, C++, JAVA. • Example: GW BASIC, Ruby, Python
49
Bug
50
Bug
• An error or defect occurred inside a computer program or
hardware that causes it to produce an incorrect or unexpected
result, or to behave in unintended ways is called as a bug.
• Most of the bugs arise from mistakes and errors made by
programmer in source code.
51
Bug
• The term bug was used by Grace Hopper in 1946.
• Hopper used to work on Mark II computer, there some error
occurred in the system. The cause of the error was a moth
(bug) trapped in a relay creating short circuit.
• That caused the term bug to be coined.
52
Debugging
53
Debugging
• It is the process of finding and fixing the bugs (errors) in the
program.
• It is the process of removing errors.
• The programmer manually does this by examining the source
code.
54