1 / 83

Spring 2010

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).

Download Presentation

Spring 2010

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spring 2010 Lecture 2 Chapter 0 Wednesday, January 13th 2010

  2. 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

  3. 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.

  4. 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.

  5. 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

  6. Computer Science • The science of algorithms • Draws from other subjects, including • Mathematics • Engineering • Psychology • Business Administration • Psychology

  7. 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?

  8. 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?

  9. Figure 0.5 The central role of algorithms in computer science

  10. 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

  11. 4 5 ADDER 9

  12. 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

  13. Figure 0.1 An algorithm for a magic trick

  14. 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.

  15. Figure 0.2 The Euclidean algorithm

  16. 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

  17. 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.

  18. Origins of Computing Machines Greece, Ancient Assyria, Egypt,….. • The ABACUSmost likely existed in Babylonia around 3000 B.C. • Abacus: positions of beads represent numbers

  19. Figure 0.3 An Abacus

  20. 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

  21. 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!

  22. 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

  23. Early Data Storage Ada Lovelace Byron • First programmer! • Program loop concept • Ada programming language namesake

  24. 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

  25. Early Data Storage Herman Hollerith • The company created around this technology becomes International Business Machine: IBM • 1944 – IBM Mark I computer

  26. Figure 0.4 The Mark I computer

  27. 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.

  28. 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

  29. Progress in Early Computers What do you think was one of the major catalysts for advancement in computer science?

  30. 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

  31. 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

  32. Early Computers - EDVAC WAR 1944 Electronic Discrete Variable Automatic Computer EDVAC

  33. 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!

  34. Source: NSA

  35. 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

  36. 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

  37. 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.

  38. 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

  39. 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

  40. 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

  41. 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

  42. Next Generation The Operating Systems • Operating Systems (OS’s) • Programs to manage user jobs. • Manages system resources • Facilitates multiple users

  43. 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

More Related