為什麼把「計算機科學(Computer Science)」稱為「科學(Science)」,而不是「工程(Engineering)」?

在一節「電路原理」的課程里,老師在講到「Electric Engineering」時提到一個問題,即為什麼研究計算機領域的學科叫做「Science」,而不是「Engineering」?


實際上 Computer Engineering (計算機工程) 做為一門單獨的學科也是存在。高校的課程設置里 Computer Science 和 Computer Engineering 側重點不同。CS 側重計算原理、演算法等偏理論的,而 CE 側重硬體、電路等偏實用的。此外還有強調計算方法、數值計算等的 Computing Science (計算科學)和強調軟體工程、項目管理的 Software Engineering (軟體工程)。


  • RIO那個回答很好很全面。
  • 這裡主要是舉例說明CS和CE(EE)兩專業的差異。
  • 此文術語縮寫較多,非內行理解可能有難度。不會查英漢詞典的理解也有難度。
  • 反對請不懂別亂點,贊同隨意。

  • 1. From the occupation"s point of view:
  • 1.1. 學計算機科學/CS的人都去了(微軟IBM,谷歌百度,Facebook/Twitter)等等軟體開發公司。
  • 如圖:Paradise of CS - Facebook office
  • 1.2. 學CE or EE 的都去了英特爾AMD,蘋果黑莓,思科華為等硬體設計生產企業。

  • 如圖:The Hall of EE - MIT EE lab
  • 注意看圖中的示波器,晶元等等。

  • 2. From the deliverables" point of view:

  • 2.1. CS - all sorts of computing:

  • 2.2. EE - All sorts of chips:

  • 3. From a normal() outsider(黑).
  • 計算機科學的人最多學個數字電路神馬的,但也就那麼一兩門。整天拿個鍵盤不知道敲啥玩意兒的。
  • 而EE的夥計那可不得了,從模電數電學到單片機編譯原理,然後大小晶元做了一堆。


這個問題我可以思考過,因為上學期遇到了一個麻煩,就是之前我們學校的CS屬於art and science department裡面的,今年扔到了engineering裡面之後所有的ta都被弄暈了。

但其實真正對computer science這個命名產生質疑的不是science這個詞,是computer。關於計算機科學最經典的一句話是Dijkstra說的,叫做:「Computer Science is no more about computers than astronomy is about telescopes.」在很多國家裡面,計算機科學並不叫做這個名字,命名大多偏向兩個辭彙,「信息」和「數據」,而迴避了計算機這個辭彙。說到底程序的思想就是處理信息和數據的,和計算機的關係並沒有想像中的那麼大。在這裡面,計算機是一個輔助工具,並不是思路和思想的主題。因為計算機科學的獨特學科安排,一度別人問我學什麼的我都是說我是學數學的。

所以一門純粹的理論學科被叫做數學,應該也沒有問題。


我們學校的計算機學院分成了computer science 和 computer engineering。science 會比較偏向於軟體,而engineering會比較偏向於硬體。

也正如@采銅 所說,在《黑客與畫家》一書當中,作者提到,「Computer Science」這個劃分是不恰當的,因為在它的名義下,數學家,計算機博物學家,和黑客,不得不在呆在一起。


正好手邊有一本《計算機科學概論》(Brookshear那本),摘抄一段文字:

計算機科學這門學科,是要為計算機設計、計算機程序設計、信息處理、問題的演算法解決方案和演算法過程本身等主題建立科學的基礎。計算機科學既是當今計算機應用的支柱,又是今後計算基礎設施的基礎。

而科學的含義:http://zh.wikipedia.org/wiki/%E7%A7%91%E5%AD%A6

1、致力於揭示自然真象,而對自然作理由充分的觀察或研究。這一觀察,通常指可通過必要的方法進行的,或能通過科學方法——一套用以評價經驗知識的程序而進行的。

2、通過這樣的研究而獲得的有組織體系的知識。

可見,計算機科學是滿足這樣過程的,對演算法、對軟體工程、對人工智慧、等等這些理論的研究與理論形成,都屬於科學。雖然,我們在日常中對計算機的直觀感受是來自應用,難免會感覺這應該是Engineering而非Science,可這個領域確實很大,但我們日常接觸的東西不過是其中很小的一部分。

繼續摘抄:

數據存儲;數據操控;操作系統;組網與網際網路;演算法;程序設計語言;軟體工程;數據抽象;資料庫系統;計算機圖形;人工智慧;計算理論。

這是開頭提到那本書的各個章節,很多很雜,有種說法「計算機科學是人類科學研究的集大成者也是各個領域的重要交集。」

同樣,它給人類社會帶來的變化,總所周知吧。

所以,這樣一個領域不能算作科學?還能算作啥呢。

當然,「科學(原句是「物理」這裡改做「科學」也是是通的)的盡頭是數學,數學的盡頭是哲學,哲學的盡頭是神學。」


我們學校分CS和CE,都屬於CSE的Department,而且都在College of Engineering


「因為有了『計算理論』,從此計算機不僅僅只是一門工程了,而是變為科學了。」——我們「計算理論」老師如是說。


我認為是專業設置的不合理。目前計算機科學下屬分支太多,很大一部分根本稱不上是科學。應該把系統設計,軟體開發,網路,分散式,資料庫等等分支單獨拿出來成立一個學科,那計算就科學就名副其實了。


俺們學校CS 和 CE是分開的,EE和CE是一個系. CS是單獨一個系


另外,其實也有EECS(Electrical Engineering and Computer Science)或者也有CSE(把CS和CE)和在一起的系。出於交叉學科的發展和創新。


我們學校也是把CS和CE分開,簡單來說,CS以後做軟體,CE以後做硬體。


我們學校是分為CS和SE(Software Engineering)的

我們這些Cser的人讀的東西都很泛 編程語言學 電路邏輯什麼的也學 但是側重點感覺還是偏向硬體方面 所以我覺得Computer Science更能體現出這個專業所具有的特點吧 軟硬結合 科學發展 而不單單只是象SE那樣開發軟體 測試軟體 和 資料庫研究而已


推薦閱讀:

信息的運動遵不遵循牛頓定律?
為什麼國外實驗室的氣場高大上?
把一隻從未見過大海的鳥空降在大海,那麼這隻鳥能自己飛回大陸嗎?
神經科學相關領域用於共享或討論的平台或工具有哪些?
氫可以看成氣態的鹼金屬嗎?

TAG:學術 | 工程學 | 計算機科學 | 科學 |