資工系根本上的矛盾

接下來打算寫一系列討論交大資工問題的文章。這是第一篇,從「資工」和「大學」在臺灣根本上的矛盾談起。未來幾篇會談到系上同學和教授的風氣、各種課程的情形等等。

大學定位的矛盾

美國的大學定位上很清楚,就是要鑽研高階的知識並進行創新的研究。如果重視的是實際打造東西,那你根本不該來念大學。如果以上這兩點不是你想做的,大可直接去工作或是去各種職業訓練班訓練。社會上明顯將大學生視為高階專業人才,所以要是一個大學生去應徵咖啡店店員,會被視為不尋常的事情。

在臺灣,不管想做什麼,社會風氣、家長思想幾乎沒辦法接受「不上大學」這件事情,所以不管是想賺大錢還是研究數論,所有人通通進了大學。對於成績好的學生尤其是這樣,不上大學往往會被視為一種浪費(「成績這麼好不上大學繼續學習太可惜了」),就算他想做的只是當畫家或是寫 app。

在這個情況下,大學教授們還能堅持只鑽研「高階知識」嗎而不去做一部分職業訓練所所做的事情嗎?(這是開放的問題,兩種答案在我看來都於理有據)

這是正統大學的定位在臺灣所遇到的矛盾。

究竟臺灣的大學是否該為了因應社會現狀提供一些職業訓練所的功能?

我傾向覺得是(因為這樣對我個人的生涯有利)。但若有人說:「不,大學應該堅持它的定位,因為有問題的是社會風氣和家長思想」這我也無法反駁。

「資工」意義上的矛盾

歐美大學對應臺灣所謂的資工系的通常是 Department of Computer Science ,這樣的科系裡面有些會開 Software Engineering 的 programme 。所以很明顯是以 Computer Science 為主,Software Engineering 為輔。

Computer Science 是什麼?它是一門科學,關於計算機的科學,所以中文精確的翻譯是「計算機科學」,訓練出來的人叫做「科學家」。譬如說今天有個演算法,我想辦法分析它的時間複雜度,或是證明這個演算法可以解決某個我所定義的問題,這些問題通常會被歸類到 CS 的範疇。

Software Engineering 是什麼?它是一種關於軟體的工程的知識,所以中文譯作「軟體工程」,訓練出來的是「工程師」。工程的範疇著重在各種限制下解決實際的問題,必須要考慮到現實的需求(預算、人力、空間、時間限制等等)。

再來看看「資工」這詞,它是「資訊工程」的縮寫,英文作 Information Engineering ,至於資訊工程精確上代表什麼意義,根據維基百科,它是一個隸屬於軟體工程的範疇,是設計及開發「資訊系統」的方法。資訊系統看來是一種抽象的分類,用來「處理」「資訊」的「系統」就可以叫做資訊系統,至於要怎麼處理、是什麼樣的資訊這我就不是很清楚,可以去看維基百科

我把 Information Engineering 和 Software Engineering 視為比較接近的領域(根據維基百科 IE 屬於 SE ),因為兩者都是工程,比起 Computer Science 是一種科學有較大的差距。

看看臺灣一些大學資工系的名字:

  • 交大 資訊工程學系 Department of Computer Science
  • 清大 資訊工程學系 Department of Computer Science
  • 臺大 資訊工程學系 Department of Computer Science & Information Engineering
  • 中央 資訊工程學系 Department of Computer Science & Information Engineering

交大和清大資工的中英文名明顯不符合,英文名說是科學,中文名又說是工程,而且還是比較窄的「資訊工程」而不是「軟體工程」令我覺得很奇怪。臺大和中央的中文名有描述 Information Engineering ,但卻未描述 Computer Science 。

就我所知這四個系上的課程仍是以計算機科學為主,那為什麼叫做資訊工程學系?大概是為了招生上的優勢,也方便家長、新生和社會的想像,社會上大家可能已經對於「資訊工程」在做什麼有某種程度的想像(「大概就是和電腦相關吧?」),若是真的改叫計算機科學系大家可能會很納悶這到底和資訊工程有何不同,系上還要多花時間說明並且試圖說服家長計算機科學比資訊工程更有前途(或只是一樣有前途),若改名無法提升這個科系對於家長和學生的吸引力那很明顯地這些系其實沒有什麼動機去改名。

另外一扯,交大和清大資工系課程裡面邏輯設計、嵌入式等(那些關於電腦底層計算硬體的設計)的課程甚至都比軟體工程還要多啊,不過這是另一個問題了。

事實上要說服家長「計算機科學」和「資訊工程」一樣有前途,可能還會遇到一些阻礙。家長很常見的論調是「科學家比工程師難餵飽自己」,這樣的論調某種程度上是合理的,因為工程師解決的是現實世界中的問題,科學家研究出的理論或是新技術舉例實際應用比較遠,自然比較難以吸引資金的投入。

所以這些偽資訊工程系不會為了要「名符其實」就改名叫「計算機科學系」。

據我的觀察,社會上對於「資訊工程」的想像其實比較接近「軟體工程」,因為大家常會依照某某科系出來之後去做的工作內容去想像那個領域本身,但是資訊工程對於這些科系實際上是錯誤的描述啊。

既然社會上偏好「資訊工程」勝於「計算機科學」,為什麼這些系又要用資訊工程的名字把學生騙進來然後教他們很多計算機科學和一點點軟體工程呢?為了騙成績好的學生進來吧,我也不知道。

對於我提出系上為什麼軟體工程的課程這麼少的意見時,一些教授說:「我們系叫 Computer Science ,所以課程當然是以 CS 為主。」我那時忘了問他們,那「資訊工程」這個中文名字又該如何解釋呢?

總之,我很討厭這種名不符實的東西,不過對於科系來說,取個吸引人的名字比起實際描述的名字更為重要吧,呵呵。

最後重申一次我的重點:

  1. 不管是該上或不該上大學、想上或不想上大學的人全部都進了大學,這是個問題
  2. 資訊工程學系這名字真的很奇怪