View
229
Download
2
Tags:
Embed Size (px)
Citation preview
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
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
13
電腦的演進 1642 巴斯卡加法器 1804 法國織布工人查卡得發明能用不同打孔卡片自動來
編織圖案的織布機 1822 英國劍橋大學的巴貝奇發明差分機,可做簡單的四
則運算 1833 巴貝奇建造分析機失敗,但分析機構想已具有今日
電腦的基本結構,巴貝奇因而有「電腦之父」的尊稱。 1886 美國何樂里設計出以打孔卡片來儲存資料的計算機
器 1906 美國費樂斯 (Forest) 發明了真空管
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
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?
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.