Introduction to Computer Science:
Overview
1
Module Info
• Haoxiang WANG 王昊翔
• Associate Prof. PhD.
• School of Computer Science and
Engineering, SCUT
• E-mail: hxwang@scut.edu.cn
2
Textbook
Computer Science Illuminated
Fifth Edition
Nell Dale, Ph.D., University of Texas,
Austin,
John Lewis, Villanova University
3
Grading
• Coursework 30%
• Class participation and attendance 20%
• End-term exam/Course thesis 50%
4
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
*
25
Computing Systems
Computing systems are dynamic!
What is the difference between hardware
and software?
*
2
Computing Systems
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
*
3
Layers of a Computing System
*
4
Abstraction
Abstraction A mental model that removes
complex details
This is a key concept. Abstraction will
reappear throughout the text – be sure you
understand it!
*
5
Internal View
*
Abstract View
*
History
*
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
*
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
*
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
*
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
*
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
*
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, Tablet Computers, and Smart
Phones
Everyone has his/her own portable computer
*
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
*
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
*
13
Assembly/Machine
Systems programmers
Applications programmers
write the assembler
use assembly language to
(translator)
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
*
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)
*
15
Third Generation Software
(1965-1971)
*
16
Fourth Generation Software
(1971-1989)
Structured Programming
Pascal
C++
New Application Software for Users
Spreadsheets
Word processors
Database management systems
*
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)
World Wide Web
Allows easy global communication through the Internet
New Users
Today’s user needs no computer knowledge
*
18
Computing as a Tool
Programmer / User
Systems Programmer Applications Programmer
(builds tools) (uses tools)
Domain-Specific Programs
User with No
Computer Background
*
Computing as a Discipline
What can be (efficiently) automated?
Four Necessary Skills
• Algorithmic Thinking
• Representation
• Programming
• Design
*
21
Computing as a Discipline
What do you think?
Is Computer Science a mathematical,
scientific, or engineering discipline?
*
22
Examples of Systems Areas
• Algorithms and Data Structures
• Programming Languages
• Architecture
• Operating Systems
• Software Engineering
• Human-Computer Communication
*
23
Examples of Application Areas
• Numerical and Symbolic Computation
• Databases and Information Retrieval
• Intelligent Systems
• Graphics and Visual Computing
• Net-Centric Computing
• Computational Science
*
24
Machine learning
• Evolved from the study of pattern
recognition and computational
learning theory in artificial intelligence.
• Explore the study and construction of
algorithms that can learn from and
make predictions on data.
33
Machine learning Applications
• 2006, "Netflix Prize"
– better predict user preferences and improve the accuracy.
1m $!
• 2010, The Wall Street Journal, Rebellion
Research,
– use of machine learning to predict economic movement
• 2014, Art History
– to study fine art paintings, revealed previously
unrecognized influences between artists.
34