1 6 Abacus An early device to record numeric values Blaise Pascal Mechanical device to add,...

Preview:

Citation preview

16

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

Early History of Computing

27

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

Early History of Computing

38

Vacuum TubesLarge, not very reliable, generated a lot of heat

Magnetic Drum Memory device that rotated under a read/write head

Card Readers Magnetic Tape DrivesSequential auxiliary storage devices

First Generation Hardware (1951-1959)

49

TransistorReplaced vacuum tube, fast, small, durable, cheap

Magnetic CoresReplaced magnetic drums, information available instantly

Magnetic DisksReplaced magnetic tape, data can be accessed directly

Second Generation Hardware (1959-1965)

510

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

TransistorsNow used for memory construction

Terminal An input/output device with a keyboard and screen

Third Generation Hardware (1965-1971)

611

Large-scale IntegrationGreat advances in chip technology

PCs, the Commercial Market, WorkstationsPersonal Computers and Workstations emergeNew companies emerge: Apple, Sun, Dell …

LaptopsEveryone has his/her own portable computer

Fourth Generation Hardware (1971-?)

712

Parallel ComputingComputers rely on interconnected central processing and/or memory units that increase processing speed

NetworkingEthernet connects small computers to share resources File servers connect PCs in the late 1980s

ARPANET and LANs Internet

Parallel Computing and Networking

813

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

Assembly Languages and TranslatorsPrograms written using mnemonics, which were translated into machine language

Programmer ChangesProgrammers divide into two groups: application programmers and systems programmers

First Generation Software (1951-1959)

9

Assembly/Machine

Systems programmerswrite the assembler(translator)

Applications programmers use assembly language to solve problems

1014

High-level LanguagesEnglish-like statements made programming easier:Fortran, COBOL, Lisp

Second Generation Software (1959-1965)

Systems programmerswrite translators forhigh-level languages

Applicationprogrammersuse high-levellanguages tosolve problems

1115

Third Generation Software (1965-1971)

Systems Software

Utility programs

Language translators

Operating system, which decides which programs to run and when

Separation between Users and HardwareComputer programmers write programs to be used by general public (i.e., nonprogrammers)

1216

Third Generation Software (1965-1971)

1317

Structured ProgrammingPascal CC++

New Application Software for UsersSpreadsheets Word processors Database management systems

Fourth Generation Software (1971-1989)

1418

MicrosoftWindows operating system and other Microsoft application programs dominate the market

Object-Oriented DesignBased on a hierarchy of data objects (i.e. Java, Python)

World Wide WebAllows easy global communication through the Internet

New UsersToday’s user needs no computer knowledge

Fifth Generation Software (1990- present)

1520

Programmer / User

Applications Programmer(uses tools)

User with No Computer Background

Systems Programmer(builds tools)

Domain-Specific Programs

Computing as a Tool

1621

Computing as a Discipline

What can be (efficiently) automated?

Four Necessary Skills• Algorithmic Thinking• Representation• Programming• Design

1723

Systems Areas of Computer Science

• Algorithms and Data Structures• Programming Languages• Architecture• Operating Systems• Software Methodology and Engineering• Human-Computer Communication

1824

Application Areas of Computer Science

• Numerical and Symbolic Computation• Databases and Information Retrieval• Artificial Intelligence and Robotics• Graphics• Organizational Informatics• Bioinformatics

19

What is a Computer?

• Computer – Device capable of performing computations

and making logical decisions– Computers process data under the control of

sets of instructions called computer programs

• Hardware – Various devices comprising a computer– Keyboard, screen, mouse, disks, memory,

CD-ROM, and processing units

20

• Software – Programs that run on a computer

21

• Six logical units in every computer:1. Input unit• Obtains information from input devices (keyboard,

mouse)

2. Output unit • Outputs information (to screen, to printer, to

control other devices)

3. Memory unit • Rapid access, low capacity, stores input

information

Computer Organization

22

4. Arithmetic and logic unit (ALU) • Performs arithmetic calculations and logic

decisions

5. Central processing unit (CPU) • Supervises and coordinates the other sections of

the computer

6. Secondary storage unit • Cheap, long-term, high-capacity storage• Stores inactive programs

234

Layers of a Computing System

24

• Batch processing– Do only one job or task at a time

• Operating systems – Manage transitions between jobs– Increased throughput• Amount of work computers process

• Multiprogramming – Computer resources are shared by many jobs

or tasks

Evolution of Operating Systems

25

• Timesharing– Computer runs a small portion of one user’s

job then moves on to service the next user

26

Personal Computing, Distributed Computing, and Client/Server

Computing• Personal computers

– Economical enough for individual

• Distributed computing – Computing distributed over networks

• Client/server computing– Sharing of information across computer

networks between file servers and clients (personal computers)

27

Machine Languages, Assembly Languages, and High-level

Languages

Three types of programming languages1. Machine languages • Strings of numbers giving machine specific

instructions• Example:

+1300042774+1400593419+1200274027

28

2. Assembly languages• English-like abbreviations representing

elementary computer operations (translated via assemblers)

• Example:LOAD BASEPAYADD OVERPAYSTORE GROSSPAY

29

3. High-level languages (Java, C++, Python)• Codes similar to everyday English• Use mathematical notations (translated via

compilers)• Example:

grossPay = basePay + overTimePay

30

History of the Internet• The Internet enables

– Quick and easy communication via e-mail– International networking of computers

• Packet switching– The transfer of digital data via small packets– Allows multiple users to send and receive

data simultaneously

• No centralized control– If one part of the Internet fails, other parts can

still operate

31

• TCP/IP• Bandwidth

– Information carrying capacity of communications lines

32

History of the World Wide Web

• World Wide Web – Locate and view multimedia-based

documents on almost any subject– Makes information instantly and conveniently

accessible worldwide– Possible for individuals and small businesses

to get worldwide exposure– Changing the way business is done