CHAPTER 1 CS 10051. TEXT READING ASSIGNMENT Prefaces and Chapters 1-2 OVERVIEW OF COURSE: 1. The...
-
date post
21-Dec-2015 -
Category
Documents
-
view
217 -
download
2
Transcript of CHAPTER 1 CS 10051. TEXT READING ASSIGNMENT Prefaces and Chapters 1-2 OVERVIEW OF COURSE: 1. The...
CHAPTER 1CHAPTER 1
CS 10051CS 10051
TEXT READING ASSIGNMENTTEXT READING ASSIGNMENTPrefaces andPrefaces and Chapters 1-2Chapters 1-2
OVERVIEW OF COURSE:
1. The algorithmic foundations of computer science.
2. The hardware world.
3. The virtual machine.
4. The software world.
5. Applications.
6. Social issues.
Note these correspond to the labels on the step pyramid on the backside of first interior page of your text.
WHAT IS COMPUTER SCIENCE?WHAT IS COMPUTER SCIENCE?
MISCONCEPTION 1:
Computer science is the study of computers.
MISCONCEPTION 2:
Computer science is the study of how to write computer programs.
MISCONCEPTION 3:
Computer science is the study of the uses and applications of computers and software.
SO, HOW DO WE DEFINE SO, HOW DO WE DEFINE COMPUTER SCIENCE?COMPUTER SCIENCE?
Computer science is the study of Computer science is the study of algorithmsalgorithms including including
1. Their formal and mathematical 1. Their formal and mathematical propertiesproperties
2. Their hardware realizations2. Their hardware realizations 3. Their linguistic realizations3. Their linguistic realizations 4. Their applications4. Their applications
THAT LEADS TO THE OBVIOUS THAT LEADS TO THE OBVIOUS QUESTION:QUESTION:
An algorithm is a An algorithm is a well-ordered well-ordered collection of collection of unambiguousunambiguous and and effectively computableeffectively computable operations operations
that, when executed, that, when executed, produces a resultproduces a result and and halts in a finite amount of timehalts in a finite amount of time..
What is an algorithm?
AN EXAMPLE OF A VERY SIMPLE AN EXAMPLE OF A VERY SIMPLE ALGORITHMALGORITHM
1. Wet your hair.1. Wet your hair. 2. Lather your 2. Lather your
hair.hair. 3. Rinse your 3. Rinse your
hair.hair. 4. Stop.4. Stop.
We assume that
The algorithm begins executing at the top of the list of operations.
The "Stop" can be omitted if we assume the last line is an implied "Stop" operation.
Observe:
Operations need not be executed by a computer only by an entity capable of carrying out the operations listed.
A A well-ordered well-ordered collection of collection of operationsoperations
The question that must be answered is:
At any point in the execution of the algorithm, do you know what operation is to be performed next?
Well-ordered operations:
1. Wet your hair.
2. Lather your hair.
3. Rinse your hair.
Not well-ordered operations:
1. Either wet your hair or lather your hair.
2. Rinse your hair.
Well-ordered operations:
1. If your hair is dirty, then
a. Wet your hair.
b. Lather your hair.
c. Rinse your hair.
2. Else
a. Go to bed.
Note: We will often omit the numbers and the letters and assume a "top-down" reading of the operations.
Don't assume that you can't make choices:
Well-ordered operations:
If your hair is dirty, then
Wet your hair.
Lather your hair.
Rinse your hair.
Else
Go to bed.
Unambiguous operations
The question that must be answered is:
Does the computing entity understand what the operation is to do?
This implies that the knowledge of the computing entity must be considered.
For example, is the following ambiguous?
Make the pie crusts.
To an experienced cook,
Make the pie crusts.
is not ambiguous.
But, an less experienced cook may need:
Take 1 1/3 cups of flour.
Sift the flour.
Mix the sifted flour with 1/2 cup of butter and 1/4 cup of water to make dough.
Roll the dough into two 9-inch pie crusts.
or even more detail!
Definition: An operation that is Definition: An operation that is unambiguous is called a unambiguous is called a primitive primitive operationoperation (or just a (or just a primitiveprimitive))
One question we will be exploring in the course is what are the primitives of a computer.
Note that a given collection of operations may be an algorithm with respect to one computing agent, but not with respect to another computing agent!!
Effectively computableEffectively computable operationsoperationsThe question that must be answered is:
Is the computing entity capable of doing the operation?
This assumes that the operation must first be unambiguous- i.e. the computing agent understands what is to be done.
Not effectively computable operations:
Write all the fractions between 0 and 1.
Add 1 to the current value of x.
that, when executed, that, when executed, produces a produces a resultresult
The result need not be a number or piece of text viewed as "an answer".
It could be an alarm, signaling something is wrong.
It could be an approximation to an answer.
It could be an error message.
The question that must be answered is:
Can the user of the algorithm observe a result produced by the algorithm?
halts in a finite amount of halts in a finite amount of timetime
The question that must be answered is:
Will the computing entity complete the operations in a finite number of steps and stop?
Do not confuse "not finite" with "very, very large". A failure to halt usually implies there is an infinite loop in the collection of operations:
1. Write the number 1 on a piece of paper.
2. Add 1 to the number you just wrote and write it on a piece of paper.
3. Repeat 2.
4. Stop.
Definition of an algorithm:Definition of an algorithm:
An algorithm is a An algorithm is a well-ordered well-ordered collection of collection of unambiguousunambiguous and and effectively computable effectively computable operations that, operations that, when executed, when executed, produces a resultproduces a result and and halts in a finite amount of time.halts in a finite amount of time.
Note: Although I have tried to give clean cut examples toillustrate what these new words mean, in some cases, a collection of operations can fail for more than one reason.
RETURNING TO OUR ORGINAL RETURNING TO OUR ORGINAL QUESTION:QUESTION:
HOW DO WE DEFINE COMPUTER HOW DO WE DEFINE COMPUTER SCIENCESCIENCE??
Computer science is the study of Computer science is the study of algorithmsalgorithms including including 1. Their formal and mathematical 1. Their formal and mathematical
propertiesproperties 2. Their hardware realizations2. Their hardware realizations 3. Their linguistic realizations3. Their linguistic realizations 4. Their applications4. Their applications
1. Their formal and 1. Their formal and mathematical propertiesmathematical properties
It is not enough to develop any old It is not enough to develop any old algorithm to solve a problem.algorithm to solve a problem.
We must worry about some additional We must worry about some additional properties of an algorithm:properties of an algorithm: How efficient is it?How efficient is it? What kinds of resources must be used to What kinds of resources must be used to
execute it?execute it? How does it compare to other algorithms that How does it compare to other algorithms that
solve the same problem.solve the same problem.
2. Their hardware realizations2. Their hardware realizations
Algorithms need not execute on machines. Algorithms need not execute on machines. All we really need are computing entities.All we really need are computing entities. Anything that can compute – e.g., a human.Anything that can compute – e.g., a human.
But, ultimately, most of our interest will lie But, ultimately, most of our interest will lie with algorithms that execute on computing with algorithms that execute on computing entities called "computers".entities called "computers".
How are these entities constructed?How are these entities constructed? The emphasis will be on the logical construction The emphasis will be on the logical construction
of a computer, not the physical construction.of a computer, not the physical construction.
3. Their linguistic realizations3. Their linguistic realizations
How do we represent algorithms?How do we represent algorithms? We will start with one linguistic We will start with one linguistic
realization today, called realization today, called pseudocode pseudocode and later will look at many different and later will look at many different realizations in various programming realizations in various programming languages.languages.
We'll even consider some of the visual We'll even consider some of the visual representations using graphics.representations using graphics.
And finally:And finally:
4. Their applications4. Their applications What are some of the many important and What are some of the many important and
popular applications of computers in current popular applications of computers in current use including:use including: modeling and simulationmodeling and simulation information retrievalinformation retrieval numerical problem solvingnumerical problem solving telecommunicationstelecommunications artificial intelligenceartificial intelligence networkingnetworking graphicsgraphics
6
Abacus An early device to record numeric valuesWe normally do not call it a computer, but a computing device.It is still used in parts of the world today.
This distinction between a computer and a computing device will become clearer as we look at other aspects of the history of computing.
Early History of ComputingEarly History of Computing
source: http://www.ee.ryerson.ca:8080/~elf/abacus/intro.html
Napier’s Bones (or Rods)Napier’s Bones (or Rods) Rods were marked with multiplication table Rods were marked with multiplication table
results.results. These were used to provide fairly simple These were used to provide fairly simple
means of multiplying large numbers.means of multiplying large numbers. On the below web site, one of the labs goes On the below web site, one of the labs goes
into some details on Napier’s Bones:into some details on Napier’s Bones:http://http://csilluminated.jbpub.com/labs/Napier.cfmcsilluminated.jbpub.com/labs/Napier.cfm The honor for constructing the first calculating The honor for constructing the first calculating
machine belongs to a German called Wilhelm machine belongs to a German called Wilhelm Schickard . In 1623 he completed a Schickard . In 1623 he completed a mechanical calculating machine based on mechanical calculating machine based on Napier's work. Napier's work.
Using the bones to compute 46732 Using the bones to compute 46732 X 5X 5
Add:
10
150
3500
30000
200000
source: http://csilluminated.jbpub.com/labs/Napier.cfm
Slide RuleSlide Rule In 1614, John Napier discovered algorithms which made In 1614, John Napier discovered algorithms which made
it possible to perform multiplication and division using it possible to perform multiplication and division using addition and subtraction.addition and subtraction.
To avoid having to log tables, Edmund Gunter created a To avoid having to log tables, Edmund Gunter created a number line in which the position of numbers were number line in which the position of numbers were proportional to their logs. proportional to their logs.
William Oughtred soon simplified things further by William Oughtred soon simplified things further by creating a slide rule with two Gunter’s lines.creating a slide rule with two Gunter’s lines. One line could “slide” in order to increment (multiply) One line could “slide” in order to increment (multiply)
or decrement (divide) a value by a second value.or decrement (divide) a value by a second value. The slide rule was widely in use by the end of the 17 The slide rule was widely in use by the end of the 17
century and remained popular for the next 300 years. century and remained popular for the next 300 years. Improvements included ability to compute powers and Improvements included ability to compute powers and
roots of numbers but did not include ability to add or roots of numbers but did not include ability to add or subtract.subtract.
Blaise PascalBlaise Pascal In 1642 Blaise Pascal, a Frenchman invented a In 1642 Blaise Pascal, a Frenchman invented a
new kind of computing device. new kind of computing device. It used wheels instead of beads. Each wheel It used wheels instead of beads. Each wheel
had ten notches, numbered '0' to '9'. When a had ten notches, numbered '0' to '9'. When a wheel was turned seven notches, it added 7 to wheel was turned seven notches, it added 7 to the total on the machine. the total on the machine.
Pascal's machine, known as the Pascal's machine, known as the PascalinePascaline, , could add up to 999999.99. could add up to 999999.99.
It could also subtract. It could also subtract.
source: http://www.tased.edu.au/schools/rokebyh/curric/infotech/stage1/assign2/pre20th.htm#schickard
Gottfried Leibnitz Gottfried Leibnitz
Leibnitz improved on Pascal's adding Leibnitz improved on Pascal's adding machine so that it could also perform machine so that it could also perform multiplication, division and calculate multiplication, division and calculate square roots. square roots.
source: http://www.tased.edu.au/schools/rokebyh/curric/infotech/stage1/assign2/pre20th.htm#schickard
Grillet’s Pocket CalculatorGrillet’s Pocket Calculator One very early machine which incorporated Napier’s One very early machine which incorporated Napier’s
ideas was that built by a French clockmaker called Grillet ideas was that built by a French clockmaker called Grillet in 1678. in 1678.
Grillet included a set of Napier's Rods in an adaptation of Grillet included a set of Napier's Rods in an adaptation of the Pascaline. It could be considered the world's the Pascaline. It could be considered the world's first first pocket calculatorpocket calculator. .
The top section of the device consisted of 24 dials or sets The top section of the device consisted of 24 dials or sets of wheels. The lower section contained a set of inverted of wheels. The lower section contained a set of inverted Napier’s Rods engraved on cylinders. Napier’s Rods engraved on cylinders.
Although the device was limited, it did allow simple Although the device was limited, it did allow simple operations to be performed. operations to be performed.
It could carry out eight digit additions -- something that It could carry out eight digit additions -- something that would have been very useful at a time when very few would have been very useful at a time when very few people had skill with numbers. people had skill with numbers.
Grillet’s MachineGrillet’s Machine
http://www.tased.edu.au/schools/rokebyh/curric/infotech/stage1/assign2/pre20th.htm#schickard
Joseph Jacquard Joseph Jacquard In the late 1700s in France, Joseph Jacquard In the late 1700s in France, Joseph Jacquard
invented a way to control the pattern on a invented a way to control the pattern on a weaving loom used to make fabric. weaving loom used to make fabric.
Jacquard punched pattern holes into paper Jacquard punched pattern holes into paper cards. cards.
The cards told the loom what to do. The cards told the loom what to do. Instead of a person making every change in a Instead of a person making every change in a
pattern, the machine made the changes all by pattern, the machine made the changes all by itself. itself.
Jacquard's machine didn't count anything. So Jacquard's machine didn't count anything. So it wasn't a computer or even a computing it wasn't a computer or even a computing device. His ideas, however, led to many device. His ideas, however, led to many other computing inventions later. other computing inventions later.
Source: http://65.107.211.206/technology/jacquard.html
Intricate textile patterns were prized in France in early 1800s. Jacquard’s loom (1805-6) used punched cards to allow only some rods to bring the thread into the loom on each shuttle pass.
Jacquard Loom - A mechanical device that Jacquard Loom - A mechanical device that influenced early computer designinfluenced early computer design
Source: http://65.107.211.206/technology/jacquard.html
Sheets of punched cards set the Sheets of punched cards set the pattern of the weavepattern of the weave
Luddites Luddites
During the 1700's and early 1800's, part of the world saw the During the 1700's and early 1800's, part of the world saw the development of industrialization. development of industrialization.
Before the Industrial Revolution, manufacturing was done by Before the Industrial Revolution, manufacturing was done by hand or simple machines. hand or simple machines.
The Industrial Revolution caused many people to lose their The Industrial Revolution caused many people to lose their jobs.jobs.
Groups of people known as Luddites attacked factories and Groups of people known as Luddites attacked factories and wrecked machinery in Britain between 1811 and 1816. wrecked machinery in Britain between 1811 and 1816.
The Luddites received their name from their mythical leader The Luddites received their name from their mythical leader Ned Ludd. Ned Ludd.
They believed that the introduction of new textile machines in They believed that the introduction of new textile machines in the early 1800's had caused unemployment and lowered the the early 1800's had caused unemployment and lowered the textile workers' standard of living. textile workers' standard of living.
Note this is similar to the way some people see that Note this is similar to the way some people see that computers today are taking the jobs of workers. computers today are taking the jobs of workers.
Charles BabbageCharles Babbage Babbage is known as the Babbage is known as the
father of modern computingfather of modern computing because he was the first because he was the first person to design a general person to design a general purpose computing device. purpose computing device.
In 1822, Babbage began to In 1822, Babbage began to design and build a small design and build a small working model of an working model of an automatic mechanical automatic mechanical calculating machine, which he calculating machine, which he called a "difference engine". called a "difference engine".
Example: It could find the first Example: It could find the first 30 prime numbers in two and 30 prime numbers in two and a half minutes. a half minutes.
Source: http://www.sciencemuseum.org.uk/on-line/babbage/page3.asp
In the Science Museum, London
A closer look at difference engineA closer look at difference engine
source: http://www.computer.org/history/development/graphics/diff_eng.jpg
Babbage continued work to produce a full scale working Babbage continued work to produce a full scale working Difference Engine for 10 years, but in 1833 he lost interest Difference Engine for 10 years, but in 1833 he lost interest because he had a "better idea"--the construction of what because he had a "better idea"--the construction of what today would be described as a general-purpose, fully today would be described as a general-purpose, fully program-controlled, automatic program-controlled, automatic mechanical mechanical digital computer.digital computer.
Babbage called his machine an "analytical engine". Babbage called his machine an "analytical engine".
He designed, but was unable to build, this Analytical Engine He designed, but was unable to build, this Analytical Engine (1856) which had many of the characteristics of today’s (1856) which had many of the characteristics of today’s computers:computers:
an input devicean input device – punched card reader – punched card reader
an output devicean output device – a typewriter – a typewriter
memorymemory – rods which when rotated into position – rods which when rotated into position “stored” a number“stored” a number
control unitcontrol unit – punched cards with instructions encoded – punched cards with instructions encoded as with the Jacquard loomas with the Jacquard loom
source: http://www.sciencemuseum.org.uk/on-line/babbage/page5.asp
The machine was to operate automatically, by steam power, and would require only one attendant.
Some call Babbage’s analytic engine the first Some call Babbage’s analytic engine the first computer, but, as it was not built by him, most computer, but, as it was not built by him, most
people place that honor elsewhere.people place that honor elsewhere.
Babbage's analytical engine contained all the Babbage's analytical engine contained all the basic elements of an automatic computer--basic elements of an automatic computer--storagestorage, , working memoryworking memory, , a system for moving a system for moving between the twobetween the two, , an input devicean input device and and an output an output devicedevice. .
But Babbage lacked funding to build the But Babbage lacked funding to build the machine so Babbage's computer was never machine so Babbage's computer was never completed. completed.
Babbage designed a printer, also, that has Babbage designed a printer, also, that has just been built at the Science Museum in just been built at the Science Museum in
London- 4,000 working parts!London- 4,000 working parts!
source: http://news.bbc.co.uk/1/hi/sci/tech/710950.stm
7
Ada LovelaceAda Lovelace Ada Byron Lovelace was a close Ada Byron Lovelace was a close
friend of Babbage. friend of Babbage. Ada thought so much of Ada thought so much of
Babbage's analytical engine that Babbage's analytical engine that she translated a previous work she translated a previous work about the engine. about the engine.
Because of the detailed Because of the detailed explanations she added to the explanations she added to the work, she has been called the work, she has been called the inventor of computer inventor of computer programmingprogramming. .
source:http://www.pbs.org/teachersource/mathline/concepts/womeninmath/activity2.shtm
Today, on behalf of her work in computing, a programming language, Ada, is named after her.
Herman HollerithHerman Hollerith In 1886, Herman Hollerith invented a machine known as the In 1886, Herman Hollerith invented a machine known as the
Automatic Tabulating Machine, to count how many people Automatic Tabulating Machine, to count how many people lived in the United States. lived in the United States.
This machine was needed because the census was taking This machine was needed because the census was taking far too long. far too long.
His idea was based on Jacquard's loom. Hollerith used His idea was based on Jacquard's loom. Hollerith used holes punched in cards. The holes stood for facts about a holes punched in cards. The holes stood for facts about a person; such as age, address, or his type of work. The person; such as age, address, or his type of work. The cards could hold up to 240 pieces of information. cards could hold up to 240 pieces of information.
Hollerith also invented a machine, a Hollerith also invented a machine, a tabulatortabulator, to select , to select special cards from the millions. special cards from the millions.
To find out how many people lived in Pennsylvania, the To find out how many people lived in Pennsylvania, the machine would select only the cards punched with a machine would select only the cards punched with a Pennsylvania hole. Hollerith's punched cards made it Pennsylvania hole. Hollerith's punched cards made it possible to count and keep records on over 60 million possible to count and keep records on over 60 million people. people.
Hollerith TabulatorHollerith Tabulator
Hollerith founded the Tabulating Machine Company. In 1924, the name of the company was changed to International Business Machines Corporation (IBM).
This is the 1890 version used in tabulating the 1890 federal census.
Source: http://www.columbia.edu/acis/history/hollerith.html
Punched cardsPunched cardsThe punched card used by the Hollerith Tabulator for the 1890 US census.
The punched card was standardized in 1928:It was the primary input media of data processing and computing from 1928 until the mid-1970s and was still in use in voting machines in the 2000 USA presidential election.source:
http://www.columbia.edu/acis/history/hollerith.html
History of HardwareHistory of Hardware
Harvard Mark I, ENIAC, UNIVAC I, Harvard Mark I, ENIAC, UNIVAC I, ABC and othersABC and others
These are the names of some of the early These are the names of some of the early computers that launched a new era in computers that launched a new era in mathematics, physics, engineering and mathematics, physics, engineering and economics initially and, subsequently, almost economics initially and, subsequently, almost every area has been impacted by computers.every area has been impacted by computers.
The early computers were huge physically and The early computers were huge physically and very limited by today’s standards.very limited by today’s standards.
8
Vacuum TubesLarge, not very reliable, generated a lot of heat
Magnetic Drum StorageMemory device that rotated under a read/write head
Card Readers & Magnetic Tape DrivesDevelopment of these sequential auxiliary storage devices
First Generation Hardware First Generation Hardware (1951-1959) – Major (1951-1959) – Major
characteristicscharacteristics
ABC ABC built by Professor John Atanasoff and a built by Professor John Atanasoff and a graduate student, Clifford Berry, at Iowa State graduate student, Clifford Berry, at Iowa State
University between 1939 and 1942. University between 1939 and 1942. Special purpose Special purpose
computer and was computer and was not truly not truly programmable. programmable.
The instructions to The instructions to the machine were the machine were entered by buttons. entered by buttons.
Input: Punched paper Input: Punched paper tapetape
Output: Punched Output: Punched cardscards
Source: www.cs.iastate.edu/jva/images/abc-1942.gif
Mark I designed by Howard Aiken and Grace Mark I designed by Howard Aiken and Grace Hopper at Harvard University in 1939-1944.Hopper at Harvard University in 1939-1944.
Contains more than 750,000 components, is 50 feet long, 8 feet tall, and weighs approximately 5 tons
Instructions were pre-punched on paper tape
Input was by punched cards Output was displayed on an electric typewriter. Could carry out addition, subtraction, multiplication,
division and reference to previous results. Still exists in the Computer Science Building at Harvard University and can be turned on and run!
Source: http://www.digidome.nl/howard_h__aiken.htm
Zuse’s Machines, Zuse’s Machines, Z1-Z4Z1-Z4 built by Konrad Zuse in built by Konrad Zuse in Berlin, Germany, 1938 – 1944 (all destroyed Berlin, Germany, 1938 – 1944 (all destroyed
supposedly in the Berlin bombings)supposedly in the Berlin bombings)
If these machines did exist as described by Zuse after the war, they were the first computers.
Rebuilt model of Z3 housed in Deutsches Technik Rebuilt model of Z3 housed in Deutsches Technik
Museum, BerlinMuseum, Berlin
Input: from a numeric, decimal, 20 digit keyboardOutput: Numbers displayed with lamps, 4 decimal digits with decimal pointProgrammed via a punch tape and punch tape reader
Multiplication 3 seconds,
division 3 seconds, addition 0.7 seconds.
Used a 600 relay numeric unit,
1600 relay storage unit
Computer vs computing deviceComputer vs computing device
Most, but not all, people claim a computer Most, but not all, people claim a computer must bemust be DigitalDigital ProgrammableProgrammable ElectronicElectronic General purposeGeneral purpose
If any characteristic is missing, at best, If any characteristic is missing, at best, you have a computing device.you have a computing device.
Mauchly and Eckert or Zuse – built Mauchly and Eckert or Zuse – built the first computerthe first computer
Many claim the ENIAC was the first computer as Many claim the ENIAC was the first computer as there was proof that it did exist.there was proof that it did exist.
John MauchlyJohn Mauchly envisioned the ENIAC. He was a envisioned the ENIAC. He was a professor of Physics at Ursinus College. In 1943 he professor of Physics at Ursinus College. In 1943 he attended a workshop at Penn were, he saw a attended a workshop at Penn were, he saw a machine calculating firing tables. Mauchly realized machine calculating firing tables. Mauchly realized that he could build an electronic machine that could that he could build an electronic machine that could be much faster. be much faster.
J. Presper EckertJ. Presper Eckert solved the engineering challenges. solved the engineering challenges. The chief challenge was tube reliability. Eckert was The chief challenge was tube reliability. Eckert was able to get good reliability by running the tubes at 1/4 able to get good reliability by running the tubes at 1/4 power. power.
ENIAC – ENIAC – ( (EElectrical lectrical NNumerical umerical IIntegrator ntegrator AAnd nd CCalculator), built by Presper Eckert and John alculator), built by Presper Eckert and John
Mauchly at Moore School of Engineering, Mauchly at Moore School of Engineering, University of Pennsylvania, 1941-46University of Pennsylvania, 1941-46
Often called the first computer (that was electronic, programmable, general purpose and digital).
ENIACENIAC 18,000 vacuum tubes and weighed 30 18,000 vacuum tubes and weighed 30 tonstons Duration of an average run without some failure Duration of an average run without some failure
was only a few hours, although it was predicted was only a few hours, although it was predicted to not run at all! to not run at all!
When it ran, the lights in Philadelphia dimmed!When it ran, the lights in Philadelphia dimmed! ENIAC Stored a maximum of twenty 10-digit ENIAC Stored a maximum of twenty 10-digit
decimal numbers. decimal numbers. Input: IBM card readerInput: IBM card reader Output: Punched cards, lightsOutput: Punched cards, lights
Eniac’s Vacuum TubesEniac’s Vacuum Tubes
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley.
Source: http://www.cs.virginia.edu/brochure/images/mus_024.jpg
A vacuum tube similar to those used in the earliest computers.
ENIACENIAC
Programming required rewiring of the machine,Source: http://ftp.arl.army.mil/ftp/historic-computers/
UNIVAC – first commercial UNIVAC – first commercial computercomputer
On March 31, 1951, the Census Bureau On March 31, 1951, the Census Bureau accepted delivery of the first UNIVAC accepted delivery of the first UNIVAC computer.computer.
The final cost was close to one million dollars. The final cost was close to one million dollars. Forty-six UNIVAC computers were built for both Forty-six UNIVAC computers were built for both
government and business uses. government and business uses. Remington Rand became the first American Remington Rand became the first American
manufacturer of a commercial computer manufacturer of a commercial computer system. system.
Their first non-government contract was for Their first non-government contract was for General Electric in Louisville, Kentucky, who General Electric in Louisville, Kentucky, who used the UNIVAC computer for a payroll used the UNIVAC computer for a payroll application. application.
source: http://inventors.about.com/library/weekly/aa062398.htm
UNIVAC’s prediction ignoredUNIVAC’s prediction ignored
A 1952 A 1952 UNIVACUNIVAC made history by predicting the made history by predicting the election of Dwight D. Eisenhower as US election of Dwight D. Eisenhower as US president before the polls closed. president before the polls closed.
The results were not immediately reported by The results were not immediately reported by Walter Cronkite because they were not Walter Cronkite because they were not believed to be accurate. believed to be accurate.
Democratic presidential candidate Adlai Democratic presidential candidate Adlai Stevenson was the front-runner in all the Stevenson was the front-runner in all the advance opinion polls, but by 8:30 p.m. on the advance opinion polls, but by 8:30 p.m. on the East Coast, well before polls were closed in the East Coast, well before polls were closed in the Western states, UNIVAC projected 100-to-1 Western states, UNIVAC projected 100-to-1 odds that Dwight D. Eisenhower would win by odds that Dwight D. Eisenhower would win by a landslide, which is in fact what happened. a landslide, which is in fact what happened.
1952 election night1952 election night
source: http://www.cedmagic.com/history/univac-cronkite.html
Whirlwind at MIT - 1952Whirlwind at MIT - 1952 The first digital computer capable of The first digital computer capable of
displaying real time text and graphics on displaying real time text and graphics on a large oscilloscope screen. a large oscilloscope screen.
Bouncing ball displayed on screen
Source: http://www.accad.ohio-state.edu/~waynec/history/lesson2.html
9
TransistorReplaced vacuum tube, fast, small, durable, cheap
Magnetic CoresReplaced magnetic drums, information available instantly
Magnetic DisksReplaced magnetic tape, data can be accessed directly
Second Generation Hardware Second Generation Hardware (1959-1965) - Characteristics(1959-1965) - Characteristics
A Typical Computing Environment in 1960 – A Typical Computing Environment in 1960 – UNIVAC 1107 at Case Institute of UNIVAC 1107 at Case Institute of
TechnologyTechnology
source: http://www.fourmilab.ch/documents/univac/case1107.html
1961-1961- The true purpose of computers is finally The true purpose of computers is finally
realized in 1961, when a MIT student, Steve realized in 1961, when a MIT student, Steve Russell, created the first computer game – Russell, created the first computer game – Spacewar on a DEC PDP-1- a minicomputerSpacewar on a DEC PDP-1- a minicomputer
Sources: http://inventors.about.com/library/weekly/aa090198.htmhttp://www.nersc.gov/~deboni/Computer.history/GAM.PDP-1/
200 hours to program!
Father of Graphics- Ivan SutherlandFather of Graphics- Ivan Sutherland
Ph.D. Thesis, 1963, MIT : Ph.D. Thesis, 1963, MIT : Sketchpad: The First Interactive Computer Sketchpad: The First Interactive Computer Graphics Graphics
Package on TX-2 (forerunner of DEC machines).Package on TX-2 (forerunner of DEC machines).Source: http://www.sun.com/960710/feature3/sketchpad.html#sketch
TX-2 was a giant machine for the day:TX-2 was a giant machine for the day:
320 kilobytes of memory, about twice the 320 kilobytes of memory, about twice the capacity of the biggest commercial machinescapacity of the biggest commercial machines
magnetic tape storage, magnetic tape storage, an on-line typewriter, an on-line typewriter, the first Xerox printer, the first Xerox printer, paper tape for program input, paper tape for program input, a light pen for drawing,a light pen for drawing, a nine inch CRT (i.e. display screen) !a nine inch CRT (i.e. display screen) !
Light Pen InputLight Pen Input
““Sketchpad: A Man-machine Graphical Communications Sketchpad: A Man-machine Graphical Communications System," used the light pen to create engineering drawings System," used the light pen to create engineering drawings directly on the CRT.directly on the CRT.
Source: http://www.accad.ohiostate.edu/~waynec/history/lesson2.html
1964 CDC1964 CDC
Control Data Control Data CorporationCorporation
CDC 6600 at U CDC 6600 at U of Texas, 1964-of Texas, 1964-6868
Cost: Cost: $2,000,000+$2,000,000+
Kept in dustfree Kept in dustfree room behind room behind locked doorslocked doorssource: http://www.computerhistory.org/timeline/timeline.php?
timeline_category=cmptr
CDC 6600 – University of Texas - 1964CDC 6600 – University of Texas - 1964
Source: http://ed-thelen.org/comp-hist/vs-cdc-6600.jpg
Workstations were available to only a few.
Most had to use punched cards handed in through a window
A sampling of 1960-1965 circuit boards:
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
10
Integrated CircuitsReplaced circuit boards, smaller, cheaper, faster, more reliable.
TransistorsNow used for memory construction
Terminal An input/output device with a keyboard and screen
Third Generation Hardware (1965-Third Generation Hardware (1965-1971)1971)
By 1968 you could buy a 1.3 MHz CPU with half a megabyte of RAM and 100 megabyte hard drive for a mere US$1.6 million.
PDP I – first of the minicomputers to be PDP I – first of the minicomputers to be used by many universities.used by many universities.
The PDP-40, a popular 3The PDP-40, a popular 3rdrd generation generation minicomputer in the early 1970’sminicomputer in the early 1970’s
The DEC-10 was popular at a lot of large universities.
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
Dumb terminals or workstations were used to tie into the mainframes:
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
11
Large-scale IntegrationGreat advances in chip technology
PCs, the Commercial Market, WorkstationsPersonal Computers were developed as new companies like Apple and Atari came into being. Workstations emerged.
Fourth Generation Hardware Fourth Generation Hardware (1971-?)(1971-?)
Personal Computers were Personal Computers were Introduced around 1977Introduced around 1977
Photo of early PCs taken at Computer Science History Museum In San Jose, CA, by Dr. Robert Walker on Trip to Silicon Valley
Typical prices on early PCsTypical prices on early PCs
Contrary to Contrary to popular popular belief today, belief today, these were these were not cheap – not cheap – the IBM the IBM 5100 in mid 5100 in mid 1970s.1970s.
MemoryMemory BASICBASIC APLAPL BothBoth
16K16K $8,975$8,975 $9,975$9,975 $10,975$10,975
32K32K $11,975$11,975 $12,975$12,975 $13,975$13,975
48K48K $14,975$14,975 $15,975$15,975 $16,975$16,975
64K64K $17,975$17,975 $18,975$18,975 $19,975$19,975
Note that $1 in 1975 would be equal to $3.76 today somultiply these by ~3.8! For this price comparison see http://www.westegg.com/inflation/
VAX 780 – Early Departmental VAX 780 – Early Departmental Computer, obtained around 1982.Computer, obtained around 1982.
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
Dumb terminals were used for some input with these machines and line printers were used for output:
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
12
Parallel ComputingComputers rely on interconnected central processing units that increase processing speed.
NetworkingWith the Ethernet small computers could be connected and share resources. File servers connected PCs in the late 1980s.
ARPANET and LANs Internet
Parallel Computing and Parallel Computing and NetworkingNetworking
There are many different kinds of parallel There are many different kinds of parallel machines – this is one typemachines – this is one type
A parallel computer must be capable of working A parallel computer must be capable of working on one task even though many individual on one task even though many individual computers are tied together.computers are tied together.
Lucidor Lucidor is a distributed memory computer (a is a distributed memory computer (a cluster) from HP. It consists of 74 HP servers cluster) from HP. It consists of 74 HP servers and 16 HP workstations. Peak: 7.2 and 16 HP workstations. Peak: 7.2 GFLOPsGFLOPs
source:http://www.pdc.kth.se/compresc/machines/lucidor.html
GFLOP = one billion decimal number operations/second
Cray Machines Are Another Type Cray Machines Are Another Type of Parallel Machine –Cray 1of Parallel Machine –Cray 1
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
Cray 2Cray 2
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
Another Earlier Parallel Computer at the Another Earlier Parallel Computer at the University of Illinois was the Illiac IVUniversity of Illinois was the Illiac IV
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
Another View of the Illiac IVAnother View of the Illiac IV
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
CM-2 Connection MachineCM-2 Connection Machine
Interesting fact: The lights are there only for show!
IBM 360 (late ’60s) Console IBM 360 (late ’60s) Console created “blinking lights” expectationcreated “blinking lights” expectation
Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley
A History of the Web - Let’s Be Precise A History of the Web - Let’s Be Precise
Late 1960s – the Late 1960s – the ARPANETARPANET was conceived as a was conceived as a network of computers in which packets of information network of computers in which packets of information (i.e. data) could be transmitted between various (i.e. data) could be transmitted between various computers via telephone lines or higher speed computers via telephone lines or higher speed dedicated data lines.dedicated data lines.
ARPA was the Advanced Research Projects Agency.ARPA was the Advanced Research Projects Agency.
This allowed remote logins to computers (using This allowed remote logins to computers (using telnettelnet), the ability to transfer files between computers ), the ability to transfer files between computers (using (using ftpftp = = file transfer protocolfile transfer protocol), and ), and e-maile-mail..
Many people now say it was designed for the Many people now say it was designed for the military, but that was newspaper hype.military, but that was newspaper hype.
The purpose of the ARPANET was to allow the The purpose of the ARPANET was to allow the sharing of National Science Foundation (NSF) sharing of National Science Foundation (NSF) research project information between research project information between researchers.researchers.
In 1972, there were 29 nodes (i.e. computer In 1972, there were 29 nodes (i.e. computer sites that were interconnected).sites that were interconnected).
The ARPANET Introduced the The ARPANET Introduced the Internet ProtocolInternet Protocol
To move data from computer A to computer B:To move data from computer A to computer B: Break the data up into packets of information.Break the data up into packets of information. Each packet carries the Each packet carries the IPIP ((Internet ProtocolInternet Protocol) address of ) address of
computer B which consists of 4 numbers.computer B which consists of 4 numbers. At each computer, the address is read and then the At each computer, the address is read and then the
envelope is shipped along to another computer using a envelope is shipped along to another computer using a recipe called a recipe called a routing algorithmrouting algorithm..
At no time are A and B necessarily physically connected At no time are A and B necessarily physically connected (unless they are adjacent nodes on the network).(unless they are adjacent nodes on the network).
The different packets will not necessarily follow the same The different packets will not necessarily follow the same route.route.
At computer B, the packets are reassembled into the At computer B, the packets are reassembled into the document.document.
A packet is typically in the 40 – 1500 byte rangeA packet is typically in the 40 – 1500 byte range (1 byte = 1 character) (1 byte = 1 character)
DocumentX at A
Document
Packet X-1for B
Packet X-2 for B
Packet X-3for B
Computer C
Computer D
Computer E
Computer F
Computer G
Computer BDocument
X at B
Packet-based transmission of a document from Computer A to Computer BNote: If one computer fails, the document still may be transmitted.
Tracing the Route Your Packets TakeTracing the Route Your Packets Take
TracerouteTraceroute is a tool that traces the route your is a tool that traces the route your packets take.packets take.
PingPing is a tool that tells you whether or not a web is a tool that tells you whether or not a web site is up.site is up.
Ping PlotterPing Plotter (http://www.pingplotter.com/) is a (http://www.pingplotter.com/) is a tool that graphically shows you the route your tool that graphically shows you the route your packets take.packets take. It was free, but can be used for 30 days It was free, but can be used for 30 days
without a subscription of $0.99 a month today.without a subscription of $0.99 a month today. Interesting to see how your packets travel!Interesting to see how your packets travel!
One Ping Plotter Trace to www.weather.comOne Ping Plotter Trace to www.weather.com
A Trace to KSUA Trace to KSUIf you watch these interactively you’ll see the route changes.
Internet to World Wide WebInternet to World Wide Web The InternetThe Internet is a collection of computers using the is a collection of computers using the
internet protocol to transmit informationinternet protocol to transmit information The World Wide WebThe World Wide Web is a multimedia environment is a multimedia environment
invented by Tim Berners-Lee, in 1990. invented by Tim Berners-Lee, in 1990. Was a physicist at CERN (the European Was a physicist at CERN (the European
Organization for Nuclear Research). Organization for Nuclear Research). Wrote the first web Wrote the first web browser browser ((WorldWideWebWorldWideWeb) and ) and
the software for the first web server. the software for the first web server. Invented both the Invented both the HTML markup languageHTML markup language in which in which
many web pages are written and the HTTP protocol many web pages are written and the HTTP protocol used to request and transmit web pages between used to request and transmit web pages between web servers and web browsersweb servers and web browsers
Growth in WWWGrowth in WWW
Number of Unique Web Sites Number of Unique Web Sites The number of Web sites, adjusted to account for sites The number of Web sites, adjusted to account for sites duplicated at multiple IP addresses. duplicated at multiple IP addresses.
1998:1998: 2,636,000 2,636,0001999:1999: 4,662,000 4,662,0002000:2000: 7,128,000 7,128,0002001:2001: 8,443,000 8,443,0002002:2002: 8,712,000 8,712,000
A Web site is defined as a distinct location on the Internet, A Web site is defined as a distinct location on the Internet, identified by an IP address, that returns a response code of 200 identified by an IP address, that returns a response code of 200 and a Web page in response to an HTTP request for the root and a Web page in response to an HTTP request for the root page. The Web site consists of all interlinked Web pages page. The Web site consists of all interlinked Web pages residing at the IP address. residing at the IP address.
Statistics provided by OCLC Online Computer Library Center, Statistics provided by OCLC Online Computer Library Center, Inc., Office of Research Inc., Office of Research
Active Internet Users by Major Active Internet Users by Major CountryCountry
Average Web Usage in U.S.Average Web Usage in U.S.
More Than Half of People in U.S. and More Than Half of People in U.S. and Canada Regularly Use InternetCanada Regularly Use Internet
Global Usage – Includes All Countries Monitored : Global Usage – Includes All Countries Monitored : ~20 countries accounting an estimated 90% of all ~20 countries accounting an estimated 90% of all
Internet usersInternet users
For a more complete list see: http://www.clickz.com/stats/big_picture/geographics/article.php/ 5911_151151
From the “From the “Computer Industry Almanac”Computer Industry Almanac”
Worldwide Internet Population 2004: Worldwide Internet Population 2004: 934 million934 million
Projection for 2005: Projection for 2005: 1.07 billion1.07 billion
Projection for 2006: Projection for 2006: 1.21 billion1.21 billion
Projection for 2007: Projection for 2007: 1.35 billion1.35 billion
For more details for individual countries see:http://www.clickz.com/stats/sectors/geographics/article.php/%205911_151151
Negative Properties of WWNegative Properties of WW Uneven capabilities of user’s browsers and other Uneven capabilities of user’s browsers and other
softwaresoftware i.e. i.e. plug-insplug-ins differ widely and can interact with differ widely and can interact with
each other in strange ways.each other in strange ways. No central control – therefore, unregulated and No central control – therefore, unregulated and
somewhat uncensored.somewhat uncensored. Anonymity of site owners.Anonymity of site owners. Contrary to popular belief, it is not free.Contrary to popular belief, it is not free. Device independent – but not all hardware acts Device independent – but not all hardware acts
the same.the same. Copyright issues are more pronounced.Copyright issues are more pronounced. Uneven Uneven bandwidthbandwidth – number of bits that can be – number of bits that can be
transmitted per second.transmitted per second.
Be Cautious and CriticalBe Cautious and Critical There is a famous New Yorker cartoon:There is a famous New Yorker cartoon:
Cartoon by Peter Steiner reproduced from page 61 of July 5, 1993 issue of The New Yorker, (Vol.69 (LXIX) no. 20).
Brief Mention of History of Brief Mention of History of TheoryTheory
We’ll study this more later We’ll study this more later
Alan TuringAlan TuringTuring Machine, Artificial Intelligence Turing Machine, Artificial Intelligence
TestingTesting Much of the early work on computers was theoretical Much of the early work on computers was theoretical
and done by mathematicians.and done by mathematicians. Alan Turing, and others, studied the questions “What Alan Turing, and others, studied the questions “What
tasks can be computed?” and “What is a computer?” His tasks can be computed?” and “What is a computer?” His abstract model, called the Turing Machine, is of great abstract model, called the Turing Machine, is of great interest in studying these questions.interest in studying these questions.
Another big questions was, and still is, “Are machines Another big questions was, and still is, “Are machines intelligent?”intelligent?”
Alan Turing devised a test, now known as The Turing Alan Turing devised a test, now known as The Turing Test (1950), to answer this question.Test (1950), to answer this question.
We’ll delve into these issues a little later in the course.We’ll delve into these issues a little later in the course.
History of SoftwareHistory of Software
Again, we will go deeper into Again, we will go deeper into these topics laterthese topics later
13
Machine Language Computer programs were written in binary (1s and 0s)
Assembly Languages and translators Programs were written in languages that mimicked machine language and were then translated into machine language
Programmers begin to specializeProgrammers divide into application programmers and systems programmers.
First Generation Software First Generation Software (1951-1959) (1951-1959) -we’ll see more on these -we’ll see more on these
topics latertopics later
Systems vs ApplicationsSystems vs Applications
Computer scientists that design programs and Computer scientists that design programs and systems for other computer scientists to use are systems for other computer scientists to use are called called systems computer scientistssystems computer scientists..
Computer scientists that design programs and Computer scientists that design programs and systems for non-computer scientists to use are systems for non-computer scientists to use are called called application computer scientistsapplication computer scientists..
14
High Level LanguagesUse English-like statements and made programming easier: Fortran, COBOL, Lisp.
High-LevelLanguages
Assembly LanguageMachine
Language
Second Generation Software Second Generation Software (1959-1965)(1959-1965)
15
Third Generation Software (1965-Third Generation Software (1965-1971)1971)
Systems Software DevelopedSystems Software Developed utility programs, utility programs, language translators, language translators, and the operating system, which decides which and the operating system, which decides which
programs to run and when.programs to run and when.
Separation between Users and HardwareSeparation between Users and Hardware Computer programmers now created Computer programmers now created
programs to be used by people who did not programs to be used by people who did not know how to programknow how to program
16
Application Package
Systems Software
High-Level Languages
Assembly Language
Machine Language
Third Generation Software (1965-Third Generation Software (1965-1971)1971)
17
Structured ProgrammingPascal, C
New Application Software for UsersSpreadsheets, word processors, database management systems
Fourth Generation Software (1971-Fourth Generation Software (1971-1989)1989)
18
MicrosoftThe Windows operating system, and other Microsoft application programs dominate the market
Object-Oriented DesignBased on a hierarchy of data objects (i.e. Java, C++)
World Wide WebAllows easy global communication through the Internet
New UsersToday’s user can “get by” with little computer knowledge
Fifth Generation Software (1990- Fifth Generation Software (1990- present)present)
20
Programmer / User
Applications Programmer(uses tools)
User with No Computer Background
Systems Programmer(builds tools)
Domain-Specific Programs
Computing as a ToolComputing as a Tool
21
Computing as a DisciplineComputing as a Discipline
What can be (efficiently) Automated?What can be (efficiently) Automated?
Four Necessary SkillsFour Necessary Skills1.1. Algorithmic ThinkingAlgorithmic Thinking
2.2. RepresentationRepresentation
3.3. ProgrammingProgramming
4.4. DesignDesign
23
Some Systems Areas of Some Systems Areas of Computer ScienceComputer Science
Study of Algorithms and Data StructuresStudy of Algorithms and Data Structures Programming LanguagesProgramming Languages ArchitectureArchitecture Operating SystemsOperating Systems Software Methodology and EngineeringSoftware Methodology and Engineering Human-Computer CommunicationHuman-Computer Communication Systems ProgrammingSystems Programming
24
Some Application Areas of Some Application Areas of Computer ScienceComputer Science
Numerical and Symbolic ComputationNumerical and Symbolic Computation Databases and Information RetrievalDatabases and Information Retrieval Artificial Intelligence and RoboticsArtificial Intelligence and Robotics GraphicsGraphics Organizational InformaticsOrganizational Informatics BioinformaticsBioinformatics MultimediaMultimedia Game developmentGame development
Some other disciplines sharing some ground Some other disciplines sharing some ground with computer sciencewith computer science
Computer engineeringComputer engineering Electrical engineeringElectrical engineering Computational physicsComputational physics Computational chemistryComputational chemistry Computational biology (or bioinformatics)Computational biology (or bioinformatics)
Hot off the presses:Hot off the presses:
What field has…What field has…
• …• …the best-rated job, and 5 of the top 10 the best-rated job, and 5 of the top 10 highest paid, highest growth jobs?highest paid, highest growth jobs?
• …• …shown strong job growth in the face of shown strong job growth in the face of outsourcing?outsourcing?
• …• …a looming severe shortage in college a looming severe shortage in college graduates?graduates?
Computer Science!Computer Science!This slide and the rest of the slides in this presentation were collated from SIGCSE announcements and displayed at the Gettysburg College Department of Computer Science website. Individual sources are given on the last slide.
• • Software engineers top the list of Software engineers top the list of best jobs best jobs according to a Money according to a Money magazine and Salary.com survey based magazine and Salary.com survey based on “strong growth prospects, average on “strong growth prospects, average pay of $80,500 and potential for pay of $80,500 and potential for creativity”. [1]creativity”. [1]
5 computing jobs are in the top 10 salary jobs 5 computing jobs are in the top 10 salary jobs from from the Bureau of Labor Statistics’ list of the 30 fastest the Bureau of Labor Statistics’ list of the 30 fastest growing jobs through 2014. [2]growing jobs through 2014. [2]
1. Computer systems software engineer: $81,1401. Computer systems software engineer: $81,1402. Computer applications software engineer: $76,3102. Computer applications software engineer: $76,3106. Computer systems analyst: $67,5206. Computer systems analyst: $67,5207. Database administrator: $61,9507. Database administrator: $61,9509. Network systems and data communication analyst: 9. Network systems and data communication analyst:
$61,250$61,250
Salaries are given as mean annual salaries over all Salaries are given as mean annual salaries over all regions.regions.
• In April 2006, more Americans were employed in IT than at any time in the nation’s history. [3]
• In May 2004, “U.S. IT employment was 17% higher than in 1999 5% higher than in 2000 and showing an 8% growth in the [following] year
…
The compound annual growth rate of IT wages has been about 4% since 1999 while inflation has been just 2% per year
… Such growth rates swamp predictions of the outsourcing job loss in the U.S., which most studies estimate to be 2% to3% per year for the next decade.” [4]
• “According to the National Science Foundation, the need for science and engineering graduates will grow 26%, or by 1.25 million, between now and 2012.
The number of jobs requiring technical training is growing at five times the rate of other occupations. And U.S. schools arenowhere near meeting the demand, according to multiple studies.” [5]
• The percentage of college freshmen listing computer science as their probable major fell 70% between 2000 and 2004. [6]
[1] Wulfhorst, Ellen. Reuters.com, Apr. 12, 2006.http://www.salary.com/careers/layoutscripts/crel_display.asp?tab=cre&cat=nocat&ser=Ser387&part=Par615
[2] Morsch, Laura. CareerBuilders.com, Jan. 27, 2006.http://www.cnn.com/2006/US/Careers/01/26/cb.top.jobs.pay/index.html
[3] Chabrow, Eric. InformationWeek.com, Apr. 18, 2006.http://www.informationweek.com/showArticle.jhtml?articleID=185303797
[4] Patterson, David. President’s Letter: Restoring the Popularity of Computer Science, Communications of the ACM, Sept. 2005, Vol. 48, No. 9
[5] Deagon, Brian. Investor’s Business Daily, May 12, 2006.http://www.investors.com/editorial/IBDArticles.asp?artsec=24&issue=20060512&view=1
[6] Robb, Drew. ComputerWorld.com, July 17, 2006.http://computerworld.com/action/article.do?command=printArticleBasic&articleId=112364