What is a Computer? - AndroBenchcsl.skku.edu/uploads/ICE2010S11/1-computer.pdfWhat is a Computer? A...
Transcript of What is a Computer? - AndroBenchcsl.skku.edu/uploads/ICE2010S11/1-computer.pdfWhat is a Computer? A...
Jin-Soo Kim ([email protected])Computer Systems Laboratory
Sungkyunkwan Universityhttp://csl.skku.edu
What is a Computer?
What is a Computer?
▪ A computer is …
a programmable machine that receives input, stores and manipulates data, and provides output in a useful format.
-- From Wikipedia.org
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 3
Functions
▪ A function is …a set of input-output pairs such that no two of them have the same first element.
▪ f = {<0,1>, <1,2>, <2,3>, …}or f(0) = 1, f(1) = 2, f(2) = 3, …or f(i) = i + 1 (by formula)
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 4
Computers
▪ A computer can be viewed as a “machine” that mysteriously converts input into output.
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 5
Image from http://shop.gessato.com
0 f(0) = 1
Example: Sorting
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 6
<1, 4, 2, 3> <1, 2, 3, 4>
<2, 1, 3, 4> <1, 2, 3, 4>
Computable Functions
▪ A function f is computable if there is an “algorithm” that computes f.• i.e., there is an algorithm Af such that,
for all input i, Af(i) = f(i)
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 7
i f(i)AlgorithmAf
Af(i):input i;add i to 1;output result;
Algorithm
▪ An ordered set of unambiguous steps that produces a result and terminates in a finite time.
Derived from the last name of “Muhammad ibn Musa Al-Khowarizmi”, a Persian mathematician
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 8
Misconception I
▪ Computer science is the study of computers.
“Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them and what we find out when we do.”
-- Michael R. Fellows and Ian Parberry
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 10
Misconception II▪ Computer science is the study of how to
write computer programs.
• Programming is extremely important to study new ideas and build and test new solutions.
• Like the computer itself, it is a tool.
• Computer science is not about programming, but about problem solving.
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 11
Misconception III▪ Computer science is the study of the uses
and applications of computers and software.
• Learning to use a software package is no more a part of computer science than driver’s education is a branch of automotive engineering.
• The computer scientist is responsible for specifying, designing, building, and testing software packages as well as the computer systems on which they run.
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 12
What is Computer Science?
▪ The study of algorithms, including
1. Their formal and mathematical properties2. Their hardware realizations3. Their linguistic realizations4. Their applications
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 13
Complexity▪ Intel Xeon 7560 (8-core): 2.3B transistors
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 14
Abstraction
▪ Removes or hides complex details, leaving only the information necessary to accomplish our goal
▪ A key concept to tame the complexity!
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 15
Abstraction Everywhere
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 16
Levels of Abstraction
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 17
Operating System
Architecture
Programming languages & compilers
Data structures & algorithms
Application programs
Microarchitecture
Hardware Description Languages
Digital logic
VLSI layout
Processing, Fabrication
Chemistry, Physics
Computer Science Is
▪ Science• Discover truth by scientific methods
▪ Engineering• Achieve a solution that works for a particular problem• Develop “good enough” heuristics• Performance/cost
▪ Art• Elegance, beauty, and simplicity• Make complex ideas more comprehensible
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 18
How To Be A Successful Computer Scientist (1)
▪ A passion for finding elegant solutions
▪ An ability to use mathematical analysis and logical rigor to evaluate such solutions
▪ Creativity in modeling complex problems through the use of abstractions
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 19
Source: http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf
How To Be A Successful Computer Scientist (2)
▪ Attention to details and hidden assumptions
▪ An ability to recognize variants of the same problem in different settings
▪ Being able to retarget known efficient solutions to problems in new settings
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 20
Source: http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf
Early History (0)▪ Stonehenge
• 2500BC, England• Calendar? Astrological calculator?
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 22
Early History (1)
▪ Abacus• 16th century BC• An early device for recording
numeric values and performing basic arithmetic
▪ “Pascaline” or Pascal’s Calculator• 1642 by Blaise Pascal• Mechanical device to add,
subtract, divide & multiply
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 23
Early History (2)▪ Jacquard Loom
• 1801 by Joseph Jacquard• Use of punched cards to control
a sequence of operations
▪ Analytical Engine• 1837 by Charles Babbage• A design for a mechanical
general-purpose computer• Too complex to be built
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 24
Early History (3)▪ Ada Lovelace (1815-1852)
• Worked on the analytical engine• The first programmer
▪ Alan Turing (1912-1954)• Invented “Turing machine”,
the foundation of computing • Breaking German ciphers in WWII• Turing test• “Turing Award”
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 25
Early History (4)▪ ENIAC (1946)
• Electronic Numerical Integrator And Computer• The first general-purpose electronic computer• Programmed by plugboard and switches
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 26
1st Gen. (1951-1959): HW▪ 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
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 27
2nd Gen. (1959-1965): HW▪ 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
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 28
3rd Gen. (1965-1971): HW
▪ Integrated Circuits (ICs)• Replaced circuit boards, smaller, cheaper,
faster, more reliable
▪ Transistors• Now used for memory construction
▪ Terminal• An input/output device with a keyboard and
screen
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 29
4th Gen. (1971-?): HW▪ Large-scale Integration (VLSIs)
• Great advances in chip technology
▪ PCs and Workstations• New companies: Apple, Sun, Dell, …
▪ Laptops• Everyone has his/her own portable computer
▪ Parallel computing▪ Networking (Internet)
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 30
1st Gen. (1951-1959): SW
▪ Machine Language• Computer programs written in binary
▪ Assembly Languages and Translators• Programs written using mnemonics, which
were translated into machine language
▪ Application programmers (in Assembly) vs. Systems programmers
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 31
2nd Gen. (1959-1965): SW▪ High-level Languages
• Fortran, COBOL, Lisp, …
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 32
3rd Gen. (1965-1971): SW▪ Operating systems▪ Programming for general public
• C
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 33
4th Gen. (1971-1989): SW
▪ Structured programming• Pascal• C++
▪ New application software for users• Spreadsheets• Word processors• Database Management Systems (DBMSes), …
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 34
5th Gen. (1990~Present)▪ Operating systems with GUIs
• Microsoft Windows
▪ Object-oriented design/programming• Based on a hierarchy of data objects • Java
▪ World Wide Web▪ Mobile “apps”▪ New users with no computer knowledge
ICE2010: Introduction to Computer Engineering (Spring 2011) – Jin-Soo Kim ([email protected]) 35