830 likes | 988 Vues
Spring 2010. Lecture 2 Chapter 0 Wednesday, January 13 th 2010. Our Objectives for this section:. Review the Chapter 0 reading assignment. Learn about the origins of Computer Science. Learn about the central role of algorithms in Computer Science. Objectives: (cont’d).
E N D
Spring 2010 Lecture 2 Chapter 0 Wednesday, January 13th 2010
Our Objectives for this section: • Review the Chapter 0 reading assignment. • Learn about the origins of Computer Science. • Learn about the central role of algorithms in Computer Science
Objectives: (cont’d) • Start developing an understanding of the breadth and nature of Computer Science. • Define Algorithms wrt CS. • Define Abstraction and Abstract Tools wrt CS. • Discuss relevant social issues. • It’s IMPORTANT to remember!These slides are not a substitute for the reading. They are provided here merely for review of • what you have read and taken notes on already. You MUST complete the reading assignments, attend class, and take notes. As you re-read, and then revise your notes – you’ll be putting these ideas and concepts into your own words, and you will have made great advances in learning the material.
Intro.. • This chapter introduces computer science as the discipline that seeks a scientific foundation for topics such as computer design, computer programming, algorithmic processes, etc. • It gives an informal introduction to the concept of an algorithm (more detail is given in Chapter 5) and discusses how this concept forms the foundation of the field known as Computer Science. • The chapter also presents a brief history of computing machinery, introduces the concept of • abstraction, and the importance of ethics.
Chapter 0: Introduction • 0.1 The Role of Algorithms • 0.2 The Origins of Computing Machines • 0.3 The Science of Algorithms • 0.4 Abstraction • 0.5 An Outline of Our Study • 0.6 Social Repercussions
Computer Science • The science of algorithms • Draws from other subjects, including • Mathematics • Engineering • Psychology • Business Administration • Psychology
Central Questions of Computer Science • Which problems can be solved by algorithmic processes? • How can algorithm discovery be made easier? • How can techniques of representing and communicating algorithms be improved? • How can characteristics of different algorithms be analyzed and compared?
Central Questions of Computer Science (cont’d) • How can algorithms be used to manipulate information? • How can algorithms be applied to produce intelligent behavior? • How does the application of algorithms affect society?
Figure 0.5 The central role of algorithms in computer science
Abstraction • Abstraction: The distinction between the external properties of an entity and the details of the entity’s internal composition • Abstract tool:A “component” that can be used without concern for the component’s internal properties
4 5 ADDER 9
Terminology • Algorithm: A set of steps that defines how a task is performed • Program: A representation of an algorithm • Programming: The process of developing a program • Software: Programs and algorithms • Hardware: Equipment
History of Algorithms • The study of algorithms was originally a subject in mathematics. • Early examples of algorithms • Long division algorithm • Euclidean Algorithm • Gödel's Incompleteness Theorem: Some problems cannot be solved by algorithms.
Origins of Computing Machines • Mechanical Devices have been used to aid in calculations for thousands of years. • Math was used to solve problems ---- land measurement, navigation, weights & measures,….. • Navigational needs. • Property ownership: measuring, calculating. • Time: measuring, calculating. • Architecture/Construction: pyramids
Origins of Computing Machines • Ancient Greeks invented sophisticated analog computers. • On an ancient Greek shipwreck off the island of Antikythera a salt-encrusted device was found which consisted of rusted metal gears and pointers. • The device was reconstructed and produced a mechanism for predicting the motions of the stars and planets.
Origins of Computing Machines Greece, Ancient Assyria, Egypt,….. • The ABACUSmost likely existed in Babylonia around 3000 B.C. • Abacus: positions of beads represent numbers
Origins of Computing Machines • Gear-based machines (1600s-1800s) • Positions of gears represent numbers • Blaise Pascal, Wilhelm Leibniz, Charles Babbage • 1622: invention of slide rule • 1642: invention of mechanical calculator by Blaise Pascal • 1694: Leibniz Wheel expands arithmetic operations
Early Data Storage Joseph Jacquard. • First used in Jacquard Loom (1801) to store patterns for weaving cloth • Allows the operator to input and store parameters through use of punch cards that are oriented with selection pins. • Popular through the 1970’s • Stored Program Concept!
Early Data Storage Charles Babbage • Invents Difference Engine in 1823 • Device adds, subtracts, multiplies, divides • Designs Analytical Engine • Incorporated components akin to modern computer systems: I/O devices, memory, CPU • Storage of programs in Babbage’s Analytical Engine - Gear positions
Early Data Storage Ada Lovelace Byron • First programmer! • Program loop concept • Ada programming language namesake
Early Data Storage Herman Hollerith • Invented an electromechanical counter in 1880s. • Designed as a single-purpose machine, it was used in tabulating the 1890 US census. • Used punch cards as input
Early Data Storage Herman Hollerith • The company created around this technology becomes International Business Machine: IBM • 1944 – IBM Mark I computer
Early Computers • Based on mechanical relays • 1940: Stibitz at Bell Laboratories • 1944: Mark I: Howard Aiken and IBM at Harvard • Based on vacuum tubes • 1937-1941: Atanasoff-Berry at Iowa State • 1940s: Colossus: secret German code-breaker • 1940s: ENIAC: Mauchly & Eckert at U. of Penn.
Progress in Early Computers Charles Sanders Peirce • His work with electric switches extends the work of Boole by emulating the true/false conditions of Boolean algebra • Benjamin Burack implements concepts in 1936 logic machine • John Atanasoff and Clifford Berry build a computer using vacuum tubes
Progress in Early Computers What do you think was one of the major catalysts for advancement in computer science?
WAR World War II is a developmental turning point • U.S. Navy Board of Ordinance helps fund Mark I • U.S. Army funds ENIAC (Electronic Numerical Integrator and Computer) • ENIAC runs 1000 times faster than Mark I • ENIAC and Mark I too late to assist in war effort
WAR • ENIAC’s strengths • Performs arithmetic and logic operations • Made multi-purpose with symbolic variables • ENIAC’s overhead • Mammoth! Loud! • Around 18,000 vacuum tubes • 6,000 switches need for arithmetic operations • ENIAC’S drawbacks • Could not modify program contents • Had to be programmed externally
Early Computers - EDVAC WAR 1944 Electronic Discrete Variable Automatic Computer EDVAC
Early Computers - EDVAC WAR • 1944 – EDVAC Electronic Discrete Variable Automatic Computer Operation is controlled by program in memory • . Programs could be modified • . • Colossus – Britain • helps crack German U-boat Enigma code • All machines destroyed by 1960s • Re-usable Programs! • Stored program concept!
Source: NSA
In the beginning…. • The 1950s: First Generation Computers • Hardware: Vacuum tubes worked as memory for the machine • Software: Data written to magnetic drums and magnetic tapes • I/O: Punch cards and Paper tape for input • I/O: Line printers make hard copies
1950s First Generation Computers • Software and hardware separate and evolve distinctly. • Machine Instructions are written in binary or machine code • Assembly language: first layer of abstraction • Software splits into system & application
1950s First Generation Computers UNIVAC • First commercially viable computer • US Census Bureau is the first customer • Faces skepticism from Howard Aiken, the builder of the Mark I computer.
1950s First Generation Computers UNIVAC • Successfully predicted the outcome of the 1952 Presidential election during the CBS television broadcast. • Quickly adopted by all major news network
1960s The Groovy Computer Generation IBM – International Business Machine • Dominated the mainframe market…(>70%) • Strong Corporate Sales Culture that focused on a limited number of products in the market. • Introduce scalable and flexible computer systems • Big Blue
Next Generation The Transistors • Solid State Technology • Rapid advances in Hardware Development • Transistors replace Vacuum Tubes • RAM technology advances magnetic cores • Secondary Storage advances Magnetic disks • High-level languages emerge: • FORTRAN, COBOL, LISP
Next Generation The Transistors • Integrated Circuits IC’s Computer Chips • Jack Kilby and Robert Noyce came up with integrated circuit in 1959 • Miniaturized circuit components on board • Semiconductor properties • Improve reliability & speed, while reducing the cost & size of computer systems
Next Generation The Operating Systems • Operating Systems (OS’s) • Programs to manage user jobs. • Manages system resources • Facilitates multiple users
Next Generation The Time Sharing Systems Multiple user system access. • Auto allocation of system resources • Input: Paper Rolls (in lieu of punch cards) • Productivity gains increased • Response time decreased • General purpose machines broaden appeal