Foundations of Computer Science
Second Edition
BEHROUZ FOROUZAN
FIROUZ MOSHARRAF
Chapter 1
Introduction
Outlines
z
z
z
z
z
z
Turing Model
von Neumann Model
Computer Components
History
Social and Ethical Issues
Computer Science as a Discipline
CSIM@PU
Objectives
After studying this chapter, the student should be able to:
z Define the Turing model of a computer.
z Define the von Neumann model of a computer.
z Describe the three components of a computer: hardware,
data, and software.
z List topics related to computer hardware.
z List topics related to data.
z List topics related to software.
z Discuss some social and ethical issues related to the use of
computers.
z Give a short history of computers.
CSIM@PU
1-1 Turing Model
Data Processors
A computer acts as a black box that accepts
input data, processes the data, and creates
output data.
Figure 1.1 A single purpose computing machine
CSIM@PU
Programmable Data Processors(1)
The idea of a universal computational device
was first described by Alan Turing in 1937.
He proposed that all computation could be
performed by a special kind of a machine,
now called a Turing machine.
Programmable Data Processors(2)
z
The Turing model is a better model for a generalpurpose computer. This model adds an extra element
to the specific computing machine: the program. A
program is a set of instructions that tells the computer
what to do with data.
Figure 1.2 A computer based on the Turing model
An Example
Figure 1.3 The same program, different data
Another Example
Figure 1.4 The same data, different programs
The Universal Turing Machine
A Universal Turing Machine, a machine that can do
any computation if the appropriate program is
provided, was the first description of a modern
computer.
It can be proved that a very powerful computer and a
universal Turing machine can compute the same
thing.
We need only provide the data and the program
the description of how to do the computationto
either machine.
In fact, a Universal Turing Machine is capable of
computing anything that is computable.
10
1-2 von Neumann Model
11
Overview
z
z
12
Computers built on the Turing universal
machine store data in their memory.
Around 19441945, John von Neumann
proposed that, since program and data are
logically the same, programs should also be
stored in the memory of a computer.
CSIM@PU
von Neumann Model
z
z
Every computer today is based on the von
Neumann Model.
It is based on 3 ideas:
1.
2.
3.
13
Four subsystems
Stored Program Concept
Sequential Execution of Instructions
Four Subsystems
z
z
z
z
14
Memory the storage area of programs and data.
ALU arithmetic/logic operations take place
Control Unit control Memory, ALU, and I/O
I/O accept input data/send output data
Figure 1.5 The von Neumann model
Stored Program Concept
z
z
15
The von Neumann model states that
the program must be stored in memory.
The memory of modern computers
hosts both
a program
its corresponding data
Sequential Execution of Instructions
z
z
A program is made of a finite number of instructions.
The control unit
16
fetches one instruction from memory
interpret it
execute it
The instructions are executed one after another.
1-3 Computer Components
17
Overview
18
A computer is made up of three
components: computer hardware, data,
and computer software.
Computer hardware today has four
components under the von Neumann model
19
Storing Data
20
Store data in the form of an electrical signal,
specifically its presence or absence.
This implies that a computer can store data in one of
two states.
Binary number system
Data Organization
21
Although data should be stored only in one form (a binary
pattern) inside a computer,
data outside a computer can take many forms.
Data come in different forms:
Numbers
Text
Images
Audio
Video
Requirements of
von Neumann model
1.
2.
22
The programs must be
stored in memory. (Fig. 1.6)
The programs must be
a sequence of instructions. (Fig. 1.7)
Algorithms
A programmer should
23
first solve the problem in a step-by-step manner
and then
try to find the appropriate sequence of
instructions that solves the problem.
The step-by-step solution
is called an algorithm.
Operating Systems
z
24
An operating system originally worked as a manager
to facilitate access of the computer components for a
program.
1-4 History
25
Before 1950
z
z
26
Mechanical machines (before 1930)
Early electronic computers (1930-1950)
ENIAC (Electronic Numerical Integrator and
Calculator)
first general-purpose, totally electronic
computer
University of Pennsylvania, 1946
1950
27
The preceding computers used memory only
for storing data.
EDVAC
the first computer based on von Neumanns
idea,
University of Pennsylvania,1950
Computer generations
(1950-present)
z
z
28
First generation (1950-1959)
vacuum tubes
Second generation (1959-1965)
transistors,
High-level languages(FORTRAN, COBOL)
Third generation (1965-1975)
IC(Integrated Circuit),
Minicomputer, software industry was born
Fourth generation (1975-1985)
VLSI,
microcomputer
Fifth generation (1985-)
laptop and palmtop computer
Microcomputer
z
Microcomputers are designed to be used by
individuals, whether in the form of PCs, workstations
or notebook computers.
A microcomputer contains
29
a CPU on a microchip (the microprocessor),
a memory system (typically ROM and RAM),
a bus system and
I/O ports,
typically housed in a motherboard.
1-5 Social and Ethical Issues
30
Social issues
z
Dependency
Social Justice
Using computers at home is a luxury benefit that not all people can
afford.
Digital Divide
31
Some people think that computers have created a kind of
dependency, which makes peoples lives more difficult.
The concept divides society into two groups: those who are
electronically connected to the rest of society and those who are not.
CSIM@PU
Ethical issues
z
Privacy
Copyright
The Internet has created opportunities to share ideas, but
has also brought with it a further ethical issue: electronic
copyright.
Computer Crime
32
Much needs to be done to make this type of communication
private.
Computers and information technology have created new
types of crime.
1-6 Computer Science as a
Discipline
33
Computer Science as a Discipline
z We can divide computer science into two
broad categories: systems areas and
applications areas.
z This book is a breadth-first approach to all
these areas.
34
CSIM@PU