Beginning snapshots
Download
1 / 45

Beginning Snapshots - PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on

Beginning Snapshots. Chapter 0. 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. Algorithms and Data Structures Architecture

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Beginning Snapshots' - naoko


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Objectives
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

C++ An Introduction to Computing, 3rd ed.


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

Areas of Computer Science

C++ An Introduction to Computing, 3rd ed.


Important concepts in computer history
Important Concepts in Computer History

  • The mechanism of arithmetic

  • The stored program

  • The graphical user interface

  • The computer network

C++ An Introduction to Computing, 3rd ed.


Machines to do arithmetic
Machines to Do Arithmetic

  • Early calculators

    • Abacus 3000 B.C.

    • Stonehenge 1900 – 1600 B.C

    • Al-Khowarizm 12th Century

    • Napier's bones 1612

    • Slide rule 1630

    • Pascaline 1642

    • Leibniz' calculator 1673

C++ An Introduction to Computing, 3rd ed.


The stored program
The Stored Program

  • Jacquard loom 1801

  • Mechanical Computers

    • Babbage's Difference Engine 1822

    • Babbage's Analytical Engine 1833

    • Ada Augusta 1842

C++ An Introduction to Computing, 3rd ed.


Electromechanical computers
Electromechanical Computers

  • Hollerith's tabulating machine 1890

  • Konrad Zuse 1935-1938

  • Alan Turing 1937

  • The Mark I 1944

  • Atanasoff's ElectronicDigital Computer (ABC) 1936-1939

  • Grace Hopper 1944

C++ An Introduction to Computing, 3rd ed.


First generation computers
First-Generation Computers

  • Vacuum tube computers 1945-1956

  • ENIAC 1943-1946

  • John Von Neumann's"First Draft of a Report onthe EDVAC" 1945

  • First bug in a computer 1945

  • UNIVAC 1951

C++ An Introduction to Computing, 3rd ed.


Second generation computers
Second Generation Computers

  • Used transistors 1956-1963

  • FORTRAN 1957

  • IBM 7090 1958

    LISP

  • COBOL 1960

    ALGOL 60

C++ An Introduction to Computing, 3rd ed.


Third generation computers
Third-Generation Computers

  • Chips and Integrated Circuits 1964-1971

  • The IBM System/360 1964

  • The PDP-8 1965

  • Douglas Englebart: the mouse, Two-D display, editing, hypermedia, 1968

    Pascal

  • Ken Thompson: UNIX 1969

    ARPANET – The beginning of the Internet

C++ An Introduction to Computing, 3rd ed.


Fourth generation computers
Fourth-Generation Computers

  • Intel 4004 Chip 1971

  • Dennis Richie: C 1973

  • Ethernet

  • Court rules Atanasoff was legal inventor of first electronic digital computer

  • Altair, BASIC, Apple 1 1974

  • Apple II, Cray 1, Apple Corp.Microsoft Corp. 1976

  • IBM PC 1981

C++ An Introduction to Computing, 3rd ed.


Fourth generation computers1
Fourth-Generation Computers

  • Bjarne Stroustrup: C++ 1983

    Novell announces NetwareTCP/IP

  • Macintosh 1984

  • Windows 1985

  • Intel 386 Chip 1986

  • Tim Berners—Lee: WWW 1991

  • Linux 1992

C++ An Introduction to Computing, 3rd ed.


Fourth generation computers2
Fourth-Generation Computers

  • Pentium chips, Power PC chip 1993

    MOSAIC, Apple Newton

  • Netscape Navigator 1.0, Yahoo! 1994Palm computing

  • James Gosling: JAVA 1995Windows 95, Internet Explorer,Internet goes commercial

  • Windows 98, Apple's IMAC 1998Microsoft's court case

C++ An Introduction to Computing, 3rd ed.


Fourth generation computers3
Fourth-Generation Computers

  • Y2K Problem, Powermac G4 1999

  • Windows 2000 20001 GHZ processors

  • Mac OS X 2001Windows XP

  • Quantum Computer 2002

C++ An Introduction to Computing, 3rd ed.


Graphical user interface
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

C++ An Introduction to Computing, 3rd ed.


Network
Network

  • Defn: Two or more computers connect to exchange resources

    • Processing power

    • Storage

    • Access to a printer

    • Software resources

    • Messages

C++ An Introduction to Computing, 3rd ed.


Network1
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

C++ An Introduction to Computing, 3rd ed.


Computing systems
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

C++ An Introduction to Computing, 3rd ed.


Hardware cpu
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,

C++ An Introduction to Computing, 3rd ed.


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

    • 210 bytes =1024 bytes is called a kilobyte (1K)

    • 220 bytes is called a megabyte (1M).

C++ An Introduction to Computing, 3rd ed.


Storage1
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 (230 bytes))

    • CD-ROM (measured in megabytes), ...

C++ An Introduction to Computing, 3rd ed.


Input and output
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

C++ An Introduction to Computing, 3rd ed.


Input and output1
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

C++ An Introduction to Computing, 3rd ed.


Hardware the bus
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.

C++ An Introduction to Computing, 3rd ed.


Hardware cache
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.

C++ An Introduction to Computing, 3rd ed.


Hardware summary
Hardware: Summary

Putting the pieces together:

CPU

Main

Memory

Secondary

Memory

cache

Bus

  • Program storage

    • Long-term in secondary memory

    • Loaded into main memory to run

    • From which the CPU retrieves and executes their statements.

C++ An Introduction to Computing, 3rd ed.


Software os

Disk

CPU

RAM

Cache

OS

Bus

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.

C++ An Introduction to Computing, 3rd ed.


Software os1
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, ...

C++ An Introduction to Computing, 3rd ed.


Software applications
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)

C++ An Introduction to Computing, 3rd ed.


Software user programs
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.

C++ An Introduction to Computing, 3rd ed.


What is programming
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

C++ An Introduction to Computing, 3rd ed.


What kinds of statements do computers understand
What kinds of statementsdo 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, ...

C++ An Introduction to Computing, 3rd ed.


Machine language ml
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

C++ An Introduction to Computing, 3rd ed.


Early computers
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!

C++ An Introduction to Computing, 3rd ed.


A bright idea

Assembly languagestatements (mnemonics)

Machine language statements

A Bright Idea

  • Devise a set of abbreviations (mnemonics) corresponding to the ML statements

  • Create a program (the assembler) to translate them into ML.

100111001110010110100110110111

ADD 34, R1MOVE R1,1200CMPR R1, R2

Assembler

C++ An Introduction to Computing, 3rd ed.


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

Advantages and Disadvantages

C++ An Introduction to Computing, 3rd ed.


High level languages
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.

C++ An Introduction to Computing, 3rd ed.


Contrast assembler and hll compiler

Assembler translates one mnemonic into one ML statement

Compiler translates one HL statement into several ML statements

Contrast Assembler and HLL Compiler

1010110011110101

0000000000010000

0010111010110101

0000000000010010

0010111011111101

0000000000010100

Compiler

z = x + y;

C++ An Introduction to Computing, 3rd ed.


Advantage of hlls
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

C++ An Introduction to Computing, 3rd ed.


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

Objectives in ProgrammingA program should solve a problem:

C++ An Introduction to Computing, 3rd ed.


Summary of levels of computer languages

Low levelML in binary language

Medium Level Assembly language

High Levelas in C++

Hard to read, not portable

Mnemonics, easier to read, still not portable

Reads like English and algebra, portable

Summary of "Levels" of Computer Languages

C++ An Introduction to Computing, 3rd ed.


Putting it all together

App

Disk

CPU

RAM

Cache

OS

Bus

Putting It All Together

Programs and applications that are not running are stored on disk.

C++ An Introduction to Computing, 3rd ed.


Putting it all together1

App

Disk

CPU

RAM

Cache

OS

Bus

Putting It All Together

  • When you launch a program

    • OS controls the CPU

    • Loads the program from disk to RAM.

App

C++ An Introduction to Computing, 3rd ed.


Putting it all together2

App

App

Disk

CPU

RAM

Cache

OS

Bus

Putting it all together

  • The OS then relinquishes the CPU to the program,

  • Application program begins to run.

App

C++ An Introduction to Computing, 3rd ed.


The fetch execute cycle

App

Disk

CPU

RAM

Cache

OS

Bus

The Fetch-Execute Cycle

  • OS repeatedly fetches the next instruction (from memory / cache),

  • Executes it

  • Stores any results back to memory.

App

App

  • That’s all a computer does: fetch-execute-store, millions of times each second!

C++ An Introduction to Computing, 3rd ed.


ad