2019年2月11日 星期一

劉邦鋒 (台大資訊系教授)


採訪人:柯建宇、柯柏丞、黃柏瑋

1. 求學經歷
2. 回校(任教、研究)之原因
3. 擔任教授期間 學生的變化
4. 簡述專業領域(平行程式設計)
5. 批改娘的誕生及經歷
6. 對資工環境的看法
7. 給學生的建議
8. 書法的影響

Q1:可以請教授分享您的求學經歷嗎?
A1:我是台大資訊系第五屆畢業的,民國70年進到這個學系。那時候高中生對於資訊系真的完全不了解,因為當時電腦並不普及,我們根本不知道電腦是甚麼東西──至少我不知道電腦在幹甚麼,就考進這個系,跟大部分人一樣把這個系念完了。因為覺得還蠻有興趣的,所以當完兵之後,我就出國繼續念博士學位,博士念完之後便回台灣。大致上就是這樣,沒有甚麼特殊的事情。大約在民國七十幾年的時候,那時候的人大部分都是這樣,出國比率很高,而國內的博士班並沒有這麼普遍,所以想唸博士班的人,像是我的同學,絕大部分都選擇出國,出國風氣非常非常的盛。

Q2:為甚麼會選擇當教授而不是進入業界?
A2:其實我畢業之後,在美國業界待過一陣子,但我是公費生,一定要回到台灣服務,因此曾經在中研院待過一陣子,當了postdoc(中研院博士後研究學者),之後就到中正大學去教了幾年,後來就回到台北。
至於為甚麼沒有去業界?我覺得,學界的好處,是你可以做你自己想要做的事情,業界有很多老闆,告訴你下一個、明年度的product是甚麼、要怎麼做……都會有人跟你講;學界就沒有,基本上,你可以做很多你想要的事情,只要能夠符合一些標準。學界比較自由,可以做很多我想做的事情,很多實驗、對於人生做很多不同的實驗,我覺得蠻有趣的;業界的話,就比較被框架限制住了,比如說去做那家公司的產品,而不能做其他的事情,大概就是這樣。我是比較喜歡自由的人,業界對我的吸引力並不怎麼大,學界對我比較有吸引力。

Q3:請問教授,擔任教授的期間,學生以前到現在有甚麼變化?譬如教授在這學年的計算機程式課程,新增了需練習考古題至60分,才能夠參與當周小考的限制。
A3:這個你們年輕人一定不喜歡聽的啦,老先生都會跟你們講說:「現在的年輕人怎麼會越來越差?」不過我坦白講,如果你去翻過去十年來,計算機程式課程的考題難度,你會發現是一直在下降的,若去考十年前的題目,一定會了解十年前和現在差距到甚麼樣的程度。
我是認為你們不喜歡聽,但我還是可以講:我覺得學生越來越依賴,從我的觀點來看,學生越來越有依賴的心,希望老師在一門課裡頭,能夠把所有的東西都準備好,放在一個地方,簡單來說就是「餵食系」,你只要「嘴巴張大」,就懂了。世界上沒有這種事情,很多時候,老師只能告訴你甚麼事情比較「重要」,甚麼事情在「哪裡」。以前的學生,可能跟他講:這邊很重要,回去要看一下,google一下,那就可以;現在的話,就算我們幫他準備很多東西,他還是說:不夠清楚、不夠明白,或者他沒有時間把它弄清楚,這點我是覺得蠻要命的,坦白說,在Computer Science這個領域,不太可能有人把東西都準備好給你,人家最多只能告訴你說:甚麼事情很重要,而「自學的能力」,就是非常非常重要的。現在的人──至少大一的同學,自學的能力是越來越差的。

Q4:可以請問一下教授,「批改娘」(judgegirl)的誕生跟她的經歷是怎麼樣嗎?
A4:這個故事蠻長的。我是2001年來到台大的,剛來的時候,還沒有教計算機程式,是到第二、三年才開始教。那時候教的時候,考試的方式大概就是跟一般課程一樣的方法,比如說要寫一個程式,你就在考卷上「寫」一個程式給老師看,請老師確認對不對,或者是老師寫一個程式後,印在紙上,再給input之後問學生output會是甚麼樣,這種很典型的紙筆測驗。那我個人覺得,這樣的方式大概也沒什麼用,學生就算考過了,也不會寫程式,因為很多程式需要真正跑了,才知道它的問題在哪裡,所以我在約2003年時,大概花了三天的時間,去看MySQLdatabasePerl Script,用Perl Script寫一個Combination script(?!) ,然後用PHP寫它的介面。
前面我提到自學很重要,坦白說,這些東西基本上不是我學過的東西,我就到書店裡去買書,一邊翻書一邊寫,大概花三天的時間把它寫完,之後便開始在用。因為前面幾屆的學生會抱怨說,用紙筆寫實在是很麻煩的事情,我一直在想說這件事情怎麼自動化,當然,2003年的時候線上批改系統很少人用,我就寫了一個。後來的話,之後的助教就一直在改一直在改,才變成現在這個樣子,已經不是我原來寫的,大概已經第三版了,助教一直都有貢獻code進來。那這個批改系統現在已經是Open Source了,在github上面都有,像電機系或者其他系,或者系上的ACM培訓,都有用這個系統,所以基本上是一個蠻robust的、很好的系統,而且已經使用了這麼多年。
我個人在教課過程中發現,是真的有必要使用這個東西,那現在,我相信在台灣,應該是第一個用線上系統去改作業和考題的,學生可以藉此馬上知道他哪裡錯了,也可以馬上改,我覺得這樣也是蠻好的。當然,我希望台灣所有的大學都盡量使用,這樣才是教程式課的有用方式,不要再使用紙筆測驗了。整個過程大概就是這個樣子,因為我教學碰到一些需求,然後我想辦法,用很基本的技術解決,這並不難。

Q5:可以請教授介紹一下您專業的相關領域嗎?
A5:我博士班的時候是唸理論,計算機的Theoretical Computer Science,這個基本上就是你們的資料結構、演算法之類的東西,那比較重視的是平行分散式的資料結構和演算法,所以我是做平行計算出身的。我的背景跟一般人不太一樣,做的是天文物理的平移化,以前人家在算天文物理的時候,受限於計算機,不能計算複雜的model,那我們平行計算就可以讓這件事情變得很快,但問題是我們要學它的domain knowledge,就是天文物理到底是在算甚麼東西。所以,我為了做博士的研究,還要唸一點天文物理的東西,把這個事情搞定。
博士後的階段,比較在做理論和Computer system,那Computer system我做了幾年,因為我有一些System programmingOperating system的基礎,所以可以做這方面的研究。平行分散式系統裡頭,它的效能瓶頸在哪裡,怎麼用演算法和資料結構去克服,克服完之後再實作,實作完再解決這個系統的瓶頸問題--基本上就跟看病一樣,某個平行分散系統可能有問題,那麼找出原因來,用方法去解、去實作,然後證明比以前更好,大家都在做這樣的事情。
你們可以去看我的網頁,我現在在做的都是大型的Database,都是No SQLDatabase,做Cloud Computing,而在實驗室做的比較多的是平行分散式的Deep Learning,因為現在AI也蠻多人做的,但是跑起來都很慢,只能用平行分散式的技術讓它跑的快一點,便是我們實驗室在做的方向。我們實驗室用的技術很多方面,不管理論、系統都要會才能做現在在做的事情。總而言之,平行分散式系統的優化,使用演算法和計算機系統方面的技術,是目前實驗室在做的事情。

Q6:請問教授對現在資工環境的看法?
A6:我覺得還是要回到基本功。Computer Science現在大家都很注重application,我個人認為,Computer systemSystem softwareComputer architecture,跟Computer algorithm,這些東西才是fundamental的,意思就是說,你這些基本的東西不會,那你在競爭就不會有優勢。因為這些是除了Computer science department以外,沒什麼人懂的東西,所以大概不會有人,像是別系的人,比我們懂這些東西--Computer systemOperating SystemArchitecture,在這方面的話,我相信是我們的基礎。
給各位一個良心的建議,基礎一定要穩固,Application才會搞得好,這個我只能點到為止。如果基礎不穩定的話,那做Application可能會碰到瓶頸,譬如你現在在做一個Framework,覺得它太慢了,那你要怎麼辦?比如說,使用的是STL,如果不懂資料結構、演算法的話,你是沒有辦法對它做客製化和優化的,也就是說你會被它限制住。至於怎麼樣調適這些基本工具咧,那就是我們Computer Science比別人厲害的地方,別人只會用Tool,而我們知道怎麼樣修改這些Tool,因為我們知道它的工作原理,不太可能會受限於Tool,還是要回歸基本面。

Q7:請問教授給資工系學生的一些建議?
A7:跨領域學習固然重要,但更重要的是,要學習別人不會的技能,而不是一些膚淺的表面功夫,這樣才可以提升自己的競爭力,未來找工作會更有保障,因為不可取代性是相當重要的。舉例來說,假設你會寫網頁,但高中生也會,這樣公司找高中生還可以省下人事成本;但當公司需要會校調compiler的人才,而你也剛好懂,這樣工作就會是你的了。也就是說,當你會的東西門檻越高,工作就越好找,薪資就會越高。當然,資工系有太多是其他人不會的東西了,所以把資工系教的基礎紮好,基本上工作也不會太難找。

BONUS:請問書法對教授您的生活有甚麼改變或影響?
A:有阿。因為我問過的導生中,現在的人已經不怎麼寫字了,都用電腦打了,那就算有寫字也不會拿毛筆寫字。坦白講,我寫字也是這幾年的事情,但是我們以前國小的時候,是一直要寫到高中,而且我們以前的學校是真的很認真在教,所以我大概知道怎麼寫字,就是需要再練習一下筆法這樣,當然這是很修生養性的東西,小朋友可能沒有這個耐心去好好地把字寫好。那...寫字很OK呀!我覺得寫字蠻好的,可以讓你的心情比較平靜怎樣的,這都很好呀!多鼓勵大家寫字呀!
我這樣說好了,各位可能都知道我是蠻喜歡中國文學的,比方說我就很喜歡讀史記,但是如果有人逼著我要考試、要念史記的話,我可能反而不想念,就是看你的興趣,如果你有興趣的話,你可以接觸一下,我沒有鼓勵要大家都去寫字,這完全不對,你只要有興趣就去碰它,那你覺得有興趣你就去做,沒有興趣就算了,但是總有一些好處啦。是這樣的,就跟我喜歡讀歷史一樣,也沒有人逼著我念,基本上,就是一種興趣或愛好而已,當然你們也鼓勵不來,叫你們寫程式你們也不一定會寫呀,更不用說叫你們寫書法,那更不可能。我只能跟你講說有甚麼好處而已,它可以讓你心平氣和,如果你覺得你無法心平氣和的話,你去寫字看看,你就可能心平氣和,我們現在大概就是這樣子,是蠻有趣的事情,就跟如果我跟你講說打某一個game很好玩,差不多意思,要不要打那你家的事情,我只能跟你講說打那個game很好玩,就跟我說寫書法蠻能修心養性,你如果想做就去做,多試試看。現在人真的很少寫字