You are on page 1of 46

BITG 1113:

Introduction To Computers
And Programming Language

LECTURE 1

LECTURE 1 1
Objectives
In this chapter, you will:
• Learn about different types of computers
• Explore the hardware and software components
of a computer system
• Learn about the language of a computer
• Learn about the evolution of programming
languages
• Examine high-level programming languages

LECTURE 1 2
Objectives (cont.)

• Discover what a compiler is and what it does


• Examine a C++ program
• Explore how a C++ program is processed
• Become aware of Standard C++ and ANSI/ISO
Standard C++

LECTURE 1 3
Why Program?
• Computer – programmable machine designed to
follow instructions
• Program – instructions in computer memory to
make it do something
• Programmer – person who writes instructions
(programs) to make computer perform a task

• SO, without programmers, no programs; without


programs, a computer cannot do anything

LECTURE 1 4
Categories of Computers
• Mainframe computers
• Midsize computers
• Micro computers (personal computers)

LECTURE 1 5
Computer Components
Computer is an electronic device, with
two major components.

Computer

Hardware Software

LECTURE 1 6
Main Hardware Component
Categories:

1. Central Processing Unit (CPU)


2. Main Memory
3. Secondary Memory / Storage
4. Input Devices
5. Output Devices

LECTURE 1 7
Main Hardware Component
Categories

LECTURE 1 8
Central Processing Unit (CPU)
Comprised of:
– Control Unit
• Retrieves and decodes program instructions
• Coordinates activities of all other parts of computer
– Arithmetic & Logic Unit
• Hardware optimized for high-speed numeric
calculation
• Hardware designed for true/false, yes/no decisions

LECTURE 1 9
CPU Organization

LECTURE 1 10
Main Memory
• It is volatile. Main memory is erased when
program terminates or computer is turned off
• Also called Random Access Memory (RAM)
• Organized as follows:
– bit: smallest piece of memory. Has values 0
(off, false) or 1 (on, true)
– byte: 8 consecutive bits. Bytes have addresses.

LECTURE 1 11
Main Memory

• Addresses – Each byte in memory is


identified by a unique number known as an
address.

The number 149 is stored in the byte with the address 16,
and the number 72 is stored at address 23.
LECTURE 1 12
Main Memory

Main memory with some data

LECTURE 1 13
Secondary Storage
• Non-volatile: data retained when program
is not running or computer is turned off
• Comes in a variety of media:
– magnetic: floppy disk, zip disk, hard drive
– optical: CD-ROM
– Flash drives, connected to the USB port

LECTURE 1 14
Input Devices
• Devices that send information to the
computer from outside
• Many devices can provide input:
– Keyboard, mouse, scanner, digital camera,
microphone
– Disk drives and CD-ROM (Secondary
storage)

LECTURE 1 15
Output Devices
• Output is information sent from a
computer program to the outside world.
• The output is sent to an output device
• Many devices can be used for output:
– Computer monitor and printer
– Floppy, zip disk drives, writable CD drives
(Secondary storage)

LECTURE 1 16
Computer Software
•Software: programs that do specific tasks.
• Software is divided into 2 categories

Software

System Software Application Software

LECTURE 1 17
System Software
• Related software that manages the system’s resources
and control the operations of the hardware.
• Normally supplied by the manufacturer of the computer.
• Consists of utility programs and operating aids that
facilitate the use and performance of the computer.
• System programs take control of the computer, such as
an operating system.
• Operating system are programs that manage the
computer hardware and the programs that run on them.
Examples: Windows, UNIX, Linux.
LECTURE 1 18
Application Software
• Programs that provide services to the user.
• Designed to perform a specific task (such as
course registration or banking) OR a general-
purpose task (such as word processing, eg. Ms
Word).
• May be acquired by purchasing off-the-shelf or
by designing for own purpose (custome made).
• Off-the-shelf : prewritten and ready to use.
• Custom made : written by in-house, consulting
firm or software house.
LECTURE 1 19
Where are the application and
system software?

LECTURE 1 20
Computing Environment
Personal Computing

Time-Sharing

Client / Server
Computing

Internet Computing

LECTURE 1 21
Personal computing environment
Picture 2

LECTURE 1 22
Time-sharing environment

LECTURE 1 23
The client/server environment
Picture 2

LECTURE 1 24
The Language of a Computer
• Digital signals are sequences of 0s and 1s
• Machine language: language of a
computer
• Binary digit (bit):
– The digit 0 or 1
• Binary code:
– A sequence of 0s and 1s
• Byte:
– A sequence of eight bits
LECTURE 1 25
LECTURE 1 26
Coding Schemes
• ASCII (American Standard Code for
Information Interchange)
– 128 characters
– A is encoded as 1000001 (66th character)
– 3 is encoded as 0110011

LECTURE 1 27
Coding Schemes (cont.)
• EBCDIC
– Used by IBM
– 256 characters
• Unicode
– 65536 characters
– Two bytes are needed to store a character

LECTURE 1 28
History Of Computer Languages

Computer language evolution

The only language understood by a computer is


machine language
LECTURE 1 29
History Of Computer Languages
(cont.)

1.Machine Language
• Computer only understand this language.
• Series of 1’s and 0’s (binary numbers), such as
1011010000000101
• Difficult to write.
• Low level language

LECTURE 1 30
History Of Computer Languages
(cont.)
• Early computers were programmed in
machine language
• To calculate wages = rates * hours
in machine language:
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store

LECTURE 1 31
History Of Computer Languages
(cont.)
2. Symbolic/Assembly Language
• Unique to particular computer.
• Use mnemonics symbols. E.g. “MUL” –Multiply
• Easier to understand.

LECTURE 1 32
History Of Computer
Languages (cont.)
• Using assembly language instructions,
wages = rates • hours
can be written as:
LOAD rate
MULT hour
STOR wages

LECTURE 1 33
History Of Computer Languages
(cont.)
3. High-Level Language
• Portable to many different computers.
• Instruction are coded
• Eg. COBOL (Business), FORTRAN (Scientific), BASIC,
Pascal, C, C++, C#, Java etc.
• Programmers use this to write programs.
• Compiler: translates a program written in a high-level
language machine language
• The equation wages = rate x hours can be written
in C++ as:
wages = rate * hours;

LECTURE 1 34
History Of Computer Languages
(cont.)

4. Natural Language
• Like our natural language (such as English,
French, or Chinese)
• Its use is still quite limited.

LECTURE 1 35
Programs and
Programming Languages
• Types of languages:

– High-level: closer to human


language

– Low-level: used for


communication with computer
hardware directly. Often written
in binary machine code (0’s/1’s)
directly.
LECTURE 1 36
Some Well-Known High-Level
Programming Languages

LECTURE 1 37
Example of a C++ Program
#include <iostream>
using namespace std;
int main()
{
cout << "My first C++ program." << endl;
cout << "The sum of 2 and 3 = " << 5 << endl;
cout << "7 + 8 = " << 7 + 8 << endl;
return 0;
}
Sample Run:
My first C++ program.
The sum of 2 and 3 = 5
7 + 8 = 15

LECTURE 1 38
Program Development
• A computer understands a program only if
the program is coded in its machine
language.
• Programmer have to write the program
and turn it into an executable (machine
language) code.
• Programmer have to understand the
problem -> break into actions-> execute by
the computer.

LECTURE 1 39
From a High-level Program to an
Executable Code
• There are 4 steps in the process :
• Create and edit file containing the program with a text
editor.
• Run preprocessor to process the preprocessor
directives (begin with #)
• Run compiler to:
• Check that the program obeys the rules
• Translate into machine language (object code)
• Run linker to connect hardware-specific code to
machine instructions, producing an executable code.
• Steps b–d are often performed by a single command
or button click.
• Errors detected at any step will prevent execution of
following steps. LECTURE 1 40
From a High-level Program to an Executable Code
Picture 2

Programmer

Code

Code

LECTURE 1 Executable Code 41


Program Development (cont.)
Loader:
– Loads executable code/program into main
memory
Execution:
– The last step is to execute the program

LECTURE 1 42
LECTURE 1 43
Integrated Development
Environments (IDEs)
• An integrated development environment,
or IDE, combine all the tools needed to
write, compile, and debug a program into
a single software application.
• Examples are Microsoft Visual C++,
Borland C++ Builder, CodeWarrior, etc.

LECTURE 1 44
Integrated Development
Environments (IDEs)

LECTURE 1 45
ANSI/ISO Standard C++
• C++ evolved from C
• C++ designed by Bjarne Stroustrup at Bell
Laboratories in early 1980s
• C++ programs were not always portable
from one compiler to another
• In mid-1998, ANSI/ISO C++ language
standards were approved

LECTURE 1 46