計算機與程式設計初體驗
計算機簡介
講師:陳琨 (K. Chen)
kchen@csie.org
計算機科學大事紀
• 西元前3000年
– 算盤(abacus)已出現在亞洲,
– 有人說是巴比倫人發明的;也有人說是中國人 發明的
– 無論如何,亞洲人發明了算盤應無庸置疑
計算機科學大事紀
• 西元1642年
– 法國數學家布萊茲·帕斯卡(Blaise Pascal)發明 了機械式的加法器 Pascaline
https://www.youtube.com/watch?v=GdlMyXcmo5A
計算機科學大事紀
• 西元1801年
– 約瑟夫·瑪麗·雅卡爾 (Joseph-Marie Jacquard) 發明了雅卡爾織布機
– 第一部使用儲存器及程式設計概念的機器 – 以打孔卡片來控制織布機的編織流程
計算機科學大事紀
• 西元1822年
– 查爾斯·巴貝奇 (Charles Babbage) 開始設計差 分機(Difference Engine)
– 運作原理
• 就是一台多項式求值機
• 假設以「F(x)= x2+4」為例,差分機吐出來的結果,
就會是F(1)=5,F(2)=8,F(3)=13,F(4)=20…等,
直到系統停止為止。
計算機科學大事紀
• 西元1844年
– 薩繆爾·摩爾斯 (Samuel Morse) 從華盛頓傳了 一份電報到巴爾地摩
– 摩斯電碼的創立者
摩斯電碼
計算機科學大事紀
• 西元1912年
– 無線電廣播工程師學會(the Institute of Radio Engineers)成立
– 它於西元1963年和美國電機工程師學會(the American Institute Electrical Engineers)合併 成為聲譽卓著的國際電機電子工程師學會(the Institute of Electrical and Electronics
Engineers,簡稱為IEEE,唸成“EYE triple E”)
計算機科學大事紀
• 西元1937年
– 亞倫·圖靈 (Alan Turing) 圖靈機的發明人,現 在的電腦皆是圖靈機的一種。
– 著作「機器會思考嗎? (Can Machines Think?)」
Google紀念 Turing 100歲冥誕做的小遊戲
http://www.google.com/doodles/alan-turings-100th- birthday
Alan Turing 1912-1954
計算機科學大事紀
• 西元1939年
– 約翰·文森特·阿塔納索夫 (John V. Atanasoff) 和他的助理克利福德·貝瑞(Clifford Berry) 發明 了第一部可用電子訊號將資訊編碼的特殊用途 機器,稱為ABC (Atanasoff Berry Computer)
計算機科學大事紀
• 西元1944年
– 哈佛大學在IBM贊助下,完成了第一部電動機 械計算機,稱為馬克一號 (Mark I),長度51英 呎,高度8英呎
計算機科學大事紀
• 西元1945年
– 約翰·馮·諾伊曼 (John von Neumann) 介紹 了「儲存程式」(stored program)的概念,
今日的數位電腦基本上都是採用這個概念所 建構而成的。
George Dyson at the birth of the computer
計算機科學大事紀
• 西元1946年
– 賓州大學的約翰·莫齊利 (John. W. Mauchly) 和 J.·埃克特製造了第一部以真空管(vacuum
tube)為基礎元件的計算機,稱為
ENIAC
(Electronic Numerical Integrator and Computer)
真空管
https://www.youtube.com/watch?v=2X936BCiM5k
計算機科學大事紀
• 西元1947年
– 世上最早及最大的計算機教育及研究學會ACM
(the Association for Computing Machinery)
開始提供交換計算機領域相關資訊、想法及發 現的園地,今日它已是橫跨超越百國的重要學 術組織。
計算機科學大事紀
• 西元1948年
– 理查德·衛斯里·漢明 (Richard Hamming) 發明 了漢明碼(Hamming code),可找出傳輸資料的 錯誤並訂正之,此技巧被廣泛地應用在電腦及 電話系統
計算機科學大事紀
• 西元1952年
– 傑出女性資訊學家-葛麗絲·霍普 (Grace Murray Hopper) 設計了第一個編譯器 (compiler) : A-0
• 編譯器是用來將程式語言所寫的程式轉換成電腦可 執行的0與1數列。)
– 第一個高級商用電腦程式語言「
COBOL
」,被 譽為COBOL
之母– 「Debug」之母
計算機科學大事紀
• 西元1956年
– 威廉·肖克利 (William Bradford Shockley)、約 翰 · 巴 丁 (John Bardeen) 及 沃 爾 特 · 布 喇 頓 (Walter Houser Brattain) 榮獲諾貝爾物理獎,
諾貝爾委員會在讚辭中說:「獲獎是要表彰三 位學者在半導體的研究及發現電晶體的效應。」
瑪麗·居禮
聯合國難民署
萊納斯·鮑林
弗雷德里克·桑格
紅十字國際委員會 約翰·巴丁
獲得多項諾貝爾獎得主
電晶體
計算機科學大事紀
• 西元1957年
– 約翰·巴科斯 (John Backus) 和IBM的同事發展 了第一個 Fortran 語言的商用編譯器
計算機科學大事紀
• 西元1962年
– 史丹佛大學和普渡大學成立了全球最早的計算 機科學系 (computer science departments)
• 交通大學於西元1960年設立台灣最早的計算機研究 學程
• 台灣最早的計算機科學系是淡江大學於西元1969年 所設立的電子計算機科學學系
• 台灣最早命名為資訊工程系的則是台灣大學(1977) ; 交大的計工系也於1988年更名為資訊工程系
計算機科學大事紀
• 西元1963年
– 美國國家標準局制定了以7個位元(bit)編碼 的
ASCII
(American Standard Code forInformation Interchange),
ASCII
仍是目前非 常重要的電腦編碼標準計算機科學大事紀
• 西元1964年
– IBM推出了第一部以積體電路(IC,Integrated Circuit)為基礎元件的IBM 360型計算機
計算機科學大事紀
• 西元1964年
– 道格拉斯·恩格爾巴特 (Douglas Engelbart) 發 明了滑鼠 (mouse) ,它之所以暱稱為滑鼠,乃 是因為它的末端有著長長的尾巴,真的很像老 鼠。現在逐漸流行的無線滑鼠,也許該有另一 個有趣的暱稱,就叫它「小饅頭」或「米龜」
吧!
計算機科學大事紀
• 西元1965年
– Multics 作業系統。
• 西元1966年
– 有資訊領域諾貝爾獎之稱的「杜林獎」(Turing Award )開始頒發,每年頒發一次,獎金為美金十 萬元。
• 西元1968年
– 羅伯特·諾伊斯 (Robert Noyce)、安迪·葛洛夫
(Andrew Grove) 和高登·摩爾(Gordon Moore) 成立
了Intel,它是今日世界影響力最大的電腦微處理器
發明公司,Pentium、Celeron、Xeon及Itanium等
都是該公司一系列的產品,影響資訊科技至深。
計算機科學大事紀
• 西元1970年
– 丹尼斯·里奇 (Dennis Ritchie) 和肯·湯普遜
(Kenneth Thompson)設計了Unix作業系統(這 名稱和1965年耗費眾多人年完成的Multics互別 苗頭)。
• 西元1971年
– 尼克勞斯·維爾特 (Niklaus Wirth) 開發了Pascal程式語言
– 雷·湯姆林森 (Ray Tomlinson) 寄發了第一封的 email
第一代電腦到第四代電腦
• 真空管(Vacuum Tube)
• 電晶體 (Transistor)
• 積體電路 (IC, integrated circuit)
• 超大型積體電路
(VLSI, Very Large Scale Integrated circuit)
– 含1000個以上的邏輯閘的晶片組
第一代電腦到第四代電腦
Vacuum tubes (真空管)
transistor
(電晶體) IC (Integrated
Circuit; 積體電路) VLSI
Intel 4004 (1971)
Moore's Law ( 摩爾定律)
積體電路上可容納的電晶體數目,約每隔24個月便會增加一倍
計算機科學大事紀
• 西元1972年
– 丹尼斯·里奇 (Dennis Ritchie) 開發了C程式語 言
– C語言之父,UNIX之父
計算機科學大事紀
• 西元1975年
– 第一部個人電腦(PC,personal computer)
問世,稱為Altair 8800
– IBM做了第一部的雷射印表機
計算機科學大事紀
• 西元1976年
– 第一部超級電腦(supercomputer)誕生,稱為Cray-1 – IBM發展了第一部的噴墨印表機
– 賈伯斯設計了蘋果一號(Apple I)
• 西元1977年
– 賈伯斯和沃茲尼克成立了蘋果電腦公司(Apple
Computer),並推出了在當時最出眾的蘋果二號(Apple II,
圖1-11)
– 比爾·蓋茲和保羅·艾倫創設了微軟(Microsoft),這兩位 經常名列全美十大富豪,而比爾·蓋茲更蟬連多年的第一富 豪。
• 薄煎餅翻整問題 (
Pancake sorting)
計算機科學大事紀
• 西元1978年
– 羅納德·李維斯特 (Ron Rivest)、阿迪·薩莫爾 (Adi Shamir)及倫納德·阿德曼 (Leonard
Adelman)發明了著名的RSA公開金鑰加密法 – Intel也推出了第一個16位元的處理器8086及
8088,其中8088是IBM PC初期所採用的中央 處理器(Central Processing Unit,簡稱CPU)
RSA encryption --- 1978
Rivest Shamir Adleman
將一個由兩個大質數所乘出來的大數分解回來 e.g., 143 11 x 13
Challenge
Number Prize ($US) Challenge
Number Prize ($US) RSA-576 $10,000 RSA-896 $75,000
RSA-640 $20,000 RSA-1024 $100,000
RSA-704 $30,000 RSA-1536 $150,000
RSA-768 $50,000 RSA-2048 $200,000
RSA factorization challenges
US$10,000 –– RSA-576
• 188198812920607963838697239461650439 807163563379417382700763356422988859 715234665485319060606504743045317388 011303396716199692321205734031879550 656996221305168759307650257059
• Solved on Dec. 3, 2003
39807508642406493739712550055038649119906436 2342526708406385189575946388957261768583317 47277214610743530253622307197304822463291469 5302097116459852171130520711256363590397527
US$200,000 –– RSA-2048
2519590847565789349402718324004839857142928212 6204032027777137836043662020707595556264018525 8807844069182906412495150821892985591491761845 0280848912007284499268739280728777673597141834 7270261896375014971824691165077613379859095700 0973304597488084284017974291006424586918171951 1874612151517265463228221686998754918242243363 7259085141865462043576798423387184774447920739 9342365848238242811981638150106748104516603773 0605620161967625613384414360383390441495263443 2190114657544454178424020924616515723350778707 7498171257724679629263863563732899121548314381 6789988504044536402352738195137863656439121201 0397122822120720357
你/妳缺錢嗎?
Good news:
www.rsasecurity.com/rsalabs/challenges/facto ring/
Bad news: “This challenge is no longer active!”
計算機科學大事紀
• 西元1982年
– 時代(Time)雜誌以電腦 做為年度風雲人物
• 西元1984年
– 新力(Sony)和飛利浦
(Philips)推出了CD- ROM,使數位資料的儲存 方式又往前邁進了一大步
• 西元1989年
– Tim Berners-Lee提出全 球資訊網(WWW,
World Wide Web)的構 想
– Intel推出了80486(內含 一百多萬個電晶體),簡 稱486
計算機科學大事紀
• 西元1990年
– WWW正式推出,沒想到才幾年光景,WWW 就風行全球,使得整的數位世界改觀,並改變 了現代人的生活型態
計算機科學大事紀
• Slashing the Slashes – Time, Oct. 15, 2009
If I could change one thing about the Internet now, I would slash the slashes, which are
completely unnecessary.
// 削去斜線
計算機科學大事紀
• 西元1991年
– 芬蘭赫爾辛基大學的學生林納斯·托瓦茲(Linus
Torvalds) (五年級後段班的學生),基於Unix的開 放原始碼,創作了個人電腦作業系統Linux(Linus + Unix ),時間已證明Linux的確是Windows之外,
一個可行的替代選擇
• 西元1994年
– 第一個成功的商業化瀏覽器Netscape(網景)推 出
–
楊致遠和大衛·費羅(David Filo)適時推出Yahoo!搜尋引擎
計算機科學大事紀
• 西元1995年
– 詹姆斯·高斯林(James Gosling) 領軍的團隊推出了跨平台的
JAVA程式語言
• 西元1997年
– IBM的深藍電腦擊敗了稱霸西洋 棋壇十四年的棋王加里·卡斯帕 羅夫(Garry Kasparov)
• 電腦有智慧嗎?
• 西元1998年
– 搜尋引擎Google推出,開創者 是史丹佛博士班的休學學生賴 利·佩吉 (Larry Page) 和謝爾 蓋·布林 (Sergey Brin)
計算機科學大事紀
• 西元2001年
– Windows XP問世
• Home Edition及Professional兩種版本
• XP乃“eXPerience”的縮寫,體驗之義
– 數位的體驗、通訊的體驗、無線的體驗
– 吉米·威爾斯(Jimmy Wales)創建了一部免費的 網路百科全書,稱為「維基百科」 (Wikipedia)
• 西元2003年
– Intel Centrino行動運算技術平台
• 無線網路
• 省電技術
• 較小體積
計算機科學大事紀
• 西元2004年
– Google上市,造成華爾街股市大轟動
• 西元2005年
– Skype流行 – 100美元電腦 – Google Earth
• 西元2006年
– 「Google台灣工程研究所」
– 大學入學測驗出現火星文
• 西元2007年
– Vista (Microsoft) – iPhone (Apple) – Android (Google)
計算機科學大事紀
計算機科學大事紀
• 西元2008年
– Google進軍行動電話市場,推出GPhone,和 Apple的iPhone互別苗頭
計算機科學大事紀
• 西元2009年
– Windows 7
– 光纖通訊之父高錕獲頒諾貝爾物理學獎
計算機科學大事紀
• 西元2010
– iPad
• 手機電腦化
• 電腦手機化
• 雲端計算 (Cloud Computing)
– 透過網路計算與 儲存
– “Computation may someday be organized as a public utility”
-- John
McCarthy in 1960.