Title: CS 149, slide set 1
1CS 149, slide set 1
- M. Overstreet
- Old Dominion University
- Spring 2004
2Slide Outline
- Class introduction
- 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
25
3Class Overview
- Class web site www.cs.odu.edu/cmo
- Syllabus, etc.
- Old exams, Old assignments, more.
- Copies of slides
- Will only cover part of text
- Programming is part of the class
- C or Java?
- What's the difference?
- C and Java instruction available on class web
site - Some people think programming is fun, some people
hate it! - In this class, you found out which kind you are
(if you don't already know).
4First Quiz
- Send me e-mail so I will have your e-mail address
- Answer questions on next slide your answer only
- Grade the correctness of your answers, include
the number of correct the number of incorrect
answers
5Background questions
- Do you own a computer?
- If, so which OS?
- Some version of Windows
- Linux
- Mac (some version of X)
- How do you connect to the internet
- a. Work
- ODU
- Homemodem
- Homeisdn
- Homecable
- Homeother
- What's an internet?
- Major?
- If you are employed, how many hr/week?
6Why study computers?
- They're everywhere, only more so
- How many computers in this room?
- You may be able to use some of what we do in this
class in your profession - New experimentation methodology is computation
- Many basic sciences have significant computation
component - Knowledgeable citizens need to understand what
computers can do to us!!
7From Va-Pilot, Jan. 11, 2004
- Many fields still growing, need people
- Cyber Security
- Animation
- Engineering and many sciences women
- Audiology
- Social work
- Telecommunications Engineering
8Assignment
- Check out the class web site
- Check out the text web site
- Read text, chapter 1 (33 pages) by Tuesday
- Exercises, due Tuesday, Jan. 20
- pg. 28, 1-10 (matching)
9Computing Systems
Computing systems are dynamic! Things wiggle
change
Difference between hardware and software?
2
10Computing Systems (Contd)
Hardware The physical elements of a computing
system (printer, circuit boards, wires, keyboard,
). If it falls on you, it can hurt. Software
The programs that provide the instructions for a
computer to execute. Tells the hardware what to
do. Stored on hardware, but can't fall on you.
3
11Layers of a Computing System
Communication
Application
Operating System
Programming
Hardware
Information
4
12Abstraction
A view or model that removes (or hides) complex
details This is a key concept. Abstraction will
reappear throughout the text be sure to
understand it! In the sciences, a fundamental way
of dealing with complexity is through
abstraction. (Encyclopedia Britannica graphic
in 1768 edition)
5
13Early History of Computing
Abacus An early device to record numeric
values Blaise Pascal Mechanical device to add,
subtract, divide multiply Joseph Jacquard
Jacquards Loom, the punched card Charles
Babbage Analytical Engine generally recognized
as the first computer it could be programmed
to do different tasks
6
14Early History of Computing
Ada Lovelace First Programmer, the loop Alan
Turing Theory of computing, Turing Machine,
Artificial Intelligence, "Turing Test" Harvard
Mark I, ENIAC, UNIVAC I Early computers launch
new era in mathematics, physics, engineering,
military, economics
7
15Diversion
- Alice bot
- What's a "bot"?
- Assignment find Alice on the web and have a
conversation with her - Mail me your impressions after talking with her
- Figure out if she remembers earlier parts of a
conversation. - Would you fall in love with her?
- Computer Science frustration
- Stuff in movies is often much better than what is
possible - Remember 2001 A Space Odyssey (1968)?
- HAL figured out how to read lips
- He had to WANT to do this
- Alice can't read lips
16First 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 Development of these
sequential auxiliary storage devices
8
17Important characteristics of these hardware
devices
- Fast cheap (at least relatively)
- This implies as simple as possible
- Each could store information
- Complete circuit/broken circuit
- Hole or no hole in card
- Magnetized or not magnetized
- Switch open or closed
- For simplicity, store as binary
- Interpret one setting as a 0, the other as 1
18Second Generation Hardware (1959-1965)
Transistor Replaced vacuum tube, fast, small,
durable, cheap Magnetic Cores Replaced magnetic
drums, information available almost
instantly Magnetic Disks Replaced magnetic tape,
data can be accessed directly
9
19Third 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
10
20Fourth Generation Hardware (1971-?)
Large-scale Integration Great advances in chip
technology PCs, the Commercial Market,
Workstations Personal Computers were developed as
new companies like Apple and Atari came into
being. Workstations emerged.
11
21Parallel Computing and Networking
Parallel Computing Computers rely on
interconnected central processing units that
increase processing speed. Networking With the
Ethernet small computers could be connected and
share resources. A file server connected PCs in
the late 1980s. ARPANET and LANs ? Internet
12
22First Generation Software (1951-1959)
Machine Language Computer programs were written
in binary (1s and 0s) Assembly Languages and
translators Programs were written in artificial
programming languages and were then translated
into machine language Programmer
Changes Programmers divide into application
programmers and systems programmers
13
23Second Generation Software (1959-1965)
High Level Languages Use English-like statements
and made programming easier Fortran, COBOL,
Lisp.
High-Level Languages
Assembly Language
Machine Language
14
24Third 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 Hardware
- Computer programmers now created programs to be
used by people who did not know how to program
15
25Third Generation Software (1965-1971)
Application Package
Systems Software
High-Level Languages
Assembly Language
Machine Language
16
26Fourth Generation Software (1971-1989)
It's really hard to write programs that do what
the programmer intended. Structured Programming
supposed to help Pascal, C, C New Application
Software for Users Spreadsheets, word processors,
database management systems
17
27Fifth Generation Software (1990- present)
Microsoft The Windows operating system, and other
Microsoft application programs dominate the
market Linux Software should be
free! Object-Oriented Design Based on a
hierarchy of data objects (i.e. Java) World Wide
Web Allows easier global communication through
the Internet New Users Todays user needs modest
computer knowledge
18
28Assignment
- Read text, chapter 2 (23 pages) by Tuesday
- Exercises, due Tuesday, Jan. 27
- pg. 28, 1-6
- mail to cmo_at_cs.odu.edu
29Questions to Ponder
- How does the Internet affect your everyday life?
- What social issues stem from the rise of the
Internet and the World Wide Web? - What developments do you see for the future of
the Internet?
19
30Computing as a Tool
Programmer / User
Applications Programmer (uses tools)
Systems Programmer (builds tools)
Domain-Specific Programs
User with Modest Computer Background
20
31Computing as a Discipline
- What can be (efficiently) Automated? How fast can
a task be computed? - What can be "computed?"
- Some tasks cannot be, just as an angle cannot be
trisected - Four Necessary Skills
- Procedural thinking
- Representation
- Programming
- Design
21
32Computing as a Discipline
What do you think?
Is Computer Science a Mathematical, Scientific,
or Engineering discipline? What's the difference
between science and engineering?
22
33Standard Areas of Computer Science
- Algorithms and Data Structures
- Programming Languages
- Architecture
- Operating Systems
- Software Methodology and Engineering
- Human-Computer Communication
23
34Some Application Areas of Computer Science
- Numerical and Symbolic Computation (old)
- Databases and Information Retrieval (business
primarily) - Artificial Intelligence and Robotics (old and
new) - Graphics (movies!)
- Simulation (engineering, science)
- Organizational Informatics
- Bioinformatics
24