|
|
|
當全世界都在爭取ACM冠軍獎杯時,這群台大學生靠自己證明台灣仍有打進決賽的實力。 |
當大陸用國家力量,重金培養頂尖學生,打進全球最重要的ACM大賽時,台大學生只能倚賴自己的天分,證明台灣仍有最頂尖的IT人才。
四月中,三個台大學生,剛從被大陸稱為「編程奧運」的美國計算機協會程式設計大賽全球決賽(簡稱ACM大賽)中,擊敗復旦大學、普林斯頓、杜克大學等對手,為台灣拿到第十九名,大陸則首次有十一所大學在決賽中得名,是本次得獎最多的國家。
如果沒有這三個台大學生,今年號稱科技之島的台灣,將在全球資訊界最重要的科技競賽當中掛零。
第十九名,不是台灣有過最好的成績,卻是競爭最激烈的一次。當中國、東歐正在用國家的力量,幫助他們的年輕天才站上國際舞台時,這三個學生,只能靠自己買書,和學長討論,以及系上湊出來的一點經費,為台灣在國際頂尖競爭中發光。
他們沒有教練、沒有正式訓練,甚至沒有人知道他們在幹什麼,只能靠自己的天分和堅持,證明台灣的實力。他們保住台灣的舞台,迎接他們的,卻只有期中考補考,和一片寂靜。
競爭:分區前兩名才能取得決賽參賽權
故事要從去年十月,在台北賽區舉行的ACM大賽選拔賽說起。為了鼓勵交流,美國計算機協會在全球切出三十六個區域舉辦初賽,只要是同屬亞洲的學校,就能跨出國境,到不同賽區比賽,拿到前二名的隊伍,才能取得決賽參賽權。
那場比賽,簡直像個大屠殺。當時台灣有上百隊參賽,台、清、交、師大全部到齊,大陸則來了上海交大、中山大學等五隊參加。
結果是,上海交大答對了八題,浙江大學,也答對了七題,台灣代表隊中成績最好的台大隊伍,只以答對六題居第五名,台灣清華大學,只答對了三題,其他學校答對題數,則都在三題以下。也因此,前四名全被大陸抱走,由上海交大代表台北賽區,取得全球決賽的參賽權。
ACM大賽之所以重要,一方面是因為,這是目前參賽規模最大,最具公信力的大學程式編碼競賽,另一方面則是因為,在求才若渴的軟體產業裡,Google、微軟、IBM等公司,開始拿著得獎名單當地圖,蒐尋全世界最有天分的優秀程式設計人才。「全球我們就只看這個比賽,」Google台灣工程研究所所長簡立峰分析,這次台灣錄取的工程師,全都曾在程式大賽中得名,如果沒有相關得獎紀錄,想踏進Google,十分困難。
不只Google,IBM、微軟,都對能打進ACM大賽決賽的學生,張開雙臂擁抱。在中國,即使是原本少人注意的福州大學大二學生,今年打入ACM大賽決賽後,IBM馬上發函給他,「你只要通過面試,馬上錄用!」
現在就讀台大資工系大二的沈定、陳學毅,和就讀電機系的李緒頡,就是去年台北賽區中,成績最好的台灣隊伍。這三個學生,都算得上是台灣最厲害的資訊系學生,他們高中時代都進過奧林匹亞大賽資訊類的選訓營,李緒頡則是現任國手。
負責帶隊的台大資工系副教授呂學一觀察,像沈定、陳學毅都是很有天分的學生,「我開的是最理論的演算法課程,來修的都是研究生,」呂學一說,但是這兩個人不但大一就來修課,還能隨時抓出老師的錯誤。「每次我看到他們身體突然動一下,就知道剛剛我講的東西哪裡有錯,」呂學一笑著說。
震撼:年砸三百萬經費,少林功夫快狠準
即便如此,當他們這次遇到大陸隊時,卻經歷了一場震撼教育。
在ACM的競賽規則中,一次比賽要花五個小時,題目卻只有十題,每一題都必須運用演算法的知識,才能破解。
比賽規則也經過精心設計。比賽三個人一組,卻只有一台電腦可以使用,所有題目只告訴你一個大致的敘述,要參賽者按敘述編寫出可以處理敘述中所有狀況的程式碼,每個題目都有一組包括各種狀況的測試資料,只有參賽者寫出的程式,能完全解開測試資料,才算答對這一題,大會甚至限制,每一個程式的執行時間,不能超過一秒鐘。
這個比賽有三個難度,除了下手前要想清楚題目限制,另一方面,程式必須寫得又快又精簡,光一個正負號寫錯,就可能耗掉半小時檢查,同時,和隊友的分工必須十分精密,才不會浪費寶貴的電腦使用時間。「整個比賽考驗邏輯、策略和承受壓力的能力,」ACM大賽的參賽資料上如此說明。「我們都叫大陸隊『少林寺』」陳學毅說,他們大一參賽時,見識到大陸隊苦功夫練出來的實力,「那一次,我們一題都還沒有解出來,大陸隊就已經解出三題,當我們解出三題,大陸隊已經解掉六題,」他們觀察,這些人就像早就認識這些題目,一拿到題目,就像背公式一樣,把答案輸入電腦。
「大陸、韓國,都是用國家的力量在培養這些人,」呂學一分析。以取得參賽權為例,大陸只有三個賽區,理論上頂多推出六隊,但學校全力支持,「他們的學生整天飛來飛去打比賽,」呂學一說。上海交大從二○○二年開始,甚至成立負責培養軟體人才的ACM專班,只要發現有設計程式天分的學生,甚至可不經過高考(編按:相當於台灣的聯考),直接進入交大就讀。
這些選手每週至少練習十小時,由相當於副校長的校黨委副書記帶隊,每到暑假,甚至會有國際級的大師,像設計出打敗人類棋王——深藍電腦的許峰雄親自指導,訓練一年以上,做過上千題模擬測驗,才會真正出手比賽。
到台灣打比賽,上海交大一次就帶了兩隊來,光是平日訓練和到各地比賽的費用,一年就至少要投入新台幣三百萬元以上。
契機:轉戰日本,以遞補資格進入決賽
沒有外援,這三個台大學生靠自己的方法,找到一條路。在台北拿不到參賽權,他們到日本賽區打比賽,還是同樣拿到第四名的成績,「原本以為沒機會了,」陳學毅說,卻因為前面的大陸隊伍,分別都在亞洲其他區域拿到參賽權,台大因此遞補,從日本區晉級決賽。
大陸選手練習上千題,台灣選手花多久時間練習上陣?「我們沒有能力提供任何訓練,」呂學一坦白的說,「他們大概花二、三個星期準備,練個二、三十題,就很偷笑了。」
「我們靠的,是高中奧林匹亞選訓營打下的基礎,」沈定說,他們原本就是建中資優班的同學,又一起參加高中奧林匹亞的資訊類選訓,幾個月專心鑽研寫程式的技巧,加上大一開始,他們就經常組隊參加大專甲組聯賽,摸索出自己的默契。另一方面,沒有教練指導,他們只能靠自己買大陸關於ACM大賽的解題專書練習,解不出來的題目,就問問系上學長,他們一學期修十門課,卻同時還得空出一隻手自修,勉強用二、三個星期的時間,準備世界大賽。
四月十二日,他們飛到德州,跟來自三十個國家的八十個隊伍打全球決賽。他們就坐在北大旁邊,和全世界的高手,同台競技。
比賽開始十分鐘,MIT(麻省理工學院)的位置上就放出第一顆代表解題成功的氣球,「怎麼這麼快!」李緒頡心裡驚呼,MIT搶快卻露了餡,台大馬上發現,這題容易解開,二十分鐘後台大也跟著解出這一題。
隱憂:未受重視,表現落後東歐、中國
台灣學生的專長,則是用創意解開別人眼中的難題,第二題,他們把應用在蒐尋上的計算方法,用來解計算問題,這個方法,他們稱為暴力蒐尋法,先刪除不可能的選項,再像試鑰匙一樣,反覆把可能的答案套進去計算,最後解出連曾得過世界冠軍的U. of Waterloo也解不出的問題,後來對方反覆檢討,始終找不出解法,還寫信問台大,這一題究竟怎麼解。
比賽進行到三個小時,台大以三題領先北大。但到最後挑戰困難題目時,最後兩個小時卻因為程式抓蟲的經驗不足,有一題原本認為一定可以過關的程式碼,卻因為少考慮了一個情況,始終無法過關,最後以一題之差,輸給北大,但仍打敗復旦、人民大學等對手,得到第十九名。去年全球冠軍上海交大,則只拿到第五名,前三名全由東歐大學包辦。
「如果像高中一樣有訓練,至少還能再多對一、二題,」李緒頡難過的說,沒有人指導,有些問題現在他們還解不開。如果不是缺乏資源,台大的排名還會更往前。
和過去相比,他們面對的是更困難的挑戰,一九九七年,台大曾在ACM大賽中,拿下全球第四名,當時全球只有八百四十隊參加比賽,但到去年,全球共有五千六百零六隊參賽,參賽隊伍增加了五.六倍。而台灣近兩年表現開始不穩,二○○五沒有任何一隊,在決賽中拿到名次。當全世界都在爭取ACM冠軍獎杯時,這群台大學生靠自己證明台灣仍有打進決賽的實力。但到現在,台大卻連布告都沒有貼過一張,「ACM是什麼比賽,其實沒有多少人知道,」李緒頡神色有些寂寞。
但對這幾個年輕人來說,卻打開了另一扇機會之窗。「我看到國際級的高手,」沈定興奮的說,他原本認為上海交大已是頂尖隊伍,但在世界賽中,跟東歐國家相比,程度卻還是差上一截,他們不但眼界從此放寬,也知道自己的實力,放在全球的天平上,放在什麼位置。
另一方面,Google也看中了這群人,不但派負責國際招募的經理,專程來台灣和這三個大二學生吃飯,拉近他們與Google的關係,Google台灣工程研究所也已經邀請他們,暑假到Google實習,參與新產品研發。
只不過,未來,台灣還能繼續透過這個賽事,證明台灣仍擁有國際級的IT人才嗎?在未得到正視,也沒有資源支持下,答案並不樂觀。
|