what is a computercslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · an ordered set of...

19
WHAT IS A COMPUTER? Jo, Heeseung

Upload: others

Post on 24-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

WHAT IS A COMPUTER?

Jo, Heeseung

Page 2: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

2

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

Page 3: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

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)

3

Page 4: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

4

COMPUTERS

A computer can be viewed as a "machine" that mysteriously converts input into output

Image from http://shop.gessato.com

0 f(0) = 1

Page 5: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

5

EXAMPLE

What does this function?

<1, 4, 2, 3> <1, 2, 3, 4>

<2, 1, 3, 4> <1, 2, 3, 4>

Page 6: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

6

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)

i f(i)AlgorithmAf

Af(i):input i; add i to 1;output result;

Page 7: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

7

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

Page 8: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

WHAT IS COMPUTER SCIENCE?

Page 9: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

9

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

Page 10: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

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

Page 11: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

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

Page 12: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

12

WHAT IS COMPUTER SCIENCE?

The study of algorithms, including

Their formal and mathematical properties

Their hardware realizations

Their linguistic realizations

Their applications

Page 13: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

13

COMPLEXITY

Intel Xeon 7560 (8-core): 2.3B transistors

Page 14: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

14

ABSTRACTION

Removes or hides complex details, leaving only the information necessary to accomplish our goal

A key concept to tame the complexity!

Page 15: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

15

ABSTRACTION EVERYWHERE

Page 16: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

16

LEVELS OF ABSTRACTION

Page 17: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

17

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

Page 18: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

18

HOW TO BE A SUCCESSFUL COMPUTER SCIENTIST

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

Page 19: WHAT IS A COMPUTERcslab.cbnu.ac.kr/course/2019.2/sp/00.computerscience.pdf · An ordered set of unambiguous steps that produces a result and terminates in a finite time Derived from

19

HOW TO BE A SUCCESSFUL COMPUTER SCIENTIST

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