Lecture 1 - DePaul University

Download Report

Transcript Lecture 1 - DePaul University

CSC 255
Information Structures and
Representation
Fall 2002
Instructor: Dr. Ufuk Verun
E-Mail: [email protected]
Office: CTI CS&T 702
Phone ext: 2822
CSC255-702/703 - CTI/DePaul
Course Resources
Textbook:
Computer Science An Overview (7th Edition),
J. Glenn Brookshear
Addison-Wesley
ISBN 0-201-78130-1
www.aw.com/brookshear
Computer Science
an overview
EDITION 7
J. Glenn Brookshear
Instructor Web Site:
www.depaul.edu/~uverun
CSC255-702/703 - CTI/DePaul
2
CSC 255
Lecture 1
Origin and Evolution of Computer Science
(Chapter 0 - Introduction from Brookshear)
Modified by Ufuk Verun from
Jim Janossy © 2002 Jim Janossy, DePaul University CTI - Chicago
CSC255-702/703 - CTI/DePaul
3
Resources
This PowerPoint presentation is available for
download at
www.depaul.edu/~uverun/classes/CSC255/fal
l2002/slides/Lecture_01.ppt
Textbook: Chapter 0
Print slides at 6 slides/page, avoid waste!
Exams are based on slide content, homework
and assigned readings
CSC255-702/703 - CTI/DePaul
4
Scope of CSC 255
Before you can add to a science, you
need to understand the basics of what
has already been developed:



Basic information storage in digital form
Algorithm evolution and representation
Basic data structures
CSC255-702/703 - CTI/DePaul
5
Computer Science is More
than “Point-and-Click”
“We cannot become knowledgeable in
Computer Science by studying only a
few topics as isolated subjects or
merely by learning how to use the
computing tools of today.“
CSC255-702/703 - CTI/DePaul
6
“Point-and-Click” = GUI
GUI = “Graphical User Interface”
Human / computer interface is how
people interact with computers
Windows is a GUI
CTI’s Human/Computer Interface (HCI)
major deals heavily with this
CSC255-702/703 - CTI/DePaul
7
Computer Science Basics…
It’s not enough to just learn how to use
Windows or browse the web (that’s all
fun, but that’s not Computer Science!)
Computer Science involves all the work
needed to make things happen with a
computer: developing algorithms, and
how to make machines perform them.
CSC255-702/703 - CTI/DePaul
8
Definitions
A set of steps that defines how a task is
performed is an algorithm
A machine-compatible representation of
an algorithm is called a program
Programs are software
Machinery is hardware
CSC255-702/703 - CTI/DePaul
9
Algorithm = Recipe!
“Once an algorithm for performing a
task has been found, the performance
of that task no longer requires an
understanding of the principles on
which the algorithm is based. Instead,
the performance of the task is reduced
to merely following directions.”
CSC255-702/703 - CTI/DePaul
10
Algorithm Representations
Programming languages communicate
algorithms to a computing machine
Languages are based on paradigms
(how the universe is viewed)
Systems are made of many programs
CSC255-702/703 - CTI/DePaul
11
Bit = Binary Digit
The basic digital resource
Only two states (on/off, high/low, 1/0)
Electronic / magnetic / optical mediums
How is information mapped to bits?
What kind of information? Text,
quantities, pictures, …
CSC255-702/703 - CTI/DePaul
12
Basic Kinds of Information
Text - characters like “Hello there”
Quantities - numbers that can be
involved in computations:


Integers (whole numbers) like 123
Numbers with fractional parts like 56.78
Images - pictures, still or moving
Sounds - digitized audio
CSC255-702/703 - CTI/DePaul
13
Why Digital Storage?
Easier, less expensive to capture
Readily stored using magnetic or optical
media, and easily transmitted
Fast to search, and combine with others
Very readily manipulated: updated,
added to, modified
Digital circuitry is mass produced and
inexpensive, more resistant to errors
CSC255-702/703 - CTI/DePaul
14
Data Storage
Bits . . . . . . . . =
Bytes
Columns (“fields”)
Rows (“records”)
Tables (“files”)
CSC255-702/703 - CTI/DePaul
15
Computing Machines of 1600’s
Pascal (1623-1662)
Gottfrield Wilhelm Leibneiz (1646-1716)
Simple adding calculators
Gears and mechanical devices
“Output” read from wheels with
numbers
Very slow
CSC255-702/703 - CTI/DePaul
16
Computing Machines of 1800’s
Charles Babbage (1792-1871)
Joseph Jacquard (1752-1834)
Herman Hollerith (1860-1929)
Programs and/or data on cards
Mechanical or electrical
Still slow
CSC255-702/703 - CTI/DePaul
17
Computing Machines of 1900’s
Atanasoff / Berry, Iowa State, (1938)
George Stibitz, Bell Labs, (1940)
Howard Aiken, Harvard Mark I (1944)
Eckert / Mauchly, ENIAC, 1946, first
commercial computer, UNIVAC, 1950
Parts adapted from radio technology
Thousands of calculations per second
CSC255-702/703 - CTI/DePaul
18
Progression of Electronic
Technology for Computing
1940-50’s: vacuum tubes
1960’s: individual transistors
1970’s: integrated circuits
1980’s and 90’s: denser and denser
integrated circuits
2000+: millions of transistors on a chip,
whole CPU on a chip
CSC255-702/703 - CTI/DePaul
19
Early Days of Computers
CSC255-702/703 - CTI/DePaul
20
Babbage’s Difference Engine Circa 1834
CSC255-702/703 - CTI/DePaul
21
Vacuum Tubes of 1940’s…
CSC255-702/703 - CTI/DePaul
22
ENIAC - 1946
CSC255-702/703 - CTI/DePaul
23
ENIAC - 1946
CSC255-702/703 - CTI/DePaul
24
ENIAC Programming
CSC255-702/703 - CTI/DePaul
25
ENIAC on a Chip - 1997
¼
inch
CSC255-702/703 - CTI/DePaul
26
Abstraction
See a pattern
Eliminate trivial details (generalize)
Solution becomes a new component
Encapsulate the solution
Whole components can interact
Construct higher-level solutions as
combinations of components
CSC255-702/703 - CTI/DePaul
27
Ethical Concerns
Computers “amplify” the scope and
impact of actions


Privacy - not just snooping, but amassing
of data otherwise not connected
Malicious hacking/intrusion via internet
Software ownership and copyright
CSC255-702/703 - CTI/DePaul
28