Presentation is loading. Please wait.

Presentation is loading. Please wait.

Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.

Similar presentations


Presentation on theme: "Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context."— Presentation transcript:

1 Beginning Snapshots Chapter 0

2 C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context for computer science concepts Events from the past Describe basic components, organization of a computer

3 C++ An Introduction to Computing, 3rd ed. 3 Areas of Computer Science Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and Information Retrieval Human-Computer Communication Numerical and Symbolic Computation Operating Systems Programming Languages Software Methodology and Engineering Social and Professional Context

4 C++ An Introduction to Computing, 3rd ed. 4 Important Concepts in Computer History The mechanism of arithmetic The stored program The graphical user interface The computer network

5 C++ An Introduction to Computing, 3rd ed. 5 Machines to Do Arithmetic Early calculators Abacus3000 B.C. Stonehenge1900 – 1600 B.C Al-Khowarizm12 th Century Napier's bones1612 Slide rule1630 Pascaline1642 Leibniz' calculator1673

6 C++ An Introduction to Computing, 3rd ed. 6 The Stored Program Jacquard loom1801 Mechanical Computers Babbage's Difference Engine1822 Babbage's Analytical Engine1833 Ada Augusta1842

7 C++ An Introduction to Computing, 3rd ed. 7 Electromechanical Computers Hollerith's tabulating machine1890 Konrad Zuse1935-1938 Alan Turing1937 The Mark I1944 Atanasoff's Electronic Digital Computer (ABC)1936-1939 Grace Hopper1944

8 C++ An Introduction to Computing, 3rd ed. 8 First-Generation Computers Vacuum tube computers1945-1956 ENIAC1943-1946 John Von Neumann's "First Draft of a Report on the EDVAC"1945 First bug in a computer1945 UNIVAC1951

9 C++ An Introduction to Computing, 3rd ed. 9 Second Generation Computers Used transistors1956-1963 FORTRAN1957 IBM 70901958 LISP COBOL1960 ALGOL 60

10 C++ An Introduction to Computing, 3rd ed. 10 Third-Generation Computers Chips and Integrated Circuits1964-1971 The IBM System/3601964 The PDP-81965 Douglas Englebart: the mouse, Two-D display, editing, hypermedia,1968 Pascal Ken Thompson: UNIX1969 ARPANET – The beginning of the Internet

11 C++ An Introduction to Computing, 3rd ed. 11 Fourth-Generation Computers Intel 4004 Chip1971 Dennis Richie: C1973 Ethernet Court rules Atanasoff was legal inventor of first electronic digital computer Altair, BASIC, Apple 11974 Apple II, Cray 1, Apple Corp. Microsoft Corp.1976 IBM PC1981

12 C++ An Introduction to Computing, 3rd ed. 12 Fourth-Generation Computers Bjarne Stroustrup: C++1983 Novell announces Netware TCP/IP Macintosh1984 Windows1985 Intel 386 Chip1986 Tim Berners—Lee: WWW1991 Linux1992

13 C++ An Introduction to Computing, 3rd ed. 13 Fourth-Generation Computers Pentium chips, Power PC chip1993 MOSAIC, Apple Newton Netscape Navigator 1.0, Yahoo!1994 Palm computing James Gosling: JAVA1995 Windows 95, Internet Explorer, Internet goes commercial Windows 98, Apple's IMAC1998 Microsoft's court case

14 C++ An Introduction to Computing, 3rd ed. 14 Fourth-Generation Computers Y2K Problem, Powermac G41999 Windows 20002000 1 GHZ processors Mac OS X2001 Windows XP Quantum Computer2002

15 C++ An Introduction to Computing, 3rd ed. 15 Graphical User Interface Command line interface required precise and cryptic commands Xerox PARK had developed GUI prototype in 1972 Steve Jobs saw it several years later and used new hardware capabilities to implement GUI makes computer easy to use

16 C++ An Introduction to Computing, 3rd ed. 16 Network Defn: Two or more computers connect to exchange resources Processing power Storage Access to a printer Software resources Messages

17 C++ An Introduction to Computing, 3rd ed. 17 Network Time sharing in early 1960s Users communicate with host computer ARPANET connected research center computers in 1969 Eventually developed into Internet Local Area Network hardware and operating systems developed late 1970s ISPs now affordable, widely available for even home computers

18 C++ An Introduction to Computing, 3rd ed. 18 Computing Systems Computers have two kinds of components: Hardware – physical devices such as CPU memory storage devices Software – programs such as Operating system applications utilities

19 C++ An Introduction to Computing, 3rd ed. 19 Hardware: CPU Central Processing Unit (CPU): the “brain” of the machine Circuitry that performs arithmetic and logical ML statements CPU measurement Speed (roughly) in megahertz (millions of clock-ticks per second) Examples Intel Pentium, AMD K6, Motorola PowerPC, Sun SPARC,

20 C++ An Introduction to Computing, 3rd ed. 20 Storage Random Access Memory (RAM) “Main” memory, which is fast, but volatile... Analogous to a person’s short-term memory. Many tiny “on-off” switches “on” is represented by 1, “off” by 0. Each switch is called a binary digit, or bit. 8 bits is called a byte. 2 10 bytes =1024 bytes is called a kilobyte (1K) 2 20 bytes is called a megabyte (1M).

21 C++ An Introduction to Computing, 3rd ed. 21 Storage Secondary Memory (Disk): Stable storage using magnetic or optical media. Analogous to a person’s long-term memory. Slower to access than RAM. Examples: floppy disk (measured in kilobytes) hard disk (measured in gigabytes (2 30 bytes)) CD-ROM (measured in megabytes),...

22 C++ An Introduction to Computing, 3rd ed. 22 Input and Output Input devices Instructions and data must be encoded in binary form and transmitted to the CPU Examples: keyboard mouse, trackball, joystick scanner audio, video capture boards

23 C++ An Introduction to Computing, 3rd ed. 23 Input and Output Output devices Convert data from binary to another form Examples monitors, printers sound, video robotics control Communication between CPU and peripheral devices is through ports Ports communicate via the system bus

24 C++ An Introduction to Computing, 3rd ed. 24 Hardware: the Bus The Bus: Connects CPU to other hardware devices. Analogous to a person’s spinal cord. Speed measured in megahertz Like the CPU Typically much slower than the CPU... The bottleneck in most of today’s PCs.

25 C++ An Introduction to Computing, 3rd ed. 25 Hardware: Cache Access speed of RAM Faster than accessing secondary memory Still quite slow, relative to the rate at which the CPU runs. Solution: Add a fast cache memory to the CPU Store recently used instructions and data Assumption: These instructions/data were needed recently They will be needed again in the near future.

26 C++ An Introduction to Computing, 3rd ed. 26 Hardware: Summary Putting the pieces together: CPU Bus Main Memory Secondary Memory cache Program storage Long-term in secondary memory Loaded into main memory to run From which the CPU retrieves and executes their statements.

27 C++ An Introduction to Computing, 3rd ed. 27 Software: OS Operating system (OS) Loaded from secondary memory into main memory when the computer is turned on, Remains in memory until the computer is turned off. Disk RAMCPU Cache Bus OS

28 C++ An Introduction to Computing, 3rd ed. 28 Software: OS OS acts as the “manager” of the system, Making sure that each hardware device interacts smoothly with the others. Provides an interface Enables user to interact with the computer, Awaits user input if no application is running. Examples: MacOS, Windows-95, Windows-NT, UNIX, Linux, Solaris,...

29 C++ An Introduction to Computing, 3rd ed. 29 Software: Applications Applications are non-OS programs Perform some useful task Including word processors, spreadsheets, databases, web browsers, C++ compilers Example C++ compilers/environments: CodeWarrior (MacOS, Win95, WinNT, Solaris) GNU C++ (UNIX, Linux) Turbo/Borland C++ (Win95, WinNT) Visual C++ (Win95, WinNT)

30 C++ An Introduction to Computing, 3rd ed. 30 Software: User Programs Programs that are neither OS programs nor applications are called user programs. User programs are what you’ll be writing in this course.

31 C++ An Introduction to Computing, 3rd ed. 31 What is Programming? Computer Program A sequence of statements that instruct a computer in how to solve a problem. Programming The act of designing, writing and maintaining a program Programmers People who write programs

32 C++ An Introduction to Computing, 3rd ed. 32 What kinds of statements do computers understand? A computer only understands machine language statements. Characteristics of machine language A sequence of ones and zeros Cause the computer to perform a particular action, such as add, subtract, multiply,...

33 C++ An Introduction to Computing, 3rd ed. 33 Machine Language (ML) ML statements Stored in a computer’s memory Computer memory is a sequence of switches. an “on” switch is represented by 1, an “off” switch is represented by 0. ML thus appears to be binary (base-2): 0010111010110101

34 C++ An Introduction to Computing, 3rd ed. 34 Early Computers... required a programmer to write in ML... Problem Easy to make mistakes! Such mistakes are hard to find! Not portable -- only runs on one kind of machine! Programming was very difficult!

35 C++ An Introduction to Computing, 3rd ed. 35 A Bright Idea Devise a set of abbreviations (mnemonics) corresponding to the ML statements Create a program (the assembler) to translate them into ML. ADD 34, R1 MOVER1,1200 CMPRR1, R2 1001110011 1001011010 0110110111 Assembler Assembly language statements (mnemonics) Machine language statements

36 C++ An Introduction to Computing, 3rd ed. 36 Advantages and Disadvantages More natural than binary. Much easier to read programs Much easier to find and fix mistakes Still not portable to different machines Each machine had its own set of mnemonics Each had its own assembler

37 C++ An Introduction to Computing, 3rd ed. 37 High Level Languages Improvement on assembly language Devise a set of statements that are close to human language ( if, while, do,...) Create a program to translate them into ML. The set of statements is called a high level language (HLL) The translation program is called a compiler.

38 C++ An Introduction to Computing, 3rd ed. 38 Contrast Assembler and HLL Compiler Assembler translates one mnemonic into one ML statement Compiler translates one HL statement into several ML statements 1010110011110101 0000000000010000 0010111010110101 0000000000010010 0010111011111101 0000000000010100 z = x + y; Compiler

39 C++ An Introduction to Computing, 3rd ed. 39 Advantage of HLLs Programs are easier to read Errors are easier to find Programs are portable from one computer to another Assumes the language is standard Just create a new compiler which does the translation into the correct ML

40 C++ An Introduction to Computing, 3rd ed. 40 Objectives in Programming A program should solve a problem: Correctly Efficiently Readably In user-friendly fashion It actually solves the problem Without wasting time or space Understandable by another person In a way that is easy for its user to use

41 C++ An Introduction to Computing, 3rd ed. 41 Summary of "Levels" of Computer Languages Low level ML in binary language Medium Level Assembly language High Level as in C++ Hard to read, not portable Mnemonics, easier to read, still not portable Reads like English and algebra, portable

42 C++ An Introduction to Computing, 3rd ed. 42 Putting It All Together Programs and applications that are not running are stored on disk. App Disk RAMCPU Cache Bus OS

43 C++ An Introduction to Computing, 3rd ed. 43 Putting It All Together When you launch a program OS controls the CPU Loads the program from disk to RAM. App Disk RAMCPU Cache Bus OS App

44 C++ An Introduction to Computing, 3rd ed. 44 Putting it all together The OS then relinquishes the CPU to the program, Application program begins to run. App Disk RAMCPU Cache Bus OS App

45 C++ An Introduction to Computing, 3rd ed. 45 The Fetch-Execute Cycle OS repeatedly fetches the next instruction (from memory / cache), Executes it Stores any results back to memory. That’s all a computer does: fetch-execute- store, millions of times each second! App Disk RAMCPU Cache Bus OS App


Download ppt "Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context."

Similar presentations


Ads by Google