You are on page 1of 29

Chapter 1

History of computing
Chapter goals
• describe the layers of a computer system.
• describe the concept of abstraction and its relationship to
computing.
• describe the history of computer hardware and software.
• describe the changing role of the computer user.
• distinguish between computing as a tool and computing as a
discipline.
Chapter outline
• 1.1 computing system
• 1.2 history of computer
• 1.3 computer as tool and as decipline
COMPUTING SYSTEM
1.1 Computing Systems
• Computing system:
– is a dynamic entity, used to solve problems and interact with its
environment
– A computing system is composed of hardware, software, and the data
• Computer hardware:
– The physical elements of a computing system
– (printer, circuit boards, wires, keyboard…)
• Computer software:
– The programs that provide the instructions that a computer executes
– Microsoft office software, operating system.
Layers of a Computing System
• A computing system is like an
onion, made up of many layers.
Each layer plays a specific role in
the overall design of the system.
Layers of a Computing System
• The innermost layer, information, reflects the way we represent information on
a computer.
– Information on a computer is managed using binary digits, 1 and 0. So to understand
computer processing, we must first understand the binary number system and its
relationship to other number systems.
• The next layer, hardware, consists of the physical hardware of a computer
system. Computer hardware includes devices such as gates and circuits, which
control the flow of electricity in fundamental ways.
– This core electronic circuitry gives rise to specialized hardware components such as the
computer’s central processing unit (CPU) and memory.
• The programming layer deals with software, the instructions used to accomplish
computations and manage data.
• despite the enormous variety of programming issues, the goal remains the same: to solve
problems.
Layers of a Computing System
• Every computer has an operating system (OS) to help manage the computer’s resources.
Operating systems, such as Windows XP, Linux, or Mac OS, help us interact with the
computer system and manage the way hardware devices, programs, and data interact.
• The applications layer, by contrast, focuses on using the computer to solve specific real-
world problems. such as helping us design a building or play a game.
• Computers no longer exist in isolation on someone’s desktop. We use computer technology
to communicate, and that communication is a fundamental layer at which computing
systems operate. Computers are connected into networks so that they can share
information and resources.
• The use of computing technology can result in increased security hazards. Some issues of
security are dealt with at low levels throughout a computer system. Many of them, though,
involve keeping our personal information secure.
abstraction
• An abstraction is a mental model, a
way to think about something, that
removes or hides complex details. An
abstraction leaves only the information
necessary to accomplish our goal.
When we are dealing with a computer
on one layer, we don’t need to be
thinking about the details of the other
layers.
• For example, we don’t need to know
how a car works to drive one to the
store. That is, we don’t really need to
know how the engine works in detail.
Information hiding
• A technique for isolating program pieces by eliminating the
ability for one piece to access the information in another
• Abstraction focuses on the external view—the way something
behaves and the way we interact with it. Information hiding is
a design feature that gives rise to the abstractions that make
something easier to work with. Information hiding and
abstraction are two sides of the same coin.
A (VERY) BRIEF HISTORY OF THE HARDWARE
1.2 The History of Computing
• Early History of Computing:
Abacus
An early device to record
numeric values
Blaise Pascal
Mechanical device to add, subtract, divide & multiply
Joseph Jacquard
Jacquard’s Loom, the punched card used for weaving cloth
Charles Babbage
Analytical Engine
Babbage’s design was the first to include a memory so that intermediate values did not
have to be reentered.
1.2 The History of Computing
• Ada Lovelace
• First Programmer, the loop

• Alan Turing
• Turing Machine, Artificial
Intelligence Testing

• Harvard Mark I, ENIAC, UNIVAC I


• Early computers launch new era in
mathematics, physics, engineering
and economics
• The early history that began with the abacus
ended with the delivery of the UNIVAC I.
First Generation Hardware (1951-1959)

• Vacuum Tubes
– Large, not very reliable,
– generate a lot of heat
• Magnetic Drum
– Memory device that rotated under a read/write head
• Card Readers  Magnetic Tape Drives
– Sequential auxiliary storage devices
Second Generation Hardware (1959-1965)

• Transistor
– Replaced vacuum tube, fast, small,
– durable, cheap
• Magnetic Cores
– Replaced magnetic drums, information available instantly
• Magnetic Disks
– Replaced magnetic tape, data can be accessed directly
Third Generation Hardware (1965-1971)

• Integrated Circuits (ICs)


– Replaced circuit boards, smaller
– cheaper, faster, more reliable
• Transistors
– Now used for memory construction
• Terminal
– An input/output device with a keyboard and screen
Fourth Generation Hardware (1971-2001)

• Large-scale Integration (LSI, VLSI)


– Great advances in chip technology
PCs, the Commercial Market, Workstations
– Personal Computers and Workstations emerge
– New companies emerge: Apple, Sun, Dell …
Laptops
– Everyone has his/her own portable computer
Fifth Generation Hardware (2001-today)

• Multi-core processors IBM Power4, released in 2001, had 2


cores in the same chip.
Beyond the isolated computer

• Parallel Computing
– Computers rely on interconnected central processing and/or memory
units that increase processing speed
• Computer Networks
– •WAN technology started in 1969 with the ARPANET
– •LAN technology started in 1973 with the Ethernet
A (VERY) BRIEF HISTORY OF THE SOFTWARE
First Generation Software
(1951-1959)

Machine Language
Computer programs written in binary (1s and 0s)

Assembly Languages and Translators


Programs written using mnemonics, which were
translated into machine language

Programmer Changes
Programmers divide into two groups: application
programmers and systems programmers

21
Second Generation Software (1959-1965)

• English-like statements made programming easier: Fortran,


COBOL, Lisp
Third Generation Software (1965-1971)

• Systems Software
– Operating system (OS), which decides:
•Which programs to run and when
•What resources to allocate to each program
•What utility programs to call (e.g. loaders, linkers)

• Separation between Users and Hardware


– Programs are created to be used by nonprogrammers, e.g. SPSS.
Fourth Generation Software (1971-1989)

•New high-level languages for structured


programming
•Pascal
•C
•C++
• New Application Software for Users
•Spreadsheets
•Word processors
•Database management systems (DBMS)
Fifth Generation Software (1990- present) 30

• Object-Oriented Design
– Based on a hierarchy of data objects (e.g. Java, Python)
• World Wide Web
•Allows easy global communication through the Internet
•Single-handedly invented by a physicist, along with the HTML and the first
browser!!
• Microsoft and the OFFICE SUITE
• New Users
– Today’s user needs no computer knowledge (a triumph of abstraction!)
COMPUTING AS A TOOL AND A DISCIPLINE
1.3 Computing as a Tool and a Discipline

Programmer / User

Systems Programmer Applications Programmer


(builds tools) (uses tools)

Domain-Specific Programs

User with No
Computer Background
28
1.3 Computing as a Tool and a Discipline
• For these toolmakers, either computing is a discipline (low-level
tools) or the discipline of computing has made their tools possible
(applications built upon applications).
• each practitioner must be skilled in four areas:
■Algorithmic thinking, in which one is able to express problems in terms of
step-by-step procedures to solve them
■Representation, in which one is able to store data in a way that it can be
processed efficiently
■Programming, in which one is able to combine algorithmic thinking and
representation into computer software
■ Design, in which the software serves a useful purpose

You might also like