chapter 0 introduction. 2 chapter 0: introduction 0.1 the role of algorithms 0.2 the origins of...

30
Chapter 0 Introduction

Post on 22-Dec-2015

229 views

Category:

Documents


2 download

TRANSCRIPT

Chapter 0

Introduction

2

Chapter 0: Introduction 0.1 The Role of Algorithms 0.2 The Origins of Computing

Machines 0.3 The Science of Algorithms 0.4 Abstraction 0.5 An Outline of Our Study 0.6 Social Repercussions

3

Chapter 0: Introduction Computer science is the discipline that

seeks to build a scientific foundation for such topics as computer design, computer programming, information processing …etc.

Computer science provides the underpinnings for today’s computer applications as well as the foundations for tomorrow’s applications.

4

Algorithms: Definitions Algorithm = a set of steps that defines

how a task is performed. Program = a representation of an

algorithm. Programming = the process of

developing a program. Software = programs + algorithms. Hardware = machinery: whatever isn’t

software.

5

History of Algorithms The study of algorithms was originally a

subject in mathematics. Algorithms were studied before computers

existed. Early examples of algorithms

Long division algorithm Euclidean Algorithm

Gödel's Incompleteness Theorem: some problems cannot be solved by algorithms

6

Figure 0.2 The Euclidean algorithm for finding the greatest common divisor of two positive integers

7

Origins of Computing Machines

Early computing devices Abacus: positions of beads represent

numbers Gear-based machines (1600s-1800s)

Positions of gears represent numbers Blaise Pascal, Wilhelm Leibniz, Charles

Babbage

8

Figure 0.3 An Abacus

9

Origins of Computing Machines

Early data storage: punched cards First used in Jacquard Loom (1801) to

store patterns for weaving cloth Stored programs in Babbage’s

Analytical Engine Popular through the 1970’s

10

Early computers Based on mechanical relays

1940: Stibitz at Bell Laboratories 1944: Mark I: Howard Aiken and IBM at

Harvard Based on vacuum tubes

1937-1941: Atanasoff-Berry at Iowa State 1940s: Colossus: secret German code-

breaker 1940s: ENIAC: Mauchly & Eckert at U. of

Penn.

11

Personal computers First used by hobbyists 1981: IBM introduces the PC

Accepted by business Became the standard hardware design

for most desktop computers Most PCs use software from Microsoft

12

Figure 0.4 The Mark I computer

13

電腦的演進 1642 巴斯卡加法器 1804 法國織布工人查卡得發明能用不同打孔卡片自動來

編織圖案的織布機 1822 英國劍橋大學的巴貝奇發明差分機,可做簡單的四

則運算 1833 巴貝奇建造分析機失敗,但分析機構想已具有今日

電腦的基本結構,巴貝奇因而有「電腦之父」的尊稱。 1886 美國何樂里設計出以打孔卡片來儲存資料的計算機

器 1906 美國費樂斯 (Forest) 發明了真空管

14

電腦之父—巴貝奇 (babbage)

15

巴貝奇的差分機

16

電腦的演進 1939 美國愛荷華州立大學製造出第一部電腦 ABC 1946 美國賓州大學和軍方合作製造出 ENIAC 電腦,

范紐曼提出內儲程式的觀念,被譽為「電子電腦之父」

1947 美國貝爾實驗室發明了電晶體 1949 英國劍橋大學完成第一部大型內儲程式電腦

EDSAC 1951 美國 Sperry Rand 公司生產 UNIVAC-1 ,第

一部大量製造的商業電腦

17

電腦的演進 (cont.) 1954 美國貝爾實驗室製出第一台以電晶體為

主要元件的電腦 (TRADIC) 1958 美國德州儀器公司發明了積體電路 (IC

Integrated Circuit 1964 美國國際商業機器公司 (IBM) 用 IC 為主

元件開發出 System360 電腦 1970 開始有電腦使用超大型積体電腦 (VLSI)

18

電腦的演進 (cont.) 1971 美國 Intel 公司發表第一個微處理機

4004 1977 美國 Apple 公司推出 APPLE II電腦:採

封閉性硬体系統架構。 1981 美國 IBM 公司推出個人電腦,稱為 IBM

PC :採開放性硬体系統架構,造成 IBM 相容型電腦的大量生產。

1993, Pentium

19

范紐曼 (Von Neumann)

20

真空管為元件的電腦

21

EDSAC –1949 劍橋大學

22

APPLE II

23

Computer Science The science of algorithms Draws from other subjects,

including Mathematics Engineering Psychology Business Administration

24

Central Questions of Computer Science Which problems can be solved by

algorithmic processes? How can discovery of algorithms be made

easier? How can techniques of representing and

communicating algorithms be improved? How can our knowledge of algorithms and

technology be applied to provide better machines?

How can characteristics of different algorithms be analyzed and compared?

25

Figure 0.5 The central role of algorithms in computer science

26

Abstraction: Definitions Abstraction = the distinction

between the external properties of an entity and the details of the entity’s internal composition.

Abstract tool = a component of a larger system whose internal composition we ignore.

27

Uses of abstraction Abstraction allows us to use things

we don’t fully understand. We all can use electrical devices,

food, etc. that we either do not understand or cannot produce.

Computer scientists can use algorithms implemented by others without understanding their details.

28

Outline of our study Design and construction of computing

machines Chapter 1: Data storage Chapter 2: Data manipulation

Chapter 3: Operating systems Chapter 4: Networks and the internet Chapter 5: Algorithms

29

Outline of our study (continued)

Chapter 6: Programming languages Chapter 7: Software engineering Data organization

Chapter 8: Data abstractions Chapter 9: Database systems

Chapter 10: Artificial intelligence Chapter 11: Theory of computation

30

Social Repercussions Computers enable new activities, raising

new questions: Law: software producer’s rights and liabilities Ethics: what newly enabled activities are

immoral? Government: which newly enabled activities

should be regulated? Society: how do computers affect our lives?

This book should prepare the reader to participate intelligently in debates of these issues.