Uploaded by sunnyjewel111

01 - The Big Picture

advertisement
Laying the Groundwork
1
The Big Picture
The Information Layer
2
3
Binary Values and Number Systems
Data Representation
The Hardware Layer
4
5
Gates and Circuits
Computing Components
The Programming Layer
6
7
Low-Level Programming Languages and Pseudocode
Problem Solving and Algorithms
8
9
Abstract Data Types and Subprograms
Object-Oriented Design and High-Level Programming Languages
The Operating Systems Layer
10
Operating Systems
11
File Systems and Directories
The Applications Layer
12 Information Systems
13 Artificial Intelligence
14 Simulation, Graphics, Gaming, and Other Applications
The Communications Layer
15 Networks
16 The World Wide Web
17 Computer Security
In Conclusion
18
Limitations of Computing
~ THE BIG PICTURE
This book is a tour through the world of computing. We explore how computers work-what they do and how they do it, from bottom to top, inside
and out. Like an orchestra, a computer system is a collection of many different elements, which combine to form a whole that is far more than the
sum of its parts. This chapter provides the big picture, giving an overview
of the pieces that we slowly dissect throughout the book and putting those
pieces into historical perspective.
Hardware, software, programming, web surfing, and email are probably familiar terms to you. Some of you can define these and many more
computer-related terms explicitly, whereas others may have only a vague,
intuitive understanding of them. This chapter gets everyone on relatively
equal footing by establishing common terminology and creating the platform from which we will dive into our exploration of computing.
After studying this chapter, you should be able to:
describe
describe
describe
describe
the layers of a computer system .
the concept of abstraction and its relationship to computing.
the history of computer hardware and sof tware.
the changing role of the computer user.
distinguish between systems programmers and applications programmers.
distinguish between computing as a tool and computing as a discipline.
3
4
Chapter 1: The Big Picture
Computi ng system
Computer hardware,
software, and data,
which interact to
solve problems
Computer hardware
The physical elements
of a computing
system
Computer software
The programs
that provide the
instructions that a
computer executes
1.1 Computing Systems
In this book we explore various aspects of computing systems. Note that
we use the term computing system, not just computer. A computer is a
device. A computing system, by comrast, is a dynamic entity, used to
solve problems and intera ct with its environment. A computing system is composed of hardware, software, and the dara that they manage .
Computer hardware is the collection of physical elements that make up
rhe machine and its related pieces: boxes, circuit boards, chips, wires,
disk drives, keyboards, monitors, printers, and so on. Computer software
is the collection of programs that provide the instructions that a computer carries out. And at the very heart of a computer system is the
information that it manages. Without data, the hardware and software
arc essentially useless.
The general goals of this book are threefold:
To give you a solid, broad understanding of how a computing
system works
To develop an appreciation for and understanding of the evolution
of modern compuring systems
To give you enough information abom computing so that you can
decide whether you wish to pursue the subject further
The rest of this section explains how computer systems can be divided
into abstract layers and how each layer plays a role. The next section
puts the development of computing hardware and software into historica l context. This chapter concludes with a discussion about computing as
both a tool and a discipline of srndy.
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 overa ll design of the system. These layers are
depicted in
and form the general organization of this book.
This is the "big picture" that we will continually return to as we explore
different aspects of computing systems.
You rarely, if ever, take a bite out of an onion as you would an apple.
Rather, you separate the onion into concentric rings. Likewise, in this book
we explore aspects of computing one layer at a tim e. We peel each layer
separately and explore it by itself. Each layer, in itscU, is not that complicated. In fact. a computer actually does only very simple tasks-it just
does them so blindingly fast that many simple tasks can be combined to
1.1 Computing Systems
accomplish larger. more com plica ted tas ks. When
Communications
the various computer layers are all brought togethApplications
er, ead1 playing it s own role, amazing things result
from the combination of these basic ideas.
Operating systems
Let's di scu ss each of these la yers brie fl y and
Programming
identify where in this book these ideas arc exHardware
plo red in more detail. We essentially work o ur
way from the inside out, which is somet imes reInformation
ferred to as a bottom-up approach.
The innermost layer, information, reflects the
way we represent information on a computer. In
man y ways this is a purely conceptual level. Info rmation o n a computer is managed using binary FIGURE 1.1 The layers of a computing system
digits, I and 0. So to understand co mputer processing, we must first understand the binary number system and its re lationship to other number system s (such as the decima l system, the one
humans use o n a daily basis). Then we can tllrn our attention to how we
take the m yriad types of information we m anage-numbers, text. images,
audio, and video-and represent them in a binary format. Chapters 2 and 3
explore these issues.
The next layer, hardware, consists of 1he physical hardwa re of a computer syste m. Computer hardware includes devices such as ga tes and circuits, which control the now of elect ri ci ty in fu ndame ntal ways. This core
electronic circuitry gives rise to specia lized ha rdware components such
as the computer's central processing unit (CPU) and memory. Chapte rs 4
and 5 of the book discuss th ese topics in detail.
The progra mming layer deals w it h software, the instru ctions u sed
to accomplish computations and man age data. Programs can take man y
form s, be performed at many leve ls, and be implemented in many lan g uages. Yet, despite the enormo us variety of programming issues, the goa l
remains the same: to solve problems. Chapters 6 throug h 9 explore many
issues related to programming and the management o f data .
Every compu ter ha~ an operating system (OS) to help ma nage the
computer's reso urces. Opera tin g systems, such as Windows XP, Lin ux, or
Mac OS, help us interact wi th the computer system and manage the way
hardware devices, programs, and data interact. Knowin g wha t an operating system does is key to understanding the computer i11 genera l. These
issues are discussed in Chapters LO and 11 .
The previous (inner) layers focus on making a compute r system
wo rk. The applications la ye r, by con trast. focuses o n using the co mputer to solve specifi c real-world problem . We run application p rog ra ms
Chapter 1: The Big Picture
to take advantage of the compurer's abilities in other areas, such as
helping us design a building or play a game. The spectrum of area-specific
computer software tools is far-reaching and involves specific subdisciplines of computing, such as information systems, artificial intelligence,
and simularion. Application systems are discussed in Chapters 12,
I 3, and 14.
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 compuring sysrems opcrarc. Computers are connected into networks so that they can share information and resources. The
Internet, for example, evolved into a global network, so there is now almost
no place on Earth that you cannot communicate with via computing technology. The World Wide Web makes that communication relatively easy;
it has revolutionized computer usc and made it accessible to the general
public. Chapters 15 and 16 discuss these important issues of computing
communication.
The usc 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. Chapter 17 discusses several of these issues.
Mos1 of this book focuses on wha1 a complller can do and how it does
it. We conclude with a discussion of what a computer cannot do, or al least
cannot do well. Computers have inherent limitations on their ability to
represent information, and they are only as good as their programming
makes them. Furthermore, it turns out that some problems cannot be
solved at all. Chapter 18 examines these limitations of computers.
Sometimes it is easy to get so caught up in the de1ails that we lose
perspective on the big picture. Try to keep that in mind as you progress through the information in this book. Each chapter's opening page
reminds you of where we are in the various layers of a computing system.
The details a ll contribute a specific part to a larger whole. Take each step
in turn and you will be amazed at how well ii all falls into place.
Abstraction
Abstraction A mental
model that removes
complex details
The levels of a computing system that we just examined are examples
of abstraction. An abstraction is a mental model. a way to think abou 1
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
1.1 Computing Systems
about the details of the other layers. For example, when we are writing
a program. we don't have to concern ourselves with how the hardware
carries out the instructions. Likewise, when we are running an application program. we don't have co be concerned with how that program
was written.
Numerous experiments have shown that a human being ca n act ively manage abou t seven (plus or min us two, depending on the person)
pieces o r information in short-term memory at one time. This is called
Miller's Law, based on the psychologist who first investigated it. 1 Other
pieces of info rma tion are available to us when we need them, but when
we focus on a new piece. something e lse falls back into seconda ry status.
This concept is similar to the number of balls a juggler can keep in the
air al one time. Human beings can mentally juggle about seven ba lls at
once, and when we pick up a new one, we ha ve to drop another. Seven
may seem like a small number, but the key is that each ball can represent an abstraction. or a chunk of information. That is, each ball we are
juggling can rep resent a complex topic as long as we can think about it
as one idea.
We rely on abstractions every day of our li ves. For example, we don't
need to know how a car wo rks to drive one lo the store. That is, we don't
really need to know how the engine works in detail. We need to know
only some basics about how to interact with the car: how the pedals and
knobs and steering wheel work. And we don't even have to be thinking
about all of those things at the same time. See
FIGURE 1.2 A car engine and the abstraction that allows us to use it
Owl!)
~s.r
I
~h ti
.11
Chapter 1: The Big Picture
Even if we do know hmv an engine works, we don't have to think
about it while driving. Imagine if, while driving. we had to constantly
think about how the spark plugs ignite the fuel thac drives the pistons that
turn the crankshaft. We'd never get anywhere! A car is much too complicated for us to deal with all at once. All the technical details would be too
piece to access
many balls to juggle at the same time. But once we've abstracted the car
the information in
down to the way we interact with it, we can deal with it as one cmity. The
another
irrelevant details arc ignored, al least for the moment.
Information hiding is a concept related to abstraction. A computer programmer often tries to eliminate the need or ability of one part
of a program to access information located in another part. This technique keeps the pieces of the program isolated from each other, which
reduces errors and makes each piece easier to understand. 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 arc two sides of the same coin.
Abstract art, as the name implies,
is another example of abstraction. An
abstract painting represe111s something
but doesn't get bogged down in the details
of reality. Consider the painting shown
in
, cnricled Nude Descwding a
Staircase. You can see only the basic hint
of the woman and the staircase, because
the artist is not interested in the details of
exactly how the woman or the staircase
loo ks. Those details are irrelevant to the
effect the artist is trying to create. In fact,
the realistic details would gel in the way
of the issues that the artist thinks are important.
Abstraction is the key to computing.
The layers or a computing system embody
the idea of abstraction. And abstractions
keep appearing within individual layers in
various ways as well. In fa ct, abstraction
FIGURE 1.3 Marcel Duchamp discussing his abstract painting
can be seen throughout the entire evoluNude Descending a Staircase
tion of computing systems, which we explort~ in the nexl section.
Information hid ing
A technique for
isolating program
pieces by eliminating
the ability for one
9
7.2 The History of Computing
1
2 The History of Computing
The historica l fo undation of computing goes a lo ng way toward explaining why computing systems today are designed as they are. Think of this
sectio n as a story w hose characters an d event s have led to the place we are
now and for m the fo unda tion of the exciting future to come. We exami ne
th e history of comput ing hardware an d software separarely because each
has its own impact on how com puting system s evolved into th e layered
model we use as the outline for this book.
This histo ry is wrillcn as a narrative, with no intent to forma ll y define
the concepts discussed. In subsequent chapters, we return to th ese concepts and explore th e m in more deta il.
A Brief History of Computing Hardware
The devices that assist humans in various forms of compu tation have the ir
roots in the a ncie n t past and have continued to evolve until th e present
da y. Let's take a brief tour through th e history o f computing hardware.
Early History
Many people believe that Stonehenge, the famou s collection of rock
m o noli ths in Great Britain, is an ea rly fo rm of a calendar o r astrological
calcula tor. The abacus, wh ich appeared in the six teenth century nc, was
developed as an inst rument to record numeric values and on which a
huma n can pe rform basic a rithmetic.
In the middle of the seventeenth century, Blaise Pascal, a French
mathematician, built and sold gear-driven mechanical mach in es, which
perfo rme<l whole -number addition a nd s ubtra ctio n . Later in th e seve nteenth century, a German mathematician, GoLtfried Wilhelm van Leibniz,
built the firs t mechan ica l device designed to do all four who le-n umber
o pe rations: addition, subtract ion, mu lti plication, and division. Unfortunatel y, the state of mecha nica l gears and levers at that time was such that
th e Leibniz machine was not very re liable.
In th e late e ig hteenth century, Joseph Jacqu ard developed what
became known as Jacquard 's loom, used for weaving cloth . The loom used
a series of cards with holes punched in them to specify the use of specific
colored thread and therefore dictate the desig n that was woven into the
cloth. Although not a computing device, Jacquard's loom was the first to
make use of an importa nt form of input : the punched ca rcl.
"Who can foresee
the consequences of
such an invention?
The Analytical Engine
weaves algebraic
patterns just as the
Jacquard loom weaves
flowers and leaves.
The engine might
compose elaborate
and scientific pieces of
music of any degree of
complexity o r ext ent. "
-Ada. Countess of
Lovelace, 1843'
10
Chapter 1: The Big Picture
Stonehenge, a Neolithic sto ne stru cture that rises
majestically our of the Salisbury Plain in England,
has fascinated humans for centuries. It is beUeved
that Sto ne henge was erected over several centuries beginning in about 2 180 ac. Its purpose is
still a mystery, although theories abound. At the
summe r solstice, the rising sun appea rs behind
one of the main stones, giving the illusion that
the sun is balancing on the stone. This has led to
the early theory that Stonehenge was a temple.
Another theory, first suggested in th e middle of
the twentieth century. is that Stonehenge cou ld
have been used as an astronom ical calendar,
marking lunar and
solar a lignments.
Yet a third theory
is that Stonehenge
was used to pre'""•.t11rdb!61ol1111riitoct
diet eclipses. The
latest research now shows that Stonehenge was
intended for and used as a cernetery. 3 Human
remai ns, from about 3000 ec until 2500 ec when
the first large stones were raised, have been
found. Regardless of w hy it was built, there is
a mystical quality about the place that defies
exp la na tion.
It wasn' t until the nineteenth century that the ne xt major step was
taken, this time by a British mathe m atician. Charles Babbage designed
w hat he called his analytical engine. His design was too complex for him
to build with the techno logy of his day, so it was never implemented . His
visio n. however, included many of the important components of toda y's
computers. Babbage's design was the fi rst to include a mem o ry so that
intermediate values did not have to be reentered . His design also included
the input of both numbers and m echanical steps, makin g use of punched
cards sim ilar to those used in Jacqu ard's loom.
Ada Au gusta, Countess of Lovelace, was a very roman tic figure in th e
history of computing. Ada, th e daughter of Lord Byron (the English poer) ,
was a skilled mathe m atician. She becam e inte rested in Babbage's work on
the a nalytical e ngine and extended his ideas (as well as correcting some
of his erro rs). Ada is cred ited wi th being the first progra mme r. The con cept of the loop-a series of instru ctio ns that repeat- is attributed 10 her.
The prog ra mming language Ada, used largely by the U.S. De panme tll of
Defense. is named for h er.
D uring the later part of the nineteenth cen tury and the beginn ing of
the twentieth century, computin g ad vances were made rap idl y. William
Burroughs produced and sold a mechanical adding m achine. Dr. Herman
Hollerith deve loped the first e lectro-mechanical tabula to r, w hich read
informa tion from a punched card . His device revolutionized th e cen sus
11
1.2 The History of Computing
taken every ten years in the United States. Ho llerith later formed a company known today as IBM.
In 1936. a theoretical development took place that had nothing to
do with hardware per sc but profoundly influenced the field of computer
science. Alan M. 1\tring. another British mathematician. invented an abstract mathematical model called a Turing machine, laying the foundation
for a major area of comp uting theory. The most prestigious award given in
computer science (equivalent to the Fielding Medal in mathematics or a
Nobel Prize in other sciences) is the 1\tring Award, named for Alan 1\1ring.
A recent Broadway play deals with his life. Analysis of the capabilities of
Turing machines is a part of the theoretical studies of all computer science
students.
In the mid to late 1930s, work on building a comput ing machine
continued around the world. In 1937, George Stibitz constructed a I -bit
binary adder usi ng relays. (See Chapter 4.) Later that year, Claude E.
Shannon published a paper about implementing symbolic logic using relays. In 1938, Konrad Zuse of Berlin built th e first mechanical binary
programmable computer. (See biography of Konrad Zuse in Chapter 6.)
By the outbreak of World War II, several general-purpose computers
were under design and con st ruction. In London in 1943, Thomas Flowers
built the Colossus, considered by man y to be the first a ll-programmable
electronic digital computer (
). In 1944, the IBM Automatic
Sequ<:nce Controll ed Calcu lator was given to Harvard; it was subsequen tly known as che Harvard Marki. The ENIAC, pictured in
. was
unveiled in 1946. Joh n von Neumann. who had served as a consultant on
the ENJAC project, started work on another machine known as EDVAC,
which was completed in 1950. In 1951 , the first commercia l computer,
UNIVAC I, was delivered to the U.S.
Bureau of the Census. The UNIVAC
I was the first computer used to predict the outcome of a presidential
election. ~
The early history that began with
the abacus ended with the delivery of
the UNIVAC I. With the building of
that machine, the dream of a device
that could rapid ly manipulate numbers was rea lized; the search was ended. Or was it? Some experts predicted
at that time that a small number of
computers wou ld be able to handle
the computational needs of mankind.
FIGURE 1.4 The Colossus, the first all-programmable digital computer
12
Chapter 1 · The Big Picture
What they didn' t rea lize was that the ability to
perform fast calculations on large amounts of
dara would radica lly change the very nature of
fields such as ma thematics, physics, engineering,
and economics. Th at is, computers made those
experts' assessments of what needed to be calculated
entirely invalid. 5
After 195 L the story becomes one of the
ever-expand ing use of computers to solve problems in all a reas. From chat point, the search
has focused not only on building faster, bigger devices, but a lso on developing tools that
allow us to use these devices more productively.
The history of computing ha rdware from th is
FIGURE 1.5 The ENIAC, a World War II-era computer
Cwr,;yo/U
Ir~
It took about 4000 years to fully reduce th reedimensional tokens to written signs. It all began
abou t 7500 BC, w hen (a r mers made counters
of clay in a dozen shapes to help keep track
of their goods. For exa mple, a cone stood for
a small measu re of gra in, a sphere for a large
measure of grain, and a cylinder for an a nima l.
Fou r small measures of grain were represented
by fo ur cones. Approximately 8000 of these
tokens have been found fro m Pa lestine, Anatolia, Syria, Mesopotamia, and Ira n.
Approximately 3500 ec, a fter the rise of
the city-states, administrators started using clay
balls as envelopes to hold th e tokens. Some of
these envelopes bore impressions of the tokens
they contained. The next step occurred be tween
3300 and 3200 ac, when record keepers started
just using the impression of the tokens on clay
balls, dispensing w ith the tokens themselves.
Thu s it took approximately 4000 years 10 reduce
three-dimensional tokens lo written signs.
Around 3 100 BC, styluses were used to draw
the tokens rathe r than impressing the tokens on
the tables. This change led to the breaking of the
one-to-one correspondence between symbol
and object. Ten ja rs of oil were represemed by a
jar of oil and a sym bol fo r ten. New signs were
not created to express abstract numbers, but old
signs took on new meaning. For example, the
cone sign, fo rmerly represent ing a small measure of gra in, became the symbol for "l." and the
sph ere (a large measure of grain) came to mean
"l O." Now 33 jars of oil could be represented by
JO+ 10 + 10 + I + I + land the symbol for "oil."
Once abstract numerals were created, the
sign s for goods and the signs for n umbers cou ld
evolve in different ways. Thus writing was
de ri ved from co unting. 6
13
1.2 The History of Computing
point on is categorized into several "generatio ns" based on the technology
they employed.
First Generation (1951- 1959)
Commercial compu te rs in the fi rst generati o n (fro m approx imate ly
195 1 to 1959) were bu ilt using vacuum rubes to store information. A
vacuum tube, shown in
, genera ted a great deal of heat a nd
was not very reliable. The machines that used them req uired heavy-duty air
cond ition ing a nd freq uent maintenance. The y also required very large,
specia ll y built rooms.
The primary m em o ry device of this first generation of computers was
a magnetic drum that rotated under a read/writ e head. When the memory
cell that was being accessed rotated under the read/write head, the data
was written to or read from thar place.
The input device was a card reader that read the holes punched in
an IBM card (a descendant of th e Ho llerith ca rd). The output device was
either a punched card o r a line printer. By the end of this genera tion,
magnetic tape drives had been developed that were much faster than card
readers. Magne tic tapes are sequential storage devices, m ea ning that th e
da ta on the tape m ust be accessed one after another in a linear fas hion.
Storage devices external to the computer memory a re ca lied m1xilit11y
storage devices. The m agne ti c tape was the first of these devices. Collective ly, input devices, output devices, and auxiliary sco rage devices became
known as peripheral devices.
FIGURE 1.6 A vacuum tube
Second Generation (1959-1965)
The advent of the transistor (for which John Bardeen, Walter H. Bra ttain, and William B. Shockley won a obel Prize) ushered in the second
ge ne ra tion of comml'rcial computers. The transistor replaced the vacuum
tube as the ma in component in th e ha rd ware. The transistor, as shown in
, was smaller, more reliable, fas ter, more durable, and cheaper.
The second gene ration also witnessed the advent of im mediate access memory. When accessing information from a drum, the CPU had
to wai t for th e pro per place to rotate und er th e read/write head. The
second generatio n used memory made from 111ag11etic cores, tin y doughnut-shaped devices, l'ach capable of sto ring one bit o f information. These
cores were strun g together with wires to form cells, a nd cells were com bined into a memory unit. Because th e device was motion less a nd was
accessed e lectronicall y, info rmat io n was available instan tl y.
111111111111111111111111
10_ _1_ ~1JLL_
FIG URE 1.7 A t ransistor,
which replaced the
vacuum t ube
,,
t
"'
\\,
14
Chapter 1. The Big Pictu re
On December 10, 18 15 (the same year that
George Boole was born ), a daughter- Augusta
Ada Byron-was born to Anna Isabella (An nabella) Byron and George Gordon, Lord Byron.
At that time in England, Byron's fam e derived
not on ly from rus poetry buc also from his wild
and scandalo us behavior. The marriage was
strained from the beginning, and Annabella left
Byron short ly a fter Ada's birth. By April of 18 16,
the two had signed sepa ration papers. Byron left
England, never to return. Throughout th e rest
of his life he regretted tha t he was unable to see
his daughter. At o ne point he wrote of her,
I see 1hee not. I hear thee not.
But none can be so 1vrapt in thee.
Before he died in Greece, at age 36, he exclaimed,
011 my poor dear child! My dear Ada!
My God, could I but have seen her!
Meanwhile, Annabella, w ho even tua ll y
was ro become a baroness in h er o wn right ,
and who was educated as both a mathematician and a poet, carri ed on with Ada's u pbringing an d ed ucatio n . An nabe lla gave Ada h e r
first instruction in mathematics, but it soon
became clear that Ada was gifted in the subject
and sho uld receive more extensive tutorin g.
Ada rece ived further training fro m Augu stus
DeMorgan, today fa m o us for o ne of the basic
theorems of Boolean a lgebra. By age eight, Ada
had demonstrated an interest in mechanica l
devices and was building de tailed m odel boa ts.
When she was 18, Ada visited the Mechanics Institute to hea r Dr. Dionysius La rdn er's
lectures on the Difference
Engine, a mechan ical calculatin g machine being
built by Charles Babbage.
She becam e so inte rested
in the device tha t she arranged to be introduced to Babbage. It was said
that, upo n seeing Babbage's machine, Ada was
the on ly person in the room to understand immediately how it worked and to recognize its
significance. Ada and Charles Babbage becam e
lifelong friends. She worked with him, helping
to document his designs, translating writings
about his work, and developing programs for his
machines. In fact, Ada today is recognized as the
first com puter programmer in histo ry.
When Babbage designed his Ana lytical
Engine, Ada fo resaw that it could go beyond
arithme tic com putatio ns and become a gen eral
manipu lator o f symbols, thus ha ving far-reach ing capabilities. She even suggested that such a
de vice eventua ll y cou ld be programmed with
ru les of harmony a nd composit ion so that it
could produ ce "scienti fic" music. In effect, Ada
foresaw the field of artificial in tellige nce m o re
than 150 yea rs ago.
In 1842, Babbage gave a series of lectures
in Turin , Italy, o n his Analytical Engine . One
of the a ttendees was Luigi Mcnabrea, who
was so impressed that h e wrote a n account of
Babbage 's lectu res. At age 27, Ada decided to
transla te the account into En glish. w ith the
intent to a dd a few of he r own notes abou t the
machine. ln the e nd, her notes were twice as
long as the o riginal material, and th e document,
15
1.2 The History of Computing
Ada Lovelace (continued)
"The Skecch of the Analytical Engine," became
the definitive work on the subject.
IL is obvious from Ada's letters that her
"notes" were entirely h er own and that Babbage was acting as a sometimes unappreciated
editor. At one point, Ada wrote to him,
I am much annoyed at your having nltered
my Note. You know I am nlways willing
to make any required alterations myself
but that I cannot endure another person to
meddle with my sentences.
Ada gained the title "Countess o [ Lovelace"
when she married Lord William Lovelace. The
couple had three children, whose upbringing
was left to Ada's mother while Ada pursued
her work in mathemacics. Her husband was
supportive of her work, bu t for a woman o f
chat day such beha vior was considered almost
as scanda lous as some of her father's exploits.
Ada died in 1852, just one year before a
working Difference Engine was built in Sweden [rom one of Babbage's designs. Like he r
fath er. Ada lived only to age 36, and even
though they led very different lives. she undoubtedly admired him and took inspiration
from his unconventional and rebellious nature. ln the end, Ada asked to be buried beside
him at the family's estate.
The 11wgneticdisk, a new auxiliary storage device, was also developed
during the second computer hardware generation. The magnetic disk is
faster than magne tic tape because each data item can be accessed directly by referring to its location o n the disk. Un li ke a tape, which cannot
access a piece of data without accessing everything on the cape that
comes before it, a disk is organized so thac each piece of data has its own
location identifier, called an address. The read/write heads of a magnetic
disk can be sent directly to the specific location on the disk where the
desired information is stored.
Third Generation (1965-1971)
In the second generation, transistors and other components for che computer were assembled by hand on primed circuit boards. The third genera tion was characterized by integrated circuits (!Cs), solid pieces of silicon
that comaincd the transistors, other components, and their connections.
Integrated circuits were much smaller. cheaper, faster, and more reliable
16
Chapter 1: The Big Picture
than printed circu it boards. Gordon Moore, one of the co-founders of
Intel, n oted tha t from the time of the inve ntion of the IC, the number of
circuits tha1 could be placed on a single integrated circuit was doubling
each yea r. Th is observation became known as Moore's la1v.K
Transistors also were used for memory construction, where each
tra nsistor represented one bit of information. Integrated-circuit technology a llowed memory boards to be built u sing transistors. Auxiliary storage
devices were still n eeded becau se tra nsistor memory was volatile; that is,
the informatio n we nt away w h en the power was turned off.
The terminal, an inp u t/o utp ut device with a keyboard and screen, was
int rodu ced during this generation . The keyboard gave the user direct access to the computer, an d the screen provided a n immediate response.
Fourth Generation (1971 - ?}
Large-scale integration cha racterizes th e fou rth generation. From several
l
Scientists build first
nanotube computer
Scientists are examining
the possibility of using
carbon nanotubes,
seamless cylinders
of ultrapure carbon,
as a basis for future
computers. As electrical
conduction speeds of
conventional silicon
transistors begin to
reach the limits of the
technology. the search
is on for replacements
that are faster t han
silicon. In 2013,
scientists at Stanford
University built a
working, although
primitive. prototype
of a computer using
nanotube transistors
made with these
unusual carbon fibers.9
thousand tra nsistors on a silicon chip in the early 1970s, we ha d moved
to a whole microcomputer on a ch ip by the middle of this decade. Ma in
memory devices are stil l made a lmost exclusively out of chip technology.
Over the previous 40 yea rs, each generatio n of compu ter hardware had
becom e more powerfu l in a smaller package a t lower cost. Moore's la w
was modifi ed to say that chip density was do ubling every 18 m o nths.
By the late 1970s, the phrase personal computer (PC) had entered the
vocabu lar y. Microcompu ters had become so cheap that a lmost anyone
could have one, a nd a generation of kids grew u p playing Pac-Man.
The fourth generation fo u nd some n ew names en tering the commercial market. Apple, Tandy/Radio Shack, Atari. Commodore, a nd
Sun joined the big com pa n ies of earlie r generations-IBM, Remington
Ra nd, NCR, DEC (D igita l Equi pment Corporation), Hewlett-Packard,
Cont rol Da ta, a nd Burroug hs. The best-known success sto ry o f the pe rsona l compute r n:vulution is tha t o f Ap ple. Steve Wozn ia k, an engineer,
and Steve Jobs, a high school student, created a personal compu ter kit
and marketed it out o f a garage. This was the beginning of Apple Computer, a multi billion-dollar company.
The IBM PC was introduced in 198 1 and was soon followed by compatible mach ines man u factu red by many other companies. For example,
Dell and Compaq were s uccessfu l in maki ng PCs tha t were compatible
with IBM PCs. Apple int roduced it s ve ry popu lar Macintosh microcom puter line in 1984.
In the mid- J 980s, la rger, more powerful machines were created; they
were referred to as workstations. Workstations were generally mea nt for
17
1.2 The History of Computing
business, not persona l. use. The idea was for each employee to have his
or her own workstation on the desktop. These workstations were connected by cables, or networked, so that they could interact with one another.
Workstations were made more powerful by the introduction of the RISC
(reduced-instruction-set computer) arch itecture. Each compu ter was designed to understa nd a set o f instru ctions, called its machine language.
Conventiona l machines such as the IBM 370/ 168 had an instruction set
containing more than 200 instructions. Instructions were fast and memo ry access was slow, so specia lized in structions made sense. As m e mory
access got in crea singly faster, using a reduced set of ins1ructions became
attractive. Sun Microsystems introduced a workstation w ith a RlSC chip
in L987. Its enduring popularity proved the feasibi lit y of the RISC chip.
These workstations were often called UNIX workstations because they
used the UNIX operating system.
Because computers arc sti ll being made using circu it boards, we cannot
mark the end of this genera tion. Howe ver, severa l things have occurred
that so dramatically affected how we use machines that they certainly
have ushered in a new era. Moore's law was once aga in restated in the
following form: ucompute rs will either double in power at the same price
or halve in cost for th e same power every 18 months." 10
Parallel Computing
Although computers that use a single primary processing unit contin ue
to flourish. radically new machine architectures began appea ring in th e
late 1980s. Computers that use these paral/e/ architecuires rel y on a set of
interconnected central processing units.
One class of parallel machines is organized so th at th e processors all
share the same memory unit. In a no Lher class o f machines, each central
processor has its own local memory and communicates with the o thers
over a very fast internal net work.
Parallel architectures offer severa l ways ro increase the speed of
executi o n . For example, a given step in a program can be separated into
multiple pieces, and Lhose pieces can be executed simultaneously on several
individual processors. These machines are called SIMD (single-instru ction,
multiple-data -stream) computers. A second class of m achines can work
on different pans o f a progra m simultaneously. These machines a re called
MIMD (m ult iple-instruction, mu ltiple-data-stream) compu te rs.
The potemial of hundreds or even thousa nds of processors combined
in one machine is enormous, and the cha llenge of prog ramming for such
machines is equally daunting. Software designed for paralld m achines is
From a garage to the
FortuneSOO
Boyhood friends Steve
Jobs and Steve Wozniak
sold their Volkswagen
van and programmable
calculator, respectively,
to raise the money
to finance their new
computer company.
Their first sale was 50
Apple Is, the computer
that they had designed
and built in a garage.
In six short years
Apple was listed in the
Fortune 500.
:t
Chapter 1. The Big Picture
d ifferent rrom software designed for sequential machines. Programmers
have to rethink the ways in wh ich they ap proach problem solving a nd
programming to explo it parallelism.
Networking
"So we went to Atari
and said, 'Hey, we've
got this amazing thing,
even built with some of
your parts, and what
do you think about
funding us? Or we'll
give it to you. We just
want to do it. Pay our
salary, we'll come work
for you.' And they said,
'No.' So then we went
to Hewlett-Packard,
and they said, 'Hey, we
don 't need you. You
haven't got through
college yet.' " ' 1
In the 1980s, the concept o r a large machine with many users gave way to
a network of smaller machines connected so that they can share resources
such as printers, software, and da ta. Ethernet, invented by Robert Metca lfe
and David Boggs in 1973, used a chea p coaxial cable to connect the machin es and a set o f protocols to allow the machines to communicate with
one another. By l 979, DEC, Intel. and Xerox joined to establish Ethernet
as a standard.
Workstations were designed for networking, but ne tworking personal
computers didn ' t become practical until a more advanced Intel chip was
in troduced in 1985. By l 989, Novell's etware connected PCs together
with a file server, a PC with generous mass storage and good input/output capability. Placing da ta and office au tomation software o n the server
rather than each PC having its own copy allowed for a measure of central
control wh ile giving each machine a m easu re of autonomy. Workstations
or personal computers networked together became known as LANs (local
area networks).
The Internet as we know it today is desce nded from the AHPANET,
a government-sponsored network begun in the late 1960s, which originally consisted of 11 nod es concentrated mainly in the Los Angeles and
Boston areas. Like ARPANET and LANs, the Internet uses packet switching,
a way for m essages to share lines. The Internet, h owever, is made up o f
many different networks across th e world that communicate by using
a common protocol, TCP/JP (Transmission Con trol Protoco l/ Internet
Protoco l).
Paul E. Ceruzzi, in A Histo1y of Modern Computing, comments on the
re lationship between Ethernet and the Inte rnet:
If the Internet of th e 1990s became the Information Superhighway, then Ethernet became the equally important network ol
local roads to feed it. As a descendent of ARPA research, the
global networks we now call the Internet came into existence
before the local Ethernet was invented at Xerox. But Ethernet
tran sfo rmed the nature of oCfice and personal computing before
the Internet had a significant effect.'2
19
1.2 The History of Computing
A Brief History of Computing Software
Computer History
The hardware of a computer can be turned on, but it docs nothing u111il
it is directed ro do so by the programs that make up the comp uter's software. The manner in which software evolved is crucia l to understanding
how software works in a modern computing system.
First-Generation Software ( 1951-1959)
The first programs were written using machine language, the instructions
builr into the electrical circuitry of a particular computer. Even the small task
of adding two numbers together used three instructions written in binaiy
( Is and Os), and the programmer had to remember which combination of
binary digits meant what. Programmers using machine language had to be
very good with numbers and very detail oriented. It's not surprising that the
first programmers were mathematicians and engineers. Nevertheless, progra mming in machine language is both time-consuming and prone to errors.
Because writing in machine code is so tedious, some programmers took
the time to develop tools to help with the programming process. Thus the
first artificial programming languages were developed. These languages,
called assembly languages, used mnemonic codes to represent each machinelang uage instruction.
Because every program that is executed on a computer eventually
must be in the form o f the computer's machine language, the developers
of assembly language also created software translators to translate programs written in assembly language into machine code. A program called
an assembler reads each of the program's instructions in mnemonic form
and translates it into the machine-language equ ivalent. These mnemonics are abbreviated and sometimes difficult to read, but the y are much
easier to use than lo ng strings of binary digits.
The programmers who wrote these tools to make programming easier for others were the first systems programmers. So, even in first -generation software, there was the division between those
programmers who wrote tools and those programm ers w ho used th e tools. The assembly language
acted as a buffer between the programmer and the
machine hardware. See
. Sometimes,
whe n efficient code is esse111iaL programs today
may be written in assembly language. Chapter 6
explores an example of machine code and a correspond ing assembly language in detail.
FIGURE
1.s
Museum
The first computer
museum opened in
1979, located in the
corporate headquarters
of Digital Equipment
Corporation (DEC)
in Marlborough,
Massachusetts. After
several incarnations,
in 2005 the Computer
History Museum moved
into a permanent home
in Mountain View,
California, in the heart
of Silicon Valley. 13
Layers of languages at the end of the
first generation
?
20
Chapter 1: The Big Picture
Second-Generation Software (1959-1965)
As hardware became more powerful, mo re powerful tools were needed
to use it effectively. Assembly languages certain ly presented a step in the
right direction, but the programme r still was forced to thi nk in terms o f
individual machine instructions. The second generation saw m ore powerful languages developed. These high-level languages allowed the programmer to write instructions using more English-like statements.
Two of the languages developed during the second generation a re still
used today: FORTRAN (a langu age designed for nume rica l applica tions)
and COBOL (a la nguage designed for business app lications). FORTRAN
and COBOL deve loped quite differe ntly. FORTRAN started out as a simple language and grew as add itional features were added to it over the
years. In cont ras t, COBOL was des igned first and then implemented. ll
h as changed little over time.
Ano ther language that was designed during this period tha t remains
in use today is Lisp. Lisp differs ma rked ly fro m FORTRAN and COBO L
and was n ot widely accepted . lt was used mainly in artificial intelligence
applications and research. Indeed, dialects o f Lisp are among the la nguages of choice today in artificia l intelligence. Scheme, a dia lect of Lisp, is
used a t some schools as an introductory program ming language .
The introductio n of high-level languages provided a veh icle for running the same program on more than one compute r. Each high- level language has a translating program tha t goes with it, a program that takes
sta tements wri tten in the h igh-level language and converts them to the
equiva lent machine-code instructions. In the ea rliest days, the high -level
la nguage stateme nts were often translated into an assembly language,
and Lh en the assembly-language statements were translated into machine
code. A program w ritten in FORTRAN or COBOL can be translated and
run on any machine that has a translating p rogram called a compiler.
At the end o[ the second ge neration, the
role of the systems programmer was becoming mo re well-de fined. Systems programmers
wro te tools like assemblers and compilers;
those people who used the tools lO write proAssembly
language
Machine language
gra m s were ca lled applications programmers.
The application s program mer was becoming even more in sula ted from rhe computer
hardware as the software surroundi ng the
ha rdware became more sophisticated. See
FIGURE 1.9 Layers of language at the end of the second
generation
21
1.2 The History of Computing
Third-Generation Software ( 1965- 1971)
During the third generation of commercial computers, it became apparent that the human was slowing down the computing process. Computers
were sitting idle while waiting for the computer opera10r to prepa re the
next job. The solution was to put the computer resources under the control of the computer-that is, 10 write a program that would determine
which programs were run when. This kind of progra m is called an operating system.
During the first two computer software generations, utility programs
had been written to handle often-needed tasks. Loaders loaded programs
into memory and linkers linked pieces of large programs toge ther. In the
third generation, these utility programs were refined and put under the
direction of the operating system. This group of utility programs, the operating system , and the language translators {assemblers and compilers)
became known as systems software.
The introduction of computer terminals as input/outp lll devices gave
users ready access to computers, and advances in systems software gave
machines the ability to work much faster. However, inputting and outputting data from keyboards and screens was a slow process, much slower
than carrying out instructions in memory. The problem was how to make
better use o f the machine's greater capabilities and speed. The solution
was time sharing-many diffe rent users, each at a terminal. communicating {inputting and outputting) with a single computer all at the sa me
time. Controlling this process was an operating system that organized and
scheduled the different jobs.
For the use r, time sharing is much like havi ng his or her own machine. Each user is assigned a small slice of cen tra l processing time and
then is put on hold wh ile another user is serviced. Users generally aren't
even aware that there arc other users. Howeve r, if too many people try 10
use the system at the same time, there can be a noticeable wait for a job
to be completed.
As pan of the third ge nera tion, gene ra l-pu rpose applicat ion programs were being written. One example was the Statistical Package for
the Social Sciences (SPSS), which was written in FORTRAN. SPSS h ad a
special language, and users wrote instructions in that language as input
10 the program. This language allowed the u ser, who was often 1101 a
programmer, to describe some data and 1h e statistics to be computed on
that data.
At the beginning o f the computer era, the compu ter user and the
programmer were the sa me person. By the e nd of the first generation,
22
Chapter 1• The Big Picture
programmers had emerged who wrote tools for other programmers to
use, giving rise Lo the distinction between systems programmers and
applications programmers. However, the programmer was still the user.
In the third generation, systems programmers we re writing programssofrware tools-for others to use. Suddenly, there were computer users
who were not programmers in the traditional sense.
The separaLion beLween the user and the hardware was growing
wider. The hardware had become an even smaller part of the picture. A
compu ter system-a combination of hardware, softwa re, and the data
managed by them-h ad emerged. See
. Allhough the layers
of languages kept getting deeper, programmers continued (and still con tinue) to use some of the very inner layers. lf a small segment of code
musL run as qu ickly as possible and Lake up as few memory locations as
possible, it may still be programmed in an assembl y language or even
machine code.
Fourth Generation (1971-1989)
The 1970s saw the introduction of better programmi ng techniq ues called
structured programming, a logical. disciplined approach to programming.
The languages Pascal and Modula-2 were buih on the principles of structured programming. BASIC, a language inLroduced for Lhird-generation
machines, was refined and upgraded to more structured versions. C, a
language that a llows the user ro intersperse assembly-language statemen ts
in a high-level program. was also introduced. C++, a structured language
......
Systems
software
High-level languages
Assembly
I languages
FIGURE 1.1 O The layers of software surrounding the hardware continue to grow
1.2 The History of Computing
that allows the user access to low-level state m e nts as well, became the
language of choice in the industry.
Better and more powerful operating systems were being developed,
too. UNIX, developed at AT&TT~ 1 as a research tool, has become sta ndard in many un ive rsity senings. PC-DOS, develo ped for the IBM PC. and
MS-DOS. developed for PC compatibles, became standards for personal
computers. Apple capitalized o n research done at Xerox PARC by incorporating a mouse and point-a nd-click graphica l interface into the operating
system for the Macintosh, which ushe red in an impo rtant cha nge to
computer-user inte raction on personal compu te rs.
High-qua lit y, rea sonabl y priced applica tions softwa re packages
beca me available at ne ighbo rh ood stores. These programs allow the user
with no computer experience to perform a specific task. Three typical
kinds of applica tion packages are spreadsheets, word processors, and database 111anage111eut systems. Lotu s l-2-3 wcls the first commerciall y successful
spreadsheet that allowed a novice user to enter and analyze all ki nds of
data. WordPerfect was one of the first word processors, and dBase IV was
a system that let the user sto re, organize. and retrieve da ta.
Fifth Generation ( 1990-Present)
The fifth generation is notable for three major events: the rise of Microsoft• as a do minant player in computer software. object-orie nted design
and prog ramming, and the Wo rld Wide Web.
Microsoft 's Windows operating system emerged as a m ajor force in
the PC m a rket during thi s period. Altho ug h WordPerfect continu ed to im prove, Microsoft Wo rd became th e most used word processing program .
In the mid- l 990s. w o rd processors, spreadsheet programs, database programs, and o the r a pplication programs were bundled together into supe r
packages called office suites.
Object-oriented design became the design of choice for large programming projects. Whe reas structured design is based o n a hie rarch y of tasks,
object-oriented design is based o n a hierarchy of data objects. J avarn. a
language des igned by Sun Microsystems for object-ori ented program ming. began to rival C++.
In 1990, Tim Bcrners-Lee, a British researche r a t the CE RN ph ysics
lab in Geneva. Switzerland, crea ted a set of technica l rules fo r what he
hoped wou ld be a uni versal Intern et document cemer ca lled th e World
Wide Web. Alo ng w ith these rules, h e created HTML, a lang uage fo r formatting documents. a nd a rudimen tary, text-only browser; a prog ra m that
allows a user to access information from websites worldwide. rn 1993,
Ma rc Andrecse n a nd Eric Bina released Mosaic, the fir t gra phics-capable
Former Microsoft
executive John Wood
left his job to start a
nonprofit that builds
schools and libraries in
developing countries.
He said, " Education
is the ticket out of
poverty, and it produces
better family health
and better treatment of
women. Every day, 250
million kids worldwide
wake up with no school
to go to. Two-thirds
of them are g irls." By
2013, Room to Read
had built 1752 schools
and 16,060 libraries."·"
24
Chapter 1 · The Big Picture
FIGURE 1.11
brows<.:r. To quote Newsweek: "Mosa ic just may have been the most importa nt computer applicati on evcr." 16
The re were now two giants in the browser market: Netscape Navigator (derived from Mosaic) and Microsoft's Internet Explorer (IE) . Microsort
bundled IE with its Windows operating system, which made JE the winner
in the browser wars. This bundling led to a monopoly lawsuit filed by the
U.S. government, the 2001 settlement of w hich required Microsoft to be
more open with its competitors. Netscape's future became uncertain a fter
America Online purchased it in 1998. AOL stopped supporting Netscape
products ten years la ter. Mozilla Firdox. a web browser that retained some
o f the flavor of Mosaic, was released in November 2004. As of 2014, Firefox
had captured 25% of the browser market.
Although the Internet had been around for decades, the World Wide
Web made it easy to use the Internet to share information around the
world (see
). Around 2002, the Web began changing. Social
networking sites such as Facebook a nd Twitter have become w ildly popular. Online blogging has turned an yone and everyone into an author or
social criti c. User-generated and -edited content characte rizes these new
websites. For example, Wikipedia is an online encyclopedia for which
anyone can en ter or edit content. The term Web 2.0 has been used by
some to describe these emerging sites and uses.
The fifth gen eration must be characterized most of all by the changing
profile of the user. The fi rst user was the programmer who wrote programs to solve specific proble m s-his
or her own or someone else's. Then
rh e systems programmer emerged ,
who wrote more and more complex
tools for other program me rs. By the
early 1970s, applications programmers
were using these complex tools to
write applications programs for nonprogra mmers to use. With the advent
of the personal computer, computer games, educational programs. and
user-friendly software packages, many
people became computer users. With
the birth and expansion of the Wo rld
Wide Web, web surfing has become
the recreation of choice, so even more
people h ave becom e compu te r users.
Sharing information on the World Wide Web
The user is a first-grade ch ild learning
25
1.2 The History of Computing
to read, a teenager downloading music, a college student writing a paper,
a homemaker planning a budget. and a banker looking up a customer's
loan record. The user is a ll of us.
ln our brief history of hardware and software, we have focused our
attention on traditional computers and computing systems. Paralleling
this history is the growing use of integrated circuits, or chips, to run
or regulate everything from toasters to cars to intensive care monitors
to satellit es. Such computing technology is ca lled an embedded system.
Although these chips arc not actually computers in the sense that we are
going to study in this book, they arc certainly a product of the technology
revolution of the last 5 5 years.
Predictions
We end this brief history of computing with a few predictions abou t computers that didn't come true: 11- 1•1
"I think there is a world market for maybe five co mput ers."Thomas Watson, chair of IBM, 1943.
"Where . .. the ENIAC is equipped with 18,000 vacuum tubes
and weighs 30 tons, computers in t he future may have only
LOOO vacu um tubes and weigh only 1.5 tons."-Popular Mechanics, 1949.
"I have traveled the le ngt h and breadth of this country and talked
with the best people, and I can assure you that data processing is
a fa d that won't last out the year."-The editor in charge o f business books for Prentice Hall, 1957.
"But what ... is it good for?"-Engineer at the Advanced Computing Systems division of IBM, commenting on the microchip,
1968.
"There is no reason anyone would want a computer in their
home."-Ken Olsen, president, chairman, and founder of Digita l
Equipment Corporation, 1977.
"$ 100 m illion is way too much to pay for Microsoft."- IBM, l 982.
"I predict the Internet ... will go spectacularly supernova and in
1996 catastrophically collapsc."-Bob Metcalfe, 3Com fo under
and inventor, 1995.
"Folks, the Mac platform is through - totally."-John C. Dvorak,
PC Ma.qazine, I 998.
Chapter 1: The Big Picture
1.3 Computing as a Tool and a Discipline
In the previous section on the history of computer software, we pointed
out the ever-changing role of the user. At the end of the first generation. users were split into two groups: systems programmers, who
developed tools to make programming easier, and applications programmers, who used those tools. Later, applications programmers built large
domain-specific programs such as statistical packages, word processors,
s11readshects, imelligent browsers. virtual environments, and medical
diagnosis applications on top of the traditional language tools. These
application programs were, in turn, used by practitioners with no compllter background.
So who is using the computer as a tool? Everyone, except for those
people who are creating the tools for others. 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).
A discipli11e is defined as a field of study. Peter Denning defines the dis cipline of computer science as "the body of knowledge and practices used
by comput ing professionals in their work .... This discipline is a lso called
computer science and engineering. computing, and info rma tics. " 20 He continues, "The body of knowledge of computing is frequently described as
the systematic study of algorithmic processes that describe and transform
information: their theory, analysis, design, efficiency, implementation,
and application. The fundamental question underlying all of computing
is. What can be (efficiently) automated?''
Denning states that 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
Represemarion, in which one is able to store data in a way that ii
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 usefu l purpose
A debate h as long raged about whether computing is a mathematical
discipline, a scientific discipline, or an engineering discipline. Computing
certainly has strong roots in mathematical logic. The theorems o( 1\1ring
tell us that certain problems cannot be solved, Boolean algebra describes
computer circuits, and numerical analysis plays a n important role in scientific computing. Scientific disciplines attempt to understand how their
systems work. The natural sciences exist to "fill in the instruction book
1.3 Computing as a Tool and a Discipline
that God forgot to leave us." 21 Thus computing is a scientific discipline.
as we use them to build and cest m odels of natural phenomena. As we
design and bu ild larger and larger computing systems, we are using tech niques from engineerin g.
In 1989, a task force of computer science educators proposed a curriculum mode l that covered the subareas of computing from the th ree
perspectives represent ed in o ur history: theory (ma thematics); experimen tal ion, called abstraction by computer scie ntists (sciences); and design
(engince ring). 22 Theo1y refe rs to the building of conceptua l frameworks
and notations fo r understa nd ing relationships amon g objects in a domain. Experi111e11tatio11 (abstract ion) refers to exploring models o f systems
and architectures within different application domains and determining
whether the models predict new behaviors. Design refers to con structing
computer syste m s t h at support work in different application domains.
Mt!:!!llM sh ows the topic areas out lined by the task force. Of th e
nine subject topic areas, six relate to under tanding and building computing tools in general: Algorithms and Data Structures, Programming
Languages, (Com pu ter) Architecture, Operating Systems, Software
Methodology and Engineering, a n d Human-Computer Comm un ication. Not surp risingly, these are ca lled systems areas. Th ree of th e subareas
relate to the compu ter's use as a tool: Database and In forma tion Retrieval.
Artificia l Intelligence and Robocics, and Graph ics. Th ese areas are called
applications areas.
1.1
Algorithms and Data Structures
Programming Languages
Architecture
Operating Systems
Software Methodology and Engineering
Database and Information Retrieval
Artificial Intelligence and Robotics
Human-Computer Communication
Graphics
Chapter 1: The Big Picture
l
Computers go to
college
The first departments of
computer science were
established in 1962 at
Purdue and Stanford
Universities. The first
PhD in computer
science was awarded
by the University of
Pennsylvania in 1965.
The first curriculum
effort in computer
science was published
by the ACM in 1968. 23
Revised curriculum documents, published in 2001 , reorganized and
ex panded the topic areas to a total of 14. Algorithms and Data Structun•s
has been expandt>d and put under the title "Programming Fundamentals."
With the rise of the Web, networks get their own category : Net-Centric
Computing. Artificial Int elligence and Robotics has been expanded to
include all Inte lligent Systems. Databases and In formation Retrieval are
now called Informat ion Management.
The new topics include Discrete Structures, an area of mathematics that is important to computing, and Algorithms a nd Complexity, the
formal study of algorithms rather than the study of how to write them .
These would be systems areas. Computational Science includes the application of numerical techniques and simu la tion to fie lds such as molecular
dynamics, celestia l mechanics, economic forecasting, and bioinformatics.
The last new topic is Social and Professional Issues, which relates to professionals in both systems and applications areas. This area is now called
the Tenth Strand. We have more to say about this in the Ethical Issues
sect ion . MtJ:!!jfW shows a listing of the topic areas as of 2001. The repo rt
1.2
Discrete Structures
Programming Fundamentals
Algorithms and Complexity
Architecture and Organization
Operating Systems
Net-Centric Computing
Programming Languages
Human-Computer Interaction
Graphics and Visual Computing
Intelligent Systems
Information Management
Social and Professional Issues
Software Engineering
Computational Science
29
Summary
"Computer Science Curriculum 2008: An Interim Revisio n of CS 2001,"
published in Dece mber 2008, leaves these 14 topic areas unch anged.
Research is o ngoing in both systems a nd applica ti ons. System s re search produces better general tools; applications research produces better tools (or the domain-specific applications. There is no doubt that the
rela tions hips be tween the people who inves tiga te compu tin g topics as a
discipline d irectl y affect those who use comput ers as a tool. Computing
research fuels the applica1ions people use daily. and rhe turn arou nd for
1he tech no logy is amazingly fast. This sym bio1ic relations hi p is more dynamic in computin g than in any o ther disci pline.
In this book we ex plain, at an introductory level, the ideas underlying
computing as a discipline. This boo k does not aim to make you a better
user o f a computer, although it sho uld undoubtedl y have that side effect.
Instead. we want you l o wa lk away with a 1horough kn owledge of how
computer systems work, whe re they are now, anJ where they may go in
th e Cuturc. For this reason, we examine bo th systems an d applica tions.
SUMMARY
This book is a broad stud y of computer syste ms. including the hardware 1hat makes up the devices, the softwa re programs executed by the
machi ne, and th e da ta managed and manipulated by both. Com pu ting
sys1ems can be divid ed inLo laye rs. and our o rganization of this book fo llows th ose la yers from the inside ou t.
The history of computing reveals 1he roots fro m which modern compming systems grew. This history spans fo ur ge nerations, each characterized
by th e componen1s used 10 build 1h e hardware and the software too ls
developed to allow the programmer to make more prod uctive use of the
hardware. These tools have formed layers of software around lhe hardware.
Throughout th e rest of this book, we examine the different layers that
make up a com puting sys1em, beginn ing with the informa tion layer and
ending wit h the communica1 ion layer. Our goa l is to give you a n appreciat ion and understanding of all aspects o f co mputing systems.
You m ay go on to stud y compu ter science in dep1h and contrib u te to
the fut ure of co111pu1ing systems. Or yo u ma y go o n to be an applica tion
specia list w ithin o ther discip lines, u sing the com pu ter as a tool. W hateve r
your future ho lds, given how preva len1 compuring syste m s a re. a fun damc111al und ers1anding of how they wo rk is imperati ve.
30
Chapte1 1. The Big Picture
ETHICAL ISSUES
Digital Divide
Over the past three decades. the dependence
of U.S. society o n co mputer technology has
increased d ramatically. At the beginning of
the 21st century. it was estimated that 5 1 %
of U.S. ho useholds had a personal computer and 42% had Inte rnet access. 24 By 2011,
75.6% of ho useholds had a computer and
7 l.7 % had Inte rn et access. These stat isti cs
also shovv that 24 .4% still did 1101 have a
compute r and 28.3 % did no t have Internet
access. The te rm digital divide has com e to
represent this disparity between Info rmatio n Age haves and have no ts.
Altho ugh this ga p is narrowing, it is still
of social concern. As groups, rural communities, minority households, low-income
families, and people with disabilities do no t
have the same levels of Internet access as
m o re advantaged people. fn edu cationa l setti ngs. Web connections and the quantity and
quality of computers vary g reatly across dem ographic regions. Programs su ch as the federally supported E-Rate Program, established
in l 996 and funded by fees charged to companies that provide interstate and/or imerna tional telecommunications ser vices, respond
to these inequalities by providing fin ancial
disco ums to schools and libraries in need.
In 2005, Nicholas Neg ro pon te, in collabo ration with MIT, laun ched the One
Laptop per Ch ild (OLPC) program . Working
from the philosophy that every child-even
those in the most remote regions of the
world-should have access to a computer,
OLPC set out to produce a low -cost laptop
fo r children who otherwise could not afford
o ne . OLPC designed a basic laptop that
sells for less than $200 and has a battery
th at can be ch arged by human power. By
20 11 , mo re th an two m illio n ch ildren and
teach e rs in 42 count ri es were using these
XO laptops.25
The digita l divide e ncompasses an additional challenge that develo ping na tions
mus t face. Without the necessary telecom munication infrastructures to support Internet access, emerging co un tries are a t a
serious disadvantage. Thi s is reflected in statisti cs th at sh ow how Int e rne t access va ri es
throughout the world. In 2012, the percentages of people who have Internet access per
contine nt or region were l 5.6% in Africa,
27.5% in Asia, 40.2 % in the Middle Ease
42.9 % in Sourh America, 63.2 % in Europe,
67.6% in Australia, and 78.6% in Nort h
America. The world figure is 34.3%; that is,
34.3% of people worldwide ha ve Intern et
access. 26
Wi th the adve nt of smartpho nes. computer usage a nd Inte rnet access no lo nge r
pa rallel each o ther. You no longer need a
computer to be an Intern et user.
A thought to po nder: Those withou t
Internet access do not kno w what is happening around the world, and the world has no
access 10 what they are thinking. They are
in visible to the rest of the world, and the rest
of the world is invisible to them.
31
Exercises
Abst racti o n
Compute r h ardware
For Exercises 1- l 0, choose from th e
following list of people.
A. Leibniz
B. Pascal
C. Babbage
D. Lovelace
E. Hollerith
F. Byron
G. Turing
H. Jacquard
1. What French mathematician built
a nd sold the first gea r-d ri ven
mechanical machin e tha t did
addition and subtra ction?
2. Who built th e firsr mechanical
machine that d id ad dition,
s ubtract io n, multiplica tion. and
division?
3. Who designed the first mechanical
machine th a t included memory?
4. Who was conside red th e first
program m er?
5. Who proposed tha t a punched card
be used for co unting rhc cen sus?
6 . Who edited Babbage's work?
Computer software
Computing sys tem
7.
8.
9.
I 0.
Who was Ada Lovelace's fa th er?
Who wou ld h ave been mentioned in
th e book the Code Breakers?
Who developed the concept of
punc h ed holes used in weaving
cloth?
Who is associated w ith IBM ?
For Exercises J l-2 3, match the h a rdwa re
listed to th e appropriate generation.
A. First
B. Second
C. Third
0. Fourth
E. Fifth
11. Circuit boa rds
12. Tra nsistor
13. Magnecic core memo ry
14. Ca rd input/outpu t
15. Parallel com p uting
16. Magnetic drum
17. Magnetic ta pe drives
18. Integra ted circuits
19. Personal computer
20. Vacuum wbe
2 I. La rge -sca le integration
32
Chapter : The Big Picture
22.
23.
Magnelic disk
Networking
For Exercises 24-38, match the software or
software concepts listed to th e appropriate
ge nera ti on.
A. First
B. Second
C. Th ird
D. Fou11h
E. Fifth
24. Assemblers
25. FORTRAN
26 . Operating systems
27. Stru ctured programming
28. Time sharin g
29. HTML (for the Web)
30. Loaders
31. Spreadsheets
32 . Word processo rs
33 . Lisp
34. PC-DOS
35 . Loaders/linkers bundled into an
operating system
36. Ja va
37. SPSS
38. C++
Exe rcises 39-59 art' short-answer
q uest io ns.
39 . What do we mean by the statement
th at "the 1980s a nd 1990s must be
characterized by the ch anging profile
or the user" ?
40. Why was Mosaic important?
41.
42.
Discuss the browser wa rs.
Describe how the Web changed arter
2002.
43. Of the predictions listed in this
chapter on page 25, w hi ch do
you consider the biggest e rror in
judgment? Expla in .
44. Name the four a reas in which the
practitioner must be skilled.
45. Distinguish between comp111ing as a
tool an d computing as a discipline.
46. Is computin g a ma themati ca l
d iscipline, a scienti fi c d iscipline,
or an engineering discipline?
Explain .
47. Distinguish be tween systems a reas
and app licatio ns areas in compu ting
as a discipline.
48. Define the word abs1ractio11 and relate
it to the drawing in Figure 1.2.
49. Compa re Tables 1. 1 and 1.2. Which
trends do you sec?
50. Define the word protocol and e xplain
how it is used in computing.
51. Distingu ish between machine
language and assembly language.
52. Distinguish between asse mbl y
lang uage and h igh-level languages.
53. FORTRA N and COBOL were two
high-level languages defined
during the second ge neration of
co mput e r software . Compare and
contrast these la nguages in terms
of th eir hi story and their purpose.
33
Thought Questions
54.
55.
56.
57 .
l.
2.
Distinguish between an assembler
and a compiler.
Distinguish between a syste ms
programmer and an applications
programmer.
What w as the rationa le behind the
developm ent of operating system s?
What constitutes systems software?
Ide ntify five abstractions in yo ur
school environment. Indicate which
details are hidden by the abstraction
and how the abstraction he lps
manage complexity.
Discuss the role of abstraction in the
history of computer software.
58.
59.
3.
4.
What do the following pieces of
software do?
a. Loade r
b. Linker
c. Editor
How was the program SPSS
differe nt from the programs that
came before it?
Did yo u have a computer in your
home when yo u w ere growing up?
If so, did it have Intern et access?
Did yo u use it for any of you r h igh
school classwork?
Do you know anyone today who
does not ha ve internet access?
Download