ppt - Department of Computing and Software

Download Report

Transcript ppt - Department of Computing and Software

Early History of Computing
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
1
6
Early History of Computing
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
2
7
First Generation Hardware
(1951-1959)
Vacuum Tubes
Large, not very reliable, generated a lot of heat
Magnetic Drum
Memory device that rotated under a read/write head
Card Readers  Magnetic Tape Drives
Sequential auxiliary storage devices
3
8
Second Generation Hardware
(1959-1965)
Transistor
Replaced vacuum tube, fast, small, durable, cheap
Magnetic Cores
Replaced magnetic drums, information available
instantly
Magnetic Disks
Replaced magnetic tape, data can be accessed directly
4
9
Third Generation Hardware
(1965-1971)
Integrated Circuits
Replaced circuit boards, smaller, cheaper, faster, more
reliable
Transistors
Now used for memory construction
Terminal
An input/output device with a keyboard and screen
5
10
Fourth Generation Hardware (1971?)
Large-scale Integration
Great advances in chip technology
PCs, the Commercial Market, Workstations
Personal Computers and Workstations emerge
New companies emerge: Apple, Sun, Dell …
Laptops
Everyone has his/her own portable computer
6
11
Parallel Computing and Networking
Parallel Computing
Computers rely on interconnected central processing
and/or memory units that increase processing speed
Networking
Ethernet connects small computers to share resources
File servers connect PCs in the late 1980s
ARPANET and LANs  Internet
7
12
First Generation Software
(1951-1959)
Machine Language
Computer programs written in binary (1s and 0s)
Assembly Languages and Translators
Programs written using mnemonics, which were
translated into machine language
Programmer Changes
Programmers divide into two groups: application
programmers and systems programmers
8
13
Assembly/Machine
Systems programmers
write the assembler
(translator)
9
Applications programmers
use assembly language to
solve problems
Second Generation Software
(1959-1965)
High-level Languages
English-like statements made programming easier:
Fortran, COBOL, Lisp
Systems
programmers
write translators for
high-level languages
Application
programmers
use high-level
languages to
solve problems
10
14
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 Hardware
Computer programmers write programs to be used by
general public (i.e., nonprogrammers)
11
15
Third Generation Software
(1965-1971)
12
16
Fourth Generation Software
(1971-1989)
Structured Programming
Pascal
C
C++
New Application Software for Users
Spreadsheets
Word processors
Database management systems
13
17
Fifth Generation Software
(1990- present)
Microsoft
Windows operating system and other Microsoft application
programs dominate the market
Object-Oriented Design
Based on a hierarchy of data objects (i.e. Java, Python)
World Wide Web
Allows easy global communication through the Internet
New Users
Today’s user needs no computer knowledge
14
18
Computing as a Tool
Programmer / User
Systems Programmer
(builds tools)
Applications Programmer
(uses tools)
Domain-Specific Programs
15
User with No
Computer Background
20
Computing as a Discipline
What can be (efficiently) automated?
Four Necessary Skills
•
•
•
•
16
Algorithmic Thinking
Representation
Programming
Design
21
Systems Areas of Computer Science
•
•
•
•
•
•
Algorithms and Data Structures
Programming Languages
Architecture
Operating Systems
Software Methodology and Engineering
Human-Computer Communication
17
23
Application Areas of Computer Science
•
•
•
•
•
•
Numerical and Symbolic Computation
Databases and Information Retrieval
Artificial Intelligence and Robotics
Graphics
Organizational Informatics
Bioinformatics
18
24
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
19
• Software
– Programs that run on a computer
20
Computer Organization
• 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
21
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
22
Layers of a Computing System
23
4
Evolution of Operating Systems
• 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
24
• Timesharing
– Computer runs a small portion of one user’s
job then moves on to service the next user
25
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)
26
Machine Languages, Assembly
Languages, and High-level
Languages
Three types of programming languages
1. Machine languages
• Strings of numbers giving machine specific
instructions
• Example:
+1300042774
+1400593419
+1200274027
27
2. Assembly languages
• English-like abbreviations representing
elementary computer operations (translated via
assemblers)
• Example:
LOAD
ADD
STORE
28
BASEPAY
OVERPAY
GROSSPAY
3. High-level languages (Java, C++, Python)
• Codes similar to everyday English
• Use mathematical notations (translated via
compilers)
• Example:
grossPay = basePay + overTimePay
29
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
30
• TCP/IP
• Bandwidth
– Information carrying capacity of
communications lines
31
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
32