Chapter 1 The Big Picture. 1-2 25 Chapter Goals Describe the layers of a computer system Describe...

Post on 24-Dec-2015

224 views 0 download

Tags:

Transcript of Chapter 1 The Big Picture. 1-2 25 Chapter Goals Describe the layers of a computer system Describe...

Chapter 1

The Big Picture

1-2 25

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 BabbageAnalytical Engine Difference Engine

Early History of Computing

1-7 7

Ada LovelaceFirst Programmer, the loop

Alan TuringTuring Machine, Artificial Intelligence Testing

Harvard Mark I, ENIAC, UNIVAC IEarly 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: http://www.physics.umd.edu/robot/neum/compu.html

1-9 8

Vacuum TubesLarge, 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 headCard Readers Magnetic Tape DrivesSequential auxiliary storage devices

First Generation Hardware (1951-1959)

These hardware generations are mostly interesting to old profs.

1-10 9

TransistorReplaced vacuum tube, fast, small, durable, cheap

Magnetic CoresReplaced magnetic drums, information available instantly. Non-volatile; when will we ever learn?

Magnetic DisksReplaced magnetic tape, data can be accessed directly, i.e. you don’t need to wait until the end of the tape.

Second Generation Hardware (1959-1965)

1-1110

Integrated CircuitsReplaced circuit boards, smaller, cheaper, faster, more reliable.

TransistorsNow 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 (1965-1971)

1-12 11

Large-scale IntegrationGreat advances in chip technology. Invention of the 4004 Intel microprocessor, essentially a complete computer on one chip.

PCs, the Commercial Market, WorkstationsPersonal 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-?)

1-13 12

Parallel ComputingComputers rely on interconnected central processing units that increase processing speed.

NetworkingWith 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

1-14 13

Machine LanguageComputer programs were written in binary (1s and 0s)

Assembly Languages and translatorsPrograms were written in symbolic artificial programming languages and were then translated into machine language

Programmer ChangesProgrammers divide into application programmers and systems programmers

First Generation Software (1951-1959)

There are similar generations of software.

1-15 14

High Level LanguagesUse English-like statements and make programming easier. Fortran (FORTRAN), COBOL, Lisp are examples.

High-LevelLanguages

Assembly LanguageMachine

Language

Second Generation Software (1959-1965)

1-16 15

Third Generation Software (1965-1971)

• 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

1-17 17

Structured ProgrammingPascal (a dead language that was never alive), C, C++, Java, and many others

New Application Software for UsersSpreadsheets, word processors, database management systems, presentation graphics, HTML editors, ... ... ... ...

Fourth Generation Software (1971-1989)

1-18 18

MicrosoftThe 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 DesignBased 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 WebAllows easy global communication through the InternetNew UsersToday’s user needs no computer knowledge. Do you agree?

Fifth Generation Software (1990- present)

1-19 23

Systems Areas of Computer Science

• Algorithms and Data Structures

• Programming Languages

• Architecture

• Operating Systems

• Software Methodology and Engineering

• Human-Computer Communication

1-20 24

Application Areas of Computer Science

• Numerical and Symbolic Computation

• Databases and Information Retrieval

• Artificial Intelligence and Robotics

• Graphics

• Organizational Informatics

• Bioinformatics