接到IBM東京基礎研究所觀摩第31屆ACM國際大學生程序設計大賽總決賽的觀摩邀請時,第一感受是中國大學ACM國際大學生程序設計大賽參賽隊伍實力強勁。在88支進入總決賽的全球各地隊伍中,中國(含臺灣、香港地區)擁有15支隊伍。而在與ACM國際大學生程序設計大賽三天的親密接觸中,最大的體會是,創新型的程序設計人才正從這裡走向世界。
創新壓力與快感
近年來,ACM國際大學生程序設計大賽在試題設置上越來越緊扣現實生活,此次年度總決賽的試題,第一道就是關於血型基因組合方面的問題,第二道則是關於港口貨船裝運如何實現最優化的問題。這些題目讓大學生在學校學習基礎理論知識之後,獲得嘗試解決實際生活問題的機會,並鍛鍊他們實際動手能力。
正如一位來自麻省理工學院的大賽選手所說,ACM國際大學生程序設計大賽對於眾多大學生來講,具備著無窮的魔力,為了一道題的破解,許多學生甚至連做夢都在研究數據結構、算法、組合數學和數論等等。通過解決實際問題體驗編程的樂趣。
其實,動手解決ACM設置的實際生活中試題,對於生活在校園內的大學生來講,是一種很好提前面對社會工程項目的鍛鍊機會。將ACM率先引入中國的上海大學周維民教授表示,真是由於看到了這點,他才積極地將ACM國際大學生程序設計大賽引入中國。他認為參加ACM大賽對於自己的學生有很多創新意義上挑戰。
在比賽中,ACM不僅要求學生具備完成指定任務的程序,還要求學生在完成程序功能的基礎之上保證程序的運行效率與空間佔用率。也就是說,參見競賽的學生並不是完成解決問題的程序設計就行了,而且要保證程序的短小精悍,在最短時間內運算出結果。
一位浙江大學ACM在線測試組成員在參加競賽試題測試時,最深體會就是學生必須時時刻刻都去考慮如何去最大限度的優化,改善其程序結構,以期達到用最小的空間,最優的算法實現程序的功能。
這次在東京舉辦的ACM國際大學生程序設計大賽總決賽上,獲得總成績第二名的清華大學與獲得第一名的華沙大學,在解題數量上僅差一道題,而且清華大學隊員們也已經尋找到另外一道題的解決方案,並實現程序設計。但是在提交程序時,先後三次因為程序運行無法在組委會規定時間之內完成,使他們與總冠軍失之交臂。
由此可見,ACM國際大學生程序設計大賽對學生的挑戰意義是前所未有的。來自國防科學技術大學的參賽選手張釗寧坦言,參加ACM國際大學生程序設計大賽的最重要原因就來源於,該項賽事能給他帶來更多的創新挑戰。他表示,如果他花費同樣精力在國際數學建模大賽上,或許通過取得國際數學建模大賽的名次,他這位大四的學生已經可以保送研究生。但他選擇了ACM和考研。
致力於讓大學生能通過計算機充分展示自己分析問題和解決問題能力的ACM國際大學生程序設計大賽,正在讓具備創新精神的學生競賽壓力下脫穎而出,源源不斷地「製造出」創新的一代。
培養開源精神
作為ACM國際大學生程序設計大賽總決賽的贊助商,IBM為競賽隊伍提供了Eclipse開源開發環境,讓學生在該環境下實現C/C++或Java程序設計。對此,來自中山大學的隊員張釗寧興奮地告訴記者,通過參加ACM國際大學生程序設計大賽,讓他由衷地體會到了在Eclipse環境下,實現Java程序開發的便捷。
張釗寧也表示,在Eclipse環境下開發Java程序,比以前他在其它非開源環境下開發大幅縮短了開發時間。但是他也表示,由於之前在學校練習時,都是將Eclipse移植到Windows下實施開發。當抵達東京參加總決賽時,他們發現以往在移植的Eclipse下實施程序開發經常出現的Bug,在Linux下的Eclipse環境中開發不翼而飛。而為了考慮以往他們經常碰到的Bug,使他們在設計程序時浪費了一定時間。
正如IBM的一位技術經理所說,開源的Eclipse環境為程式設計師提供了很好的便捷開發途徑。但是由於習慣思維和為真正體驗過等原因,許多工程師不以為然,但是越來越多體驗過Eclipse的工程師正在有力促進著Eclipse的發展。
在前不久,完全支持SOA的Rational 7.0桌面版發布的當日,Rational大中華區總經理桂榮青也表示,正是由於Eclipse能給工程師帶來開發的便捷體驗,IBM在花費巨資開發出Eclipse並免費捐贈給開源組織之後,仍然要花費大量人力和物力資助Eclipse。
隨著越來越多的大學積極投身ACM國際大學生程序設計大賽,開源環境下的程序設計思想也逐漸在那些具備程序設計天賦的學生中蔓延,開源的精神正在被逐漸培養起來。這也正是ACM所希望看到的,一位ACM官員在接受記採訪時如是說。
當然,對於開源精神的培養,僅僅通過國際大學生程序設計大賽顯然是不夠的。來自上海的復旦大學教務處副處長鄭方賢表示,沒有參加過國際大學生程序設計大賽的學生仍然甚少有機會接觸開源環境程序開發。來自浙江大學的參賽選手也證實了這種說法,他的同學中很少有人接觸過Eclipse等開源開發環境。
但是對於開源精神,ACM國際大學生程序設計大賽的貢獻不可小瞧。得益於ACM組織的全球性影響,越來越多的內地高校積極組隊參與該項賽事。周維民介紹,2006年度國際大學生程序設計大賽期間,先後有800多支內地隊伍參與了區域預賽,預計2007年地區賽將有千餘支隊伍報名參加。
與此同時,更有許多學校積極申辦國際大學生程序設計大賽的區域比賽承辦權,乃至總決賽的承辦權。在今年的總決賽現場,哈爾濱工程大學校長甚至親自率隊前來東京向ACM提交2008年國際大學生程序設計大賽總決賽的承辦申請。
在高校積極參與與帶動下,開源精神將不斷地在以大學生為代表的這批新生力量中開花,並在不久將來結果。
誰來策動技術
對於ACM國際大學生程序設計大賽總決賽贊助商IBM來講,每年在此方面的投資。用IBM軟體集團官員Margaret Ashida的話來講,很多人力物力的投資是無法用準確的金錢數量來衡量的。國防科技大學的領隊老師向記者這樣形容IBM的熱情。國防科技大學競賽隊伍在東京的吃住,甚至連迪斯尼樂園觀光的費用IBM都提供了。而此次參加總決賽的有來自全球各地88支隊伍。
對此,國內許多參賽隊伍的教練認為,國際大學生程序設計大賽對於IBM來說意義深遠,甚至類似於IBM在為自己「選秀」,期望通過競賽來發掘優秀人才,並為IBM所用。剛從加州訪問歸來的北京航空航天大學軟體學院宋友博士卻認為,對於許多美國公司而言,從公司的營收中分離出一部分資金投資於推動社會技術進步已成為一個傳統。
在面對廣州的ACM國際大學生程序設計大賽中山大學隊總教練郭嵩山提及的,很多學生在ACM國際大學生程序設計大賽中鍛鍊出非凡的能力,甚至走向成功。但當他們畢業時卻經常選擇Google、微軟等公司而非IBM時。IBM負責研究的研究的高級副總裁Paul M.Horn告訴記者,IBM最看重的一定是通過國際大學生程序設計大賽真正推動技術的進步與創新,而非簡單地得到一些為己所用的人才。
負責IBM亞太去高校事務的Margo Robertson也表示,對於一些學生而言,可能Google寬鬆而隨意的研發氛圍更適合於他們,因此IBM尊重他們的選擇。但是作為一家IT領域重要公司,積極通過與高校合作,培養未來技術領域的創新人才,是IBM一貫的宗旨。
其實,不難從很多IBM贊助的活動中看到Paul M.Horn所說的IBM的理念。在2006年中國傑出資料庫工程師評選過程中,IBM最看重的是通過評選在業界真正尋找到一批優秀的資料庫工程師,通過分享他們的項目經驗與創新技術推動中國資料庫事業的發展。在獲獎工程師中不乏精通Oracle資料庫的優秀資料庫工程師身影。
同樣,在2006年「IBM杯」SOA校園大賽中,幫助學生培養實際項目應用SOA實施開發的能力,是大賽的唯一宗旨。IBM SOA中國設計中心技術主管毛新生曾表示,IBM期望通過提前培養學生的這種能力,有力推動未來SOA領域技術的發展。
在東京,來自美國麻省理工學院的一名參賽選手告訴記者,他們有很多同學非常熱衷於ACM國際大學生程序設計大賽,認為此項賽事是對個人、團隊等各方面能力的極大鍛鍊。但在整個參與競賽過程中,他們從未覺得需要為活動贊助方IBM去做什麼。在他們看來IBM贊助這樣的活動理所當然,因為技術發展需要IBM這樣的公司來推動。
技術應用在日本
在日本,二維碼已經成為日本產品上不可或缺的東西,用IBM東京基礎研究所所長丸山宏的話來講,日本人的生活已經離不開二維碼。
面對無人值守的日本郵政局,以及局內冷冰冰的自動櫃員機,在讓發展中國家遊客大看眼界的同時,也讓想投寄包裹的各位遊客無可適從。
日本的許多交通收費場所,都使用了RFID技術。從機場到酒店,巴士經過所有收費站時,只需降低一下速度,「嘀」的一聲後便可邊揚長而去。
鏈 接
ACM國際大學生程序設計競賽
ACM國際大學生程序設計大賽(ACM International Collegiate Programming Contest – ACM-ICPC)由美國計算機協會(Association for Computer Machinery)主辦,一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程序、分析和解決問題能力的年度競賽。經過近 30 多年的發展,ACM國際大學生程序設計競賽已經發展成為最具影響力的大學生計算機競賽。賽事總決賽目前由IBM公司贊助。
大賽的歷史可以上溯到 1970年,當時在美國德克薩斯 A&M大學舉辦了首屆比賽。當時的主辦方是 the Alpha Chapter of the UPE Computer Science Honor Society。作為一種全新的發現和培養計算機科學頂尖學生的方式,競賽很快得到美國和加拿大各大學的積極響應。1977 年,在ACM計算機科學會議期間舉辦了首次總決賽,並演變成為目前的一年一屆的多國參與的國際性比賽。迄今已經舉辦了31屆。
最初幾屆比賽的參賽隊伍主要來自美國和加拿大,後來逐漸發展成為一項世界範圍內的競賽。特別是自1997年IBM開始贊助賽事之後,賽事規模增長迅速。到2004年,已有840所大學的4109支隊伍並以每年10~20%的速度在增長。
1980年,ACM將競賽的總部設在位於美國德克薩斯州的貝勒大學。在賽事的早期,冠軍多為美國和加拿大的大學獲得。來自中國的上海交通大學代表隊則在2002年美國夏威夷第26屆和2005年上海舉行的第29屆全球總決賽上兩奪冠軍。這也是目前為止亞洲大學在該競賽上取得的最好成績。賽事的競爭格局已經由最初的北美大學一枝獨秀演變成目前的亞歐對抗的局面。
31屆ACM國際大學生程序設計大賽總決賽前十名分別是:Warsaw University、Tsinghua University、St. Petersburg University of IT, Mechanics and Optics、Massachusetts Institute of Technology、Novosibirsk State University、Saratov State University、Twente University、Shanghai Jiao Tong University、University of Waterloo、 Moscow State University。