Скачать презентацию CHAPTER 1 Introduction to Computer Science Dr Johnnie Скачать презентацию CHAPTER 1 Introduction to Computer Science Dr Johnnie

ee72a8c43f3efb30083ed0b3350011e4.ppt

  • Количество слайдов: 122

CHAPTER 1 Introduction to Computer Science Dr. Johnnie W. Baker CHAPTER 1 Introduction to Computer Science Dr. Johnnie W. Baker

TEXT READING ASSIGNMENT Prefaces and Chapters 1 OVERVIEW OF COURSE: 1. The algorithmic foundations TEXT READING ASSIGNMENT Prefaces and Chapters 1 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. 2

WHAT IS COMPUTER SCIENCE? MISCONCEPTION 1: Computer science is the study of computers. MISCONCEPTION 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. 3

SO, HOW DO WE DEFINE COMPUTER SCIENCE? Computer science is the study of algorithms SO, HOW DO WE DEFINE COMPUTER SCIENCE? Computer science is the study of algorithms including n n 1. Their formal and mathematical properties 2. Their hardware realizations 3. Their linguistic realizations 4. Their applications 4

THAT LEADS TO THE OBVIOUS QUESTION: What is an algorithm? An algorithm is a THAT LEADS TO THE OBVIOUS QUESTION: What is an algorithm? An algorithm is a well-ordered collection of unambiguous and effectively computable operations that, when executed, produces a result and halts in a finite amount of time. 5

AN EXAMPLE OF A VERY SIMPLE ALGORITHM 1. Wet your hair. 2. Lather your AN EXAMPLE OF A VERY SIMPLE ALGORITHM 1. Wet your hair. 2. Lather your hair. 3. Rinse your hair. 4. Stop. Observe: Operations need not be executed by a computer only, but by any entity capable of carrying out the operations listed. 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. 6

A well-ordered collection of operations The question that must be answered is: At any A well-ordered collection of operations 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. Not well-ordered operations: 2. Lather your hair. 1. Either wet your hair or lather your hair. 3. Rinse your hair. 2. Rinse your hair. 7

Don't assume that you can't make choices: Well-ordered operations: 1. If your hair is Don't assume that you can't make choices: 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. 8

Unambiguous operations The question that must be answered is: Does the computing entity understand 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. 9

To an experienced cook, Make the pie crusts. is not ambiguous. But, an less 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! 10

Definition: An operation that is unambiguous is called a primitive operation (or just a Definition: An operation that is unambiguous is called a primitive operation (or just a primitive) 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!! 11

Effectively computable operations The question that must be answered is: Is the computing entity Effectively computable operations The question that must be answered is: Is the computing entity capable of doing the operation? This assumes that the operation must first be unambiguousi. 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. 12

that, when executed, produces a result The question that must be answered is: Can that, when executed, produces a result The question that must be answered is: Can the user of the algorithm observe a result produced by the algorithm? 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. 13

halts in a finite amount of time The question that must be answered is: halts in a finite amount of time 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. 14

Definition of an algorithm: An algorithm is a well-ordered collection of unambiguous and effectively Definition of an algorithm: An algorithm is a well-ordered collection of unambiguous and effectively computable operations that, when executed, produces a result and halts in a finite amount of time. Note: Although I have tried to give clean cut examples to illustrate what these new words mean, in some cases, a collection of operations can fail for more than one reason. 15

RETURNING TO OUR ORGINAL QUESTION: HOW DO WE DEFINE COMPUTER SCIENCE? Computer science is RETURNING TO OUR ORGINAL QUESTION: HOW DO WE DEFINE COMPUTER SCIENCE? Computer science is the study of algorithms including n n 1. Their formal and mathematical properties 2. Their hardware realizations 3. Their linguistic realizations 4. Their applications 16

1. Their formal and mathematical properties It is not enough to develop any old 1. Their formal and mathematical properties It is not enough to develop any old algorithm to solve a problem. We must worry about some additional properties of an algorithm: n n n How efficient is it? What kinds of resources must be used to execute it? How does it compare to other algorithms that solve the same problem. 17

2. Their hardware realizations Algorithms need not execute on machines. All we really need 2. Their hardware realizations Algorithms need not execute on machines. All we really need are computing entities. n Anything that can compute – e. g. , a human. But, ultimately, most of our interest will lie with algorithms that execute on computing entities called "computers". How are these entities constructed? n The emphasis will be on the logical construction of a computer, not the physical construction. 18

3. Their linguistic realizations How do we represent algorithms? We will start with one 3. Their linguistic realizations How do we represent algorithms? We will start with one linguistic realization today, called pseudocode and later will look at many different realizations in various programming languages. We'll even consider some of the visual representations using graphics. 19

And finally: 4. Their applications What are some of the many important and popular And finally: 4. Their applications What are some of the many important and popular applications of computers in current use including: n n n n modeling and simulation information retrieval numerical problem solving telecommunications artificial intelligence networking graphics 20

History of computer science slides not covered in class yet History of computer science slides not covered in class yet

Early History of Computing Abacus An early device to record numeric values We normally Early History of Computing Abacus An early device to record numeric values We 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. source: http: //www. ee. ryerson. ca: 8080/~elf/abacus/intro. html 22 6

Napier’s Bones (or Rods) Rods were marked with multiplication table results. These were used Napier’s Bones (or Rods) Rods were marked with multiplication table results. These were used to provide fairly simple means of multiplying large numbers. On the below web site, one of the labs goes into some details on Napier’s Bones: http: //csilluminated. jbpub. com/labs/Napier. cfm The honor for constructing the first calculating machine belongs to a German called Wilhelm Schickard. In 1623 he completed a mechanical calculating machine based on Napier's work. 23

Using the bones to compute 46732 X 5 Add: 10 150 3500 30000 200000 Using the bones to compute 46732 X 5 Add: 10 150 3500 30000 200000 source: http: //csilluminated. jbpub. com/labs/Napier. cfm 24

Slide Rule In 1614, John Napier discovered algorithms which made it possible to perform Slide Rule In 1614, John Napier discovered algorithms which made it possible to perform multiplication and division using addition and subtraction. To avoid having to log tables, Edmund Gunter created a number line in which the position of numbers were proportional to their logs. William Oughtred soon simplified things further by creating a slide rule with two Gunter’s lines. n One line could “slide” in order to increment (multiply) or decrement (divide) a value by a second value. The slide rule was widely in use by the end of the 17 century and remained popular for the next 300 years. Improvements included ability to compute powers and roots of numbers but did not include ability to add or subtract. 25

Blaise Pascal In 1642 Blaise Pascal, a Frenchman invented a new kind of computing Blaise Pascal In 1642 Blaise Pascal, a Frenchman invented a new kind of computing device. It used wheels instead of beads. Each wheel had ten notches, numbered '0' to '9'. When a wheel was turned seven notches, it added 7 to the total on the machine. Pascal's machine, known as the Pascaline, could add up to 999999. It could also subtract. source: http: //www. tased. edu. au/schools/rokebyh/curric/ infotech/stage 1/assign 2/pre 20 th. htm#schickard 26

Gottfried Leibnitz improved on Pascal's adding machine so that it could also perform multiplication, Gottfried Leibnitz improved on Pascal's adding machine so that it could also perform multiplication, division and calculate square roots. source: http: //www. tased. edu. au/schools/rokebyh/curric/ infotech/stage 1/assign 2/pre 20 th. htm#schickard 27

Grillet’s Pocket Calculator One very early machine which incorporated Napier’s ideas was that built Grillet’s Pocket Calculator One very early machine which incorporated Napier’s ideas was that built by a French clockmaker called Grillet in 1678. Grillet included a set of Napier's Rods in an adaptation of the Pascaline. It could be considered the world's first pocket calculator. The top section of the device consisted of 24 dials or sets of wheels. The lower section contained a set of inverted Napier’s Rods engraved on cylinders. Although the device was limited, it did allow simple operations to be performed. It could carry out eight digit additions -- something that would have been very useful at a time when very few people had skill with numbers. 28

Grillet’s Machine http: //www. tased. edu. au/schools/rokebyh/curric/infotech/stage 1/ 29 assign 2/pre 20 th. htm#schickard Grillet’s Machine http: //www. tased. edu. au/schools/rokebyh/curric/infotech/stage 1/ 29 assign 2/pre 20 th. htm#schickard

Joseph Jacquard In the late 1700 s in France, Joseph Jacquard invented a way Joseph Jacquard In the late 1700 s in France, Joseph Jacquard invented a way to control the pattern on a weaving loom used to make fabric. Jacquard punched pattern holes into paper cards. The cards told the loom what to do. Instead of a person making every change in a pattern, the machine made the changes all by itself. Jacquard's machine didn't count anything. So it wasn't a computer or even a computing device. His ideas, however, led to many other computing inventions later. 30

Jacquard Loom - A mechanical device that influenced early computer design Intricate textile patterns Jacquard Loom - A mechanical device that influenced early computer design Intricate textile patterns were prized in France in early 1800 s. Jacquard’s loom (1805 -6) used punched cards to allow only some rods to bring the thread into the loom on each shuttle pass. Source: http: //65. 107. 211. 206/technology/jacquard. html 31

Sheets of punched cards set the pattern of the weave Source: http: //65. 107. Sheets of punched cards set the pattern of the weave Source: http: //65. 107. 211. 206/technology/jacquard. html 32

Luddites During the 1700's and early 1800's, part of the world saw the development Luddites During the 1700's and early 1800's, part of the world saw the development of industrialization. Before the Industrial Revolution, manufacturing was done by hand or simple machines. The Industrial Revolution caused many people to lose their jobs. Groups of people known as Luddites attacked factories and wrecked machinery in Britain between 1811 and 1816. The Luddites received their name from their mythical leader Ned Ludd. They believed that the introduction of new textile machines in the early 1800's had caused unemployment and lowered the textile workers' standard of living. Note this is similar to the way some people see that computers today are taking the jobs of workers. 33

Charles Babbage is known as the father of modern computing because he was the Charles Babbage is known as the father of modern computing because he was the first person to design a general purpose computing device. In 1822, Babbage began to design and build a small working model of an automatic mechanical calculating machine, which he called a "difference engine". Example: It could find the In the Science Museum, first 30 prime numbers in two London and a half minutes. Source: http: //www. sciencemuseum. org. uk/online/babbage/page 3. asp 34

A closer look at difference engine 35 source: http: //www. computer. org/history/development/graphics/diff_eng. jpg A closer look at difference engine 35 source: http: //www. computer. org/history/development/graphics/diff_eng. jpg

Babbage continued work to produce a full scale working Difference Engine for 10 years, Babbage continued work to produce a full scale working Difference Engine for 10 years, but in 1833 he lost interest because he had a "better idea"--the construction of what today would be described as a general-purpose, fully program -controlled, automatic mechanical digital computer. Babbage called his machine an "analytical engine". He designed, but was unable to build, this Analytical Engine (1856) which had many of the characteristics of today’s computers: an input device – punched card reader an output device – a typewriter memory – rods which when rotated into position “stored” a number control unit – punched cards with instructions encoded as with the Jacquard loom 36

The machine was to operate automatically, by steam power, and would require only one The machine was to operate automatically, by steam power, and would require only one attendant. source: http: //www. sciencemuseum. org. uk/on-line/babbage/page 5. asp 37

Some call Babbage’s analytic engine the first computer, but, as it was not built Some call Babbage’s analytic engine the first computer, but, as it was not built by him, most people place that honor elsewhere. Babbage's analytical engine contained all the basic elements of an automatic computer-storage, working memory, a system for moving between the two, an input device and an output device. But Babbage lacked funding to build the machine so Babbage's computer was never completed. 38

Babbage designed a printer, also, that has just been built at the Science Museum Babbage designed a printer, also, that has just been built at the Science Museum in London- 4, 000 working parts! source: http: //news. bbc. co. uk/1/hi/sci/tech/710950. stm 39

Ada Lovelace Ada Byron Lovelace was a close friend of Babbage. Ada thought so Ada Lovelace Ada Byron Lovelace was a close friend of Babbage. Ada thought so much of Babbage's analytical engine that she translated a previous work about the engine. Because of the detailed explanations she added to the work, she has been called the inventor of computer programming. Today, on behalf of her work in computing, a programming language, Ada, is named after her. source: http: //www. pbs. org/teachersource/mathline/concepts/ womeninmath/activity 2. shtm 40 7

Herman Hollerith In 1886, Herman Hollerith invented a machine known as the Automatic Tabulating Herman Hollerith In 1886, Herman Hollerith invented a machine known as the Automatic Tabulating Machine, to count how many people lived in the United States. This machine was needed because the census was taking far too long. His idea was based on Jacquard's loom. Hollerith used holes punched in cards. The holes stood for facts about a person; such as age, address, or his type of work. The cards could hold up to 240 pieces of information. Hollerith also invented a machine, a tabulator, to select special cards from the millions. To find out how many people lived in Pennsylvania, the machine would select only the cards punched with a Pennsylvania hole. Hollerith's punched cards made it possible to count and keep records on over 60 million people. 41

Hollerith Tabulator Hollerith founded the Tabulating Machine Company. In 1924, the name of the Hollerith 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 42

Punched cards The punched card used by the Hollerith Tabulator for the 1890 US Punched cards The 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-1970 s and was still in use in voting machines in the 2000 USA presidential election. source: http: //www. columbia. edu/acis/history/hollerith. html 43

History of Hardware History of Hardware

Harvard Mark I, ENIAC, UNIVAC I, ABC and others These are the names of Harvard Mark I, ENIAC, UNIVAC I, ABC and others These are the names of some of the early computers that launched a new era in mathematics, physics, engineering and economics initially and, subsequently, almost every area has been impacted by computers. The early computers were huge physically and very limited by today’s standards. 45

First Generation Hardware (1951 -1959) – Major characteristics Vacuum Tubes Large, not very reliable, First Generation Hardware (1951 -1959) – Major characteristics Vacuum Tubes Large, not very reliable, generated a lot of heat Magnetic Drum Storage Memory device that rotated under a read/write head Card Readers & Magnetic Tape Drives Development of these sequential auxiliary storage devices 46 8

ABC built by Professor John Atanasoff and a graduate student, Clifford Berry, at Iowa ABC built by Professor John Atanasoff and a graduate student, Clifford Berry, at Iowa State University between 1939 and 1942. Special purpose computer and was not truly programmable. The instructions to the machine were entered by buttons. Input: Punched paper tape Output: Punched cards Source: www. cs. iastate. edu/jva/images/abc-1942. gif 47

Mark I designed by Howard Aiken and Grace Hopper at Harvard University in 1939 Mark I designed by Howard Aiken and Grace 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! 48 Source: http: //www. digidome. nl/howard_h__aiken. htm

Zuse’s Machines, Z 1 -Z 4 built by Konrad Zuse in Berlin, Germany, 1938 Zuse’s Machines, Z 1 -Z 4 built by Konrad Zuse in Berlin, Germany, 1938 – 1944 (all destroyed supposedly in the Berlin bombings) If these machines did exist as described by Zuse after the war, they were the first computers. 49

Rebuilt model of Z 3 housed in Deutsches Technik Museum, Berlin Input: from a Rebuilt model of Z 3 housed in Deutsches Technik Museum, Berlin Input: from a numeric, decimal, 20 digit keyboard Output: Numbers displayed with lamps, 4 decimal digits with decimal point Programmed 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 50

Computer vs computing device Most, but not all, people claim a computer must be Computer vs computing device Most, but not all, people claim a computer must be n n Digital Programmable Electronic General purpose If any characteristic is missing, at best, you have a computing device. 51

Mauchly and Eckert or Zuse – built the first computer Many claim the ENIAC Mauchly and Eckert or Zuse – built the first computer Many claim the ENIAC was the first computer as there was proof that it did exist. John Mauchly envisioned the ENIAC. He was a professor of Physics at Ursinus College. In 1943 he attended a workshop at Penn were, he saw a machine calculating firing tables. Mauchly realized that he could build an electronic machine that could be much faster. J. Presper Eckert solved the engineering challenges. The chief challenge was tube reliability. Eckert was able to get good reliability by running the tubes at 1/4 power. 52

ENIAC – (Electrical Numerical Integrator And Calculator), built by Presper Eckert and John Mauchly ENIAC – (Electrical Numerical Integrator And Calculator), built by Presper Eckert and John Mauchly at Moore School of Engineering, University of Pennsylvania, 1941 -46 Often called the first computer (that was electronic, programmable, general purpose and digital). 53

ENIAC 18, 000 vacuum tubes and weighed 30 tons Duration of an average run ENIAC 18, 000 vacuum tubes and weighed 30 tons Duration of an average run without some failure was only a few hours, although it was predicted to not run at all! When it ran, the lights in Philadelphia dimmed! ENIAC Stored a maximum of twenty 10 -digit decimal numbers. Input: IBM card reader Output: Punched cards, lights 54

Eniac’s Vacuum Tubes Photo taken at Computer Science History Museum, San Jose, CA, by Eniac’s Vacuum Tubes Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley. 55

A vacuum tube similar to those used in the earliest computers. Source: http: //www. A vacuum tube similar to those used in the earliest computers. Source: http: //www. cs. virginia. edu/brochure/images/mus_024. jpg 56

ENIAC Programming required rewiring of the machine, Source: http: //ftp. arl. army. mil/ftp/historic-computers/ 57 ENIAC Programming required rewiring of the machine, Source: http: //ftp. arl. army. mil/ftp/historic-computers/ 57

UNIVAC – first commercial computer On March 31, 1951, the Census Bureau accepted delivery UNIVAC – first commercial computer On March 31, 1951, the Census Bureau accepted delivery of the first UNIVAC computer. The final cost was close to one million dollars. n Over 7, 675, 000 in 2005 dollars. Forty-six UNIVAC computers were built for both government and business uses. Remington Rand became the first American manufacturer of a commercial computer system. Their first non-government contract was for General Electric in Louisville, Kentucky, who used the UNIVAC computer for a payroll application. source: http: //inventors. about. com/library/weekly/aa 062398. htm 58

UNIVAC’s prediction ignored A 1952 UNIVAC made history by predicting the election of Dwight UNIVAC’s prediction ignored A 1952 UNIVAC made history by predicting the election of Dwight D. Eisenhower as US president before the polls closed. The results were not immediately reported by Walter Cronkite because they were not believed to be accurate. Democratic presidential candidate Adlai Stevenson was the front-runner in all the advance opinion polls. By 8: 30 p. m. on the East Coast, well before polls were closed in the Western states, UNIVAC projected 100 -to-1 odds that Dwight D. Eisenhower would win by a landslide, which is in fact what happened. 59

1952 election night source: http: //www. cedmagic. com/history/univac-cronkite. html 60 1952 election night source: http: //www. cedmagic. com/history/univac-cronkite. html 60

Whirlwind at MIT - 1952 The first digital computer capable of displaying real time Whirlwind at MIT - 1952 The first digital computer capable of displaying real time text and graphics on a large oscilloscope screen. Bouncing ball displayed on screen Source: http: //www. accad. ohio-state. edu/~waynec/history/lesson 2. html 61

Second Generation Hardware (1959 -1965) - Characteristics Transistor Replaced vacuum tube, fast, small, durable, Second Generation Hardware (1959 -1965) - Characteristics Transistor Replaced vacuum tube, fast, small, durable, cheap Magnetic Cores Replaced magnetic drums, information available instantly Magnetic Disks Replaced magnetic tape, data can be accessed directly 62 9

A Typical Computing Environment in 1960 – UNIVAC 1107 at Case Institute of Technology A Typical Computing Environment in 1960 – UNIVAC 1107 at Case Institute of Technology source: http: //www. fourmilab. ch/documents/univac/case 1107. html 63

1961 The true purpose of computers is finally realized in 1961, when a MIT 1961 The true purpose of computers is finally realized in 1961, when a MIT student, Steve Russell, created the first computer game – Spacewar on a DEC PDP-1 - a minicomputer 200 hours to program! Sources: http: //inventors. about. com/library/weekly/aa 090198. htm http: //www. nersc. gov/~deboni/Computer. history/GAM. PDP-1/ 64

Father of Graphics- Ivan Sutherland n. Ph. D. Thesis, 1963, MIT : n. Sketchpad: Father of Graphics- Ivan Sutherland n. Ph. D. Thesis, 1963, MIT : n. Sketchpad: The First Interactive Computer Graphics Package on TX-2 (forerunner of DEC machines). 65 Source: http: //www. sun. com/960710/feature 3/sketchpad. html#sketch

TX-2 was a giant machine for the day: 320 kilobytes of memory, about twice TX-2 was a giant machine for the day: 320 kilobytes of memory, about twice the capacity of the biggest commercial machines magnetic tape storage, an on-line typewriter, the first Xerox printer, paper tape for program input, a light pen for drawing, a nine inch CRT (i. e. display screen) ! 66

Light Pen Input “Sketchpad: A Man-machine Graphical Communications System, Light Pen Input “Sketchpad: A Man-machine Graphical Communications System, " used the light pen to create engineering drawings directly on the CRT. 67 Source: http: //www. accad. ohiostate. edu/~waynec/history/lesson 2. html

1964 CDC Control Data Corporation CDC 6600 at U of Texas, 1964 -68 Cost: 1964 CDC Control Data Corporation CDC 6600 at U of Texas, 1964 -68 Cost: $2, 000+ Over $3. 3 M in 2005 $ Kept in dustfree room behind locked doors source: http: //www. computerhistory. org/timeline. php? timeline_category=cmptr 68

CDC 6600 – University of Texas 1964 Workstations were available to only a few. CDC 6600 – University of Texas 1964 Workstations were available to only a few. Most had to use punched cards handed in through a window Source: http: //ed-thelen. org/comp-hist/vs-cdc-6600. jpg 69

A sampling of 1960 -1965 circuit boards: Photo taken at Computer Science History Museum, A sampling of 1960 -1965 circuit boards: Photo taken at Computer Science History Museum, San Jose, CA, 70 by Dr. Robert Walker on VLSI Trip to Silicon Valley

Third Generation Hardware (1965 -1971) Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more Third Generation Hardware (1965 -1971) Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more reliable. Transistors Now used for memory construction Terminal An input/output device with a keyboard and screen 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. 71 10

PDP I – first of the minicomputers to be used by many universities. 72 PDP I – first of the minicomputers to be used by many universities. 72

The PDP-40, a popular 3 rd generation minicomputer in the early 1970’s. Hiram College The PDP-40, a popular 3 rd generation minicomputer in the early 1970’s. Hiram College installed one in 1974. 73

The DEC-10 was popular at a lot of large universities. Photo taken at Computer The DEC-10 was popular at a lot of large universities. Photo taken at Computer Science History Museum, San Jose, CA, 74 by Dr. Robert Walker on VLSI Trip to Silicon Valley

Dumb terminals or workstations were used to tie into the mainframes: Photo taken at 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 75

Fourth Generation Hardware (1971 -? ) Large-scale Integration Great advances in chip technology PCs, Fourth Generation Hardware (1971 -? ) Large-scale Integration Great advances in chip technology PCs, the Commercial Market, Workstations Personal Computers were developed as new companies like Apple and Atari came into being. Workstations emerged. 76 11

Personal Computers were Introduced around 1977 77 Personal Computers were Introduced around 1977 77

Photo of early PCs taken at Computer Science History Museum In San Jose, CA, Photo of early PCs taken at Computer Science History Museum In San Jose, CA, by Dr. Robert Walker on Trip to Silicon Valley 78

Typical prices on early PCs Contrary to Memory popular 16 K belief today, these Typical prices on early PCs Contrary to Memory popular 16 K belief today, these were 32 K not cheap – the IBM 48 K 5100 in mid 1970 s. 64 K BASIC $8, 975 $11, 975 APL $9, 975 $12, 975 Both $10, 975 $13, 975 $14, 975 $15, 975 $16, 975 $17, 975 $18, 975 $19, 975 Note that $1 in 1975 would be equal to $3. 76 today so multiply these by ~3. 8! For this price comparison see http: //www. westegg. com/inflation/ 79

VAX 780 – Early Math-CS computer at Kent State, obtained about 1981. 80 VAX 780 – Early Math-CS computer at Kent State, obtained about 1981. 80

Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley 81

Dumb terminals were used for some input with these machines and line printers were 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 82

Parallel Computing and Networking Parallel Computing Computers rely on interconnected central processing units that Parallel Computing and Networking Parallel Computing Computers rely on interconnected central processing units that increase processing speed. Networking With the Ethernet small computers could be connected and share resources. File servers connected PCs in the late 1980 s. ARPANET and LANs Internet 83 12

There are many different kinds of parallel machines – this is one type A There are many different kinds of parallel machines – this is one type A parallel computer must be capable of working on one task even though many individual computers are tied together. Lucidor is a distributed memory computer (a cluster) from HP. It consists of 74 HP servers and 16 HP workstations. Peak: 7. 2 GFLOPs GFLOP = one billion decimal number operations/ second source: http: //www. pdc. kth. se/compresc/machines/lucidor. html 84

Cray Machines Are Another Type of Parallel Machine –Cray 1 Photo taken at Computer Cray Machines Are Another Type of Parallel Machine –Cray 1 Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley 85

Cray 2 Photo taken at Computer Science History Museum, San Jose, CA, 86 by Cray 2 Photo taken at Computer Science History Museum, San Jose, CA, 86 by Dr. Robert Walker on VLSI Trip to Silicon Valley

Another Earlier Parallel Computer at the University of Illinois was the Illiac IV Photo Another Earlier Parallel Computer at the University of Illinois was the Illiac IV Photo taken at Computer Science History Museum, San Jose, CA, 87 by Dr. Robert Walker on VLSI Trip to Silicon Valley

Another View of the Illiac IV Photo taken at Computer Science History Museum, San Another 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 88

CM-2 Connection Machine Interesting fact: The lights are there only for show! 89 CM-2 Connection Machine Interesting fact: The lights are there only for show! 89

The IBM 360 (late ’ 60 s) console created “blinking lights” expectation Photo taken The IBM 360 (late ’ 60 s) console created “blinking lights” expectation Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley 90

Remaining Slides Postponed Will be covered later with material related to these slides Remaining Slides Postponed Will be covered later with material related to these slides

A History of the Web - Let’s Be Precise Late 1960 s – the A History of the Web - Let’s Be Precise Late 1960 s – the ARPANET was conceived as a network of computers in which packets of information (i. e. data) could be transmitted between various computers via telephone lines or higher speed dedicated data lines. ARPA was the Advanced Research Projects Agency. This allowed remote logins to computers (using telnet), the ability to transfer files between computers (using ftp = file transfer protocol), and e-mail. 92

Many people now say it was designed for the military, but that was newspaper Many people now say it was designed for the military, but that was newspaper hype. The purpose of the ARPANET was to allow the sharing of National Science Foundation (NSF) research project information between researchers. In 1972, there were 29 nodes (i. e. computer sites that were interconnected). CS program at KSU was earliest node in Ohio (~1982). We connected in 1984. 93

The ARPANET Introduced the Internet Protocol To move data from computer A to computer The ARPANET Introduced the Internet Protocol To move data from computer A to computer B: Break the data up into packets of information. n Each packet carries the IP (Internet Protocol) address of computer B which consists of 4 numbers. n At each computer, the address is read and then the envelope is shipped along to another computer using a recipe called a routing algorithm. n At no time are A and B necessarily physically connected (unless they are adjacent nodes on the network). n The different packets will not necessarily follow the same route. n At computer B, the packets are reassembled into the document. n A packet is typically in the 40 – 1500 byte range (1 byte = 1 character) 94 n

Document X at A Packet-based transmission of a document from Computer A to Computer Document X at A Packet-based transmission of a document from Computer A to Computer B Note: If one computer fails, the document still may be transmitted. Packet X-1 for B Computer C Packet X-2 for B Computer F Packet X-3 for B Computer E Computer D Computer B Computer G Document X at B 95

Tracing the Route Your Packets Take Traceroute is a tool that traces the route Tracing the Route Your Packets Take Traceroute is a tool that traces the route your packets take. Ping is a tool that tells you whether or not a web site is up. Ping Plotter (http: //www. pingplotter. com/) is a tool that graphically shows you the route your packets take. n It was free, but can be used for 30 days without a subscription of $0. 99 a month today. n Interesting to see how your packets travel! 96

One Ping Plotter Trace to www. weather. com 97 One Ping Plotter Trace to www. weather. com 97

A Trace to KSU If you watch these interactively you’ll see the route changes. A Trace to KSU If you watch these interactively you’ll see the route changes. 98

Internet to World Wide Web The Internet is a collection of computers using the Internet to World Wide Web The Internet is a collection of computers using the internet protocol to transmit information The World Wide Web is a multimedia environment invented by Tim Berners-Lee, in 1990. n Was a physicist at CERN (the European Organization for Nuclear Research). n Wrote the first web browser (World. Wide. Web) and the software for the first web server. n Invented both the HTML markup language in which many web pages are written and the HTTP protocol used to request and transmit web pages between web servers and web browsers 99

Growth in WWW Number of Unique Web Sites The number of Web sites, adjusted Growth in WWW Number of Unique Web Sites The number of Web sites, adjusted to account for sites duplicated at multiple IP addresses. 1998: 1999: 2000: 2001: 2002: 2, 636, 000 4, 662, 000 7, 128, 000 8, 443, 000 8, 712, 000 A Web site is defined as a distinct location on the Internet, 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 page. The Web site consists of all interlinked Web pages residing at the IP address. Statistics provided by OCLC Online Computer Library Center, 100 Inc. , Office of Research

Active Internet Users by Major Country 101 Active Internet Users by Major Country 101

Average Web Usage in U. S. 102 Average Web Usage in U. S. 102

More Than Half of People in U. S. and Canada Regularly Use Internet 103 More Than Half of People in U. S. and Canada Regularly Use Internet 103

Global Usage – Includes All Countries Monitored : ~20 countries accounting an estimated 90% Global Usage – Includes All Countries Monitored : ~20 countries accounting an estimated 90% of all Internet users For a more complete list see: http: //www. clickz. com/stats/big_picture/geographics/article. php/ 104 5911_151151

From the “Computer Industry Almanac” Worldwide Internet Population 2004: 934 million Projection for 2005: From the “Computer Industry Almanac” Worldwide Internet Population 2004: 934 million Projection for 2005: 1. 07 billion Projection for 2006: 1. 21 billion Projection for 2007: 1. 35 billion For more details for individual countries see: http: //www. clickz. com/stats/sectors/geographics/ article. php/%205911_151151 105

Negative Properties of WW Uneven capabilities of user’s browsers and other software n i. Negative Properties of WW Uneven capabilities of user’s browsers and other software n i. e. plug-ins differ widely and can interact with each other in strange ways. No central control – therefore, unregulated and somewhat uncensored. Anonymity of site owners. Contrary to popular belief, it is not free. Device independent – but not all hardware acts the same. Copyright issues are more pronounced. Uneven bandwidth – number of bits that can be transmitted per second. 106

Be Cautious and Critical There is a famous New Yorker cartoon: Cartoon by Peter Be Cautious and Critical 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). 107

Brief Mention of History of Theory We’ll study this more later Brief Mention of History of Theory We’ll study this more later

Alan Turing Machine, Artificial Intelligence Testing Much of the early work on computers was Alan Turing Machine, Artificial Intelligence Testing Much of the early work on computers was theoretical and done by mathematicians. Alan Turing, and others, studied the questions “What tasks can be computed? ” and “What is a computer? ” His abstract model, called the Turing Machine, is of great interest in studying these questions. Another big questions was, and still is, “Are machines intelligent? ” Alan Turing devised a test, now known as The Turing Test (1950), to answer this question. We’ll delve into these issues a little later in the course. 109

History of Software Again, we will go deeper into these topics later History of Software Again, we will go deeper into these topics later

First Generation Software (1951 -1959) – We’ll see more on these topics later Machine First Generation Software (1951 -1959) – We’ll see more on these topics later Machine Language Computer programs were written in binary (1 s and 0 s) Assembly Languages and translators Programs were written in languages that mimicked machine language and were then translated into machine language Programmers begin to specialize Programmers divide into application programmers and systems programmers. 111 13

Systems vs Applications Computer scientists that design programs and systems for other computer scientists Systems vs Applications Computer scientists that design programs and systems for other computer scientists to use are called systems computer scientists. Computer scientists that design programs and systems for non-computer scientists to use are called application computer scientists. 112

Second Generation Software (1959 -1965) High Level Languages Use English-like statements and made programming Second Generation Software (1959 -1965) High Level Languages Use English-like statements and made programming easier: Fortran, COBOL, Lisp. High-Level Languages Assembly Language Machine Language 113 14

Third Generation Software (19651971) Systems Software Developed n n n utility programs, language translators, Third Generation Software (19651971) Systems Software Developed n n n utility programs, language translators, and the operating system, which decides which programs to run and when. Computer programmers now created programs to be used by people who did not know how to program 114 15

Third Generation Software (1965 -1971) Application Package Systems Software High-Level Languages Assembly Language Machine Third Generation Software (1965 -1971) Application Package Systems Software High-Level Languages Assembly Language Machine Language 115 16

Fourth Generation Software (1971 -1989) Structured Programming Pascal, C New Application Software for Users Fourth Generation Software (1971 -1989) Structured Programming Pascal, C New Application Software for Users Spreadsheets, word processors, database management systems 116 17

Fifth Generation Software (1990 present) Microsoft The Windows operating system, and other Microsoft application Fifth Generation Software (1990 present) Microsoft The Windows operating system, and other Microsoft application programs dominate the market Object-Oriented Design Based on a hierarchy of data objects (i. e. Java, C++) World Wide Web Allows easy global communication through the Internet New Users Today’s user can “get by” with little computer knowledge 117 18

Computing as a Tool Programmer / User Systems Programmer (builds tools) Applications Programmer (uses Computing as a Tool Programmer / User Systems Programmer (builds tools) Applications Programmer (uses tools) Domain-Specific Programs User with No Computer Background 118 20

Computing as a Discipline What can be (efficiently) Automated? Four Necessary Skills 1. 2. Computing as a Discipline What can be (efficiently) Automated? Four Necessary Skills 1. 2. 3. 4. Algorithmic Thinking Representation Programming Design 119 21

Some Systems Areas of Computer Science Study of Algorithms and Data Structures Programming Languages Some Systems Areas of Computer Science Study of Algorithms and Data Structures Programming Languages Architecture Operating Systems Software Methodology and Engineering Human-Computer Communication Systems Programming 120 23

Some Application Areas of Computer Science Numerical and Symbolic Computation Databases and Information Retrieval Some Application Areas of Computer Science Numerical and Symbolic Computation Databases and Information Retrieval Artificial Intelligence and Robotics Graphics Organizational Informatics Bioinformatics Multimedia Game development 121 24

Some other disciplines sharing some ground with computer science Computer engineering Electrical engineering Computational Some other disciplines sharing some ground with computer science Computer engineering Electrical engineering Computational physics Computational chemistry Computational biology (or bioinformatics) 122