CH 1.pdf
Document Details
Uploaded by OutstandingMotif
Tags
Full Transcript
CS1110 Introduction to Computer Science Chapter 1 Introduction 1 i Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to...
CS1110 Introduction to Computer Science Chapter 1 Introduction 1 i Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe the history of computer hardware and software Describe the changing role of the computer user Distinguish between systems programmers and applications programmers Distinguish between computing as a tool and computing as a discipline 2 Computing Systems (1 of 2) Computing System vs. Computer. A computing system, is a dynamic entity, used to solve problems and interact with its environment. Components: Hardware, software, and data. 3 Computing Systems (2 of 2) Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard, etc.) Software The programs that provide the instructions for a computer to execute 4 Layers of a Computing System 5 Layers of a Computing System Information, reflects the way we represent information on a computer. Hardware, consists of the physical hardware of a computer system. The programming layer deals with software, the instructions used to accomplish computations and manage data. Operating systems, help us interact with the computer system and manage the way hardware devices, programs, and data interact (such as Windows, Mac OS, or Linux). The applications layer, focuses on using the computer to solve specific real-world problems. Computer technology is used to communicate, and that communication is a fundamental layer at which computing systems operate. 6 Abstraction Abstraction A mental model that removes complex details This is a key concept. Abstraction will reappear throughout the text—be sure you understand it! 7 Internal and Abstract View A car engine and the abstraction that allows us to use it © aospan/Shutterstock. 8 History vencacolrab/iStock/Thinkstock 9 Early History of Computing (1 of 2) Abacus An early device to record numeric values Abacus Blaise Pascal Mechanical device to add, subtract, divide, and multiply Pascal Calculator Joseph Jacquard Jacquard’s Loom, the punched card Jacquard Loom Punched cards Charles Babbage Analytical Engine Charles Babbage Analytical Engine 10 Early History of Computing (2 of 2) Ada Lovelace The first programmer. The concept of the loop (a series of instructions that repeat) is attributed to her. Alan Turing Invented an abstract mathematical model called a Turing machine Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, Turing Machine physics, engineering, and economics Harvard Mark I ENIAC UNIVAC I 11 First-Generation Hardware (1951–1959) Vacuum Tubes Large, not very reliable, generated a lot of heat Magnetic Drum Memory device that rotated under a read/write head Card Readers Magnetic Tape Drives © SPbPhoto/Shutterstock Sequential auxiliary storage devices A vacuum tube 12 Second-Generation Hardware (1959–1965) Courtesy of Dr. Andrew Wyle Transistor Replaced vacuum tube; fast, small, durable, cheap A transistor, which replaced Magnetic Cores the vacuum tube Replaced magnetic drums, information available instantly Magnetic Disks Replaced magnetic tape, data can be accessed directly 13 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 14 Fourth-Generation Hardware (1971–?) Large-scale Integration Great advances in chip technology PCs, the Commercial Market, Workstations Personal computers and workstations emerge New companies emerge: Apple, Sun, Dell, etc. Laptops, Tablet Computers, and Smart Phones Everyone has his/her own portable computer 15 Parallel Computing and Networking Parallel Computing Computers rely on interconnected central processing and/or memory units that increase processing speed Networking Ethernet connects small computers to share resources File servers connect PCs in the late 1980s ARPANET and LANs Internet 16 First-Generation Software (1951–1959) Machine Language Computer programs written in binary (1s and 0s) Assembly Languages and Translators Programs written using mnemonics, which were translated into machine language Programmer Changes Programmers divide into two groups: application programmers and systems programmers 17 Assembly/Machine System programmers write the assembler (translator) Application programmers use assembly language to solve problems Language layers in the first generation 18 Second-Generation Software (1959–1965) High-Level Languages English-like statements made programming easier: Fortran, COBOL, Lisp System programmers write the translator for High-level languages. Application programmers use High-level languages to solve problems Language layers in the second generation 19 Third-Generation Software (1965–1971) (1 of 2) Systems Software Utility programs Language translators Operating system, which decides which programs to run and when Separation Between Users and Hardware Computer programmers write programs to be used by general public (i.e., nonprogrammers) 20 Third-Generation Software (1965–1971) (2 of 2) The layers of software surrounding the hardware continue to grow 21 Fourth-Generation Software (1971–1989) Structured Programming A logical, disciplined approach to programming: Pascal,C++ New Application Software for Users Spreadsheets Word processors Database management systems 22 Fifth-Generation Software (1990–present) Microsoft Windows operating system and other Microsoft application programs dominate the market Object-Oriented Design Based on a hierarchy of data objects (i.e., Java) World Wide Web Allows easy global communication through the Internet New Users Today’s user needs no computer knowledge 23 Computing as a Tool Programmer/User Systems Programmer Applications Programmer (builds tools) (uses tools) Domain-Specific Programs User with No Computer Background 24 Computing as a Discipline (1 of 2) What can be (efficiently) automated? Four Necessary Skills: Algorithmic thinking, , in which one is able to express problems in terms of step-by-step procedures to solve them. Representation, in which one is able to store data in a way that it can be processed efficiently. Programming, in which one is able to combine algorithmic thinking and representation into computer software. Design, in which the software serves a useful purpose. 25 Computing as a Discipline (2 of 2) What do you think? Is computer science a mathematical, scientific, or engineering discipline? 26