CS101: Introduction to Computing
Fall 2015
Instructors:
Dr. Fawad Hussain, Dr. Rashad Jilani, Engr.
Ahmad Sohaib, Engr. Zawar Hussain, Engr.
Usman Raza & Dr. Ahmar Rashid.
Faculty of Computer Science and
Engineering
GIK Institute of Engineering Sciences and
Technology
Computer
Programming
Computer Programming
Computer
programming is the process of
writing instructions that direct a computer to
carry out specific tasks
computer program is a set of step-bystep instructions that tell a computer how to
solve a problem or carry out a task
The instructions that make up a computer program
are often referred to as code
A program is written in a computer programming
language
Programming Languages (-1-)
A programming language is an artificial
language designed for creating instructions that a
computer can carry out
In contrast, the languages we speak
natural languages
[e.g., English / Urdu] are
Programming languages differ from natural
languages in that
natural languages are used for interaction between people
programming languages allow humans to communicate
instructions to machines as well as machine-to-machine
interaction
Programming Languages (-2-)
Programming languages can be divided into two major
categories
Low-level languages
Require the programmer to write instructions for the lowest level of
computers hardware
Examples: Machine Language, Assembly Language
High-level languages
Easy for computer to understand; Difficult for humans
Makes programming process easier by providing commands such
as PRINT or WRITE instead of unintelligible strings of 1s and 0s
Examples: FORTRAN, C, C++, Java, Python
Languages can also be categorized by generations
Programming Language
Categorization
3GL, 4GL
2GL
1st Generation
Language [1GL]
HIGH-LEVEL
LANGUAGES
ASSEMBLY
LANGUAGE
MACHINE LANGUAGE
HARDWARE
LOW-LEVEL
LANGUAGES
Machine Language /
Machine Code
The first languages for programming computers sometimes
referred to as first-generation languages
A machine language consists of a set of commands,
represented as a series of 1s and 0s, corresponding to the
instruction set understood by a microprocessor
A machine language is specific to a particular CPU or
microprocessor family
High-level languages are (mostly) translated [compiled] to
machine language in order to be understood and executed by
the microprocessor
Machine Language /
Machine Code
Example
Add the registers 1 and 2. Place the result in
register 6.
[ op | rs | rt | rd | shamt | funct ]
0
1
2
6
0
32
decimal
000000 00001 00010 00110 00000 100000
binary
Assembly Language
Allows
programmers to use abbreviated
command words rather than 1s and 0s used in
machine languages
A significant improvement over machine languages
Mnemonics such as ADD, SUB, MUL, DIV, JMP etc are
more understandable than 0001, 0100 etc
Also referred to as second-generation languages
Assembly languages are also machine specific
Each assembly language command corresponds on a
one-to-one basis to a machine language instruction
Assembly Language
Example 1
Add 10 to the variable MARKS
ADD MARKS, 10
Example 2
Transfer the value 10 to the AL register
MOV AL, 10
High-level languages
C/C++, JAVA, BASIC and etc.
Similar to everyday English,
Use mathematical notations
Example 1
Add 10 to the variable MARKS
MARKS = MARKS + 10;
Example 2
Assign the value 10 to the variable A, value 20 to variable B,
add them and store the results in variable C
A = 10;
B = 20;
C = A + B;
Next
Now
we move on to: C How to Program