Chapter 1 The Big Picture
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
1-3 3 Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard…) Software The programs that provide the instructions for a computer to execute Computing Systems
1-4 4 Communication Application Operating System Programming Hardware Information Layers of a Computing System The text uses this model to separate the different aspects of CS. There is not much significance to the relation between layers.
1-5 5 Abstraction A mental model that removes complex details This is a key concept. Abstraction will reappear throughout the text – be sure to understand it! Abstraction This modeling is done in many disciplines, not just CS.
1-6 6 Abacus An early device to record numeric values Blaise Pascal Mechanical device to add, subtract, divide & multiply Joseph Jacquard Jacquard’s Loom, the punched card Charles Babbage Analytical Engine Difference Engine Early History of Computing
1-7 7 Ada Lovelace First Programmer, the loop Alan Turing Turing Machine, Artificial Intelligence Testing Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics. Mark 1 used electomechanical relays, ENIAC and UNIVAC were 1st generation--vacuum tube machines Early History of Computing
1-8 John von Neumann The father of the computer and greatest 20th Century mathematician The key elements were the invention of the stored program concept (software), the basic architecture or structure, performance analysis, and tutorial paper What is a Baltimore connection to this invention? For more information:
1-9 8 Vacuum Tubes Large, not very reliable, generated a lot of heat. Vacuum tubes are not entirely obsolete; you’re looking at one now! Magnetic Drum Memory device that rotated under a read/write head Card Readers Magnetic Tape Drives Sequential auxiliary storage devices First Generation Hardware ( ) These hardware generations are mostly interesting to old profs.
Transistor Replaced vacuum tube, fast, small, durable, cheap Magnetic Cores Replaced magnetic drums, information available instantly. Non-volatile; when will we ever learn? Magnetic Disks Replaced magnetic tape, data can be accessed directly, i.e. you don’t need to wait until the end of the tape. Second Generation Hardware ( )
Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more reliable. Transistors Now used for memory construction. Faster and more compact, but DRAM is volatile. Terminal An input/output device with a keyboard and screen Third Generation Hardware ( )
Large-scale Integration Great advances in chip technology. Invention of the 4004 Intel microprocessor, essentially a complete computer on one chip. PCs, the Commercial Market, Workstations Personal Computers were developed as new companies like Apple and Atari came into being. Workstations emerged. Cheap desktops made computers a tool for the masses. Fourth Generation Hardware (1971-?)
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. A file server connected PCs in the late 1980s. ARPANET and LANs Internet. This is where we are at now, and where we are going Parallel Computing and Networking
Machine Language Computer programs were written in binary (1s and 0s) Assembly Languages and translators Programs were written in symbolic artificial programming languages and were then translated into machine language Programmer Changes Programmers divide into application programmers and systems programmers First Generation Software ( ) There are similar generations of software.
High Level Languages Use English-like statements and make programming easier. Fortran (FORTRAN), COBOL, Lisp are examples. High-Level Languages Assembly Language Machine Languag e Second Generation Software ( )
Third Generation Software ( ) Systems Software – utility programs, – language translators, – and the operating system, which decides which programs to run and when. Separation between Users and Programming Computer programmers began to write programs to be used by people who did not know how to program
Structured Programming Pascal (a dead language that was never alive), C, C++, Java, and many others New Application Software for Users Spreadsheets, word processors, database management systems, presentation graphics, HTML editors, Fourth Generation Software ( )
Microsoft The Windows operating system, and Microsoft application programs dominate the market. The courts have held that Microsoft has abused its monopoly power to stifle competition. Object-Oriented Design Based on a hierarchy of data objects (i.e. Java). Objects are chucks of software containing both instructions and data, plus standard interfaces to other objects. World Wide Web Allows easy global communication through the Internet New Users Today’s user needs no computer knowledge. Do you agree? Fifth Generation Software (1990- present)
Systems Areas of Computer Science Algorithms and Data Structures Programming Languages Architecture Operating Systems Software Methodology and Engineering Human-Computer Communication
Application Areas of Computer Science Numerical and Symbolic Computation Databases and Information Retrieval Artificial Intelligence and Robotics Graphics Organizational Informatics Bioinformatics