35
Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is a Computer?

What is a Computer? - AndroBenchcsl.skku.edu/uploads/ICE2010S11/1-computer.pdfWhat is a Computer? A computer is … a programmable machine that receives input, stores and manipulates

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Jin-Soo Kim ([email protected])Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

What is a Computer?

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

What is Computer Science?

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

History of Computing

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