陳湘驥 劉才興 徐東風
摘要:本文針對目前一般院校在參加ACM/ICPC(國際大學生程序設(shè)計競賽)中普遍遇到的問題,結(jié)合華南農(nóng)業(yè)大學的相關(guān)實踐,闡述了競教結(jié)合的人才培養(yǎng)方式以及可持續(xù)發(fā)展的思路與做法。
關(guān)鍵詞:程序設(shè)計競賽;人才培養(yǎng);可持續(xù)發(fā)展
中圖分類號:G642 文獻標識碼:A
1引言
近年來,國內(nèi)參加ACM/ICPC(國際大學生程序設(shè)計競賽)的高校迅速增加。以廣東省為例,2007年有16所高校參加ACM/ICPC相關(guān)賽事,2009年增加到27所。另一方面,各類程序設(shè)計競賽層出不窮、內(nèi)容豐富多彩,同樣以廣東省為例,在校大學生除了可以參加ACM/ICPC外,還可以參加TopCoder、Google、百度等公司舉辦的一系列程序設(shè)計競賽,以及GDPC(廣東省大學生程序設(shè)計競賽)、珠三角“金山杯”程序設(shè)計競賽等,而且多數(shù)院校還定期舉行校內(nèi)選拔賽,有條件的甚至舉辦每月一賽、每周一賽等。在這樣的形勢下,一方面,新參加ACM/ICPC的院校迫切希望能夠借鑒其他院校的經(jīng)驗,另一方面,隨著競賽的普及,它為相關(guān)課程的教學改革帶來了契機,同時也對目前的教學方式提出了更高要求。本文闡述了華南農(nóng)業(yè)大學多年來參加ACM/ICPC競賽以及圍繞競賽開展大學生素質(zhì)培養(yǎng)的一些思路與做法。
2一般院校參加ACM/ICPC遇到的問題與分析
以廣東省為例,雖然到2009年參賽院校達到27所,但除了中山大學等少數(shù)強校一直保持驕人的成績之外,更多的院校則是普遍存在如下問題:
(1) 部分學校依靠某一屆的學生創(chuàng)出了好成績,但之后就出現(xiàn)大幅下滑,取得的成績無法延續(xù)。可能的原因是學校培養(yǎng)力度不夠,只能依靠學生的個人努力,由于每年學生的入學情況不同,加上個人自學效果受各種因素的影響,因而成績波動較大;另一種可能的原因是部分學校雖然可以集中資源培養(yǎng)一屆學生,但培養(yǎng)所耗費的綜合成本過高,難以持續(xù),一旦投入減少,成績便開始下滑。
(2) 競賽指導(dǎo)教師更換頻繁,能一直從事競賽指導(dǎo)工作4年以上的教師很少。主要原因是目前教師的教學與科研任務(wù)繁重,其中的年青教師更要面對生活上、工作上的多重壓力。因而,多數(shù)指導(dǎo)教師在從事幾年的競賽指導(dǎo)工作后,便選擇退出或轉(zhuǎn)為幕后。
(3) 多數(shù)指導(dǎo)教師沒有參加ACM/ICPC做題的經(jīng)歷,加上教學、科研任務(wù)繁重,沒有充足時間進行這方面的學習,因而單靠言傳身教的傳統(tǒng)教學方式難以培養(yǎng)學生創(chuàng)出好的成績。
(4)ACM/ICPC的傳統(tǒng)強校雖然有著豐富的經(jīng)驗,但由于強校與一般院校的基礎(chǔ)條件不同,因而不能照搬其成功經(jīng)驗。強校有很強的師資,如上海交通大學集中教學資源專門開設(shè)了ACM班;強校有充足的活動經(jīng)費;強校的生源較好,更易培養(yǎng)出高水平的競賽選手;強校的畢業(yè)生有更好的就業(yè)機會和更多的保研資格,因而強校的學生更安心進行訓練,競賽期一般為3~4年,最長的達到5年(本科4年加研究生1年)。對照強校,一般院校往往活動經(jīng)費少;學生基礎(chǔ)相對薄弱;參加訓練的學生少;臨近畢業(yè),學生因找工作、考研而結(jié)束訓練,導(dǎo)致競賽期不長,一般2~3年。
因而,擺在一般院校面前的主要問題是,如何快速提高競賽水平,取得好的成績;如何做到可持續(xù)發(fā)展。筆者所在教學團隊從2002年開始組織學生參加ACM/ICPC并開展相關(guān)教學改革實踐工作,先后經(jīng)歷了三個階段,完成了從無到有,到穩(wěn)定發(fā)展的過程。
3三個階段
第一個階段是嘗試階段。第一次組隊參賽,通過簡單的小范圍選拔,組成了參賽隊伍。最終,結(jié)果不重要,重要的是邁出了第一步,指導(dǎo)教師明確了自己的方向。
第二個階段,有固定的指導(dǎo)教師,有定期的訓練安排。這一階段指導(dǎo)教師與所有的隊員都只有一個目標,取得好成績。采用能耗型的發(fā)展方式,指導(dǎo)教師付出大量的精力輔導(dǎo)學生,為學生安排訓練,長期與學生耗在一起,不時督促學生完成訓練任務(wù)。努力的結(jié)果是獲得了ACM/ICPC區(qū)域預(yù)賽中的首枚獎牌,但教師的負荷也快接近極限。不 過,這一階段為進入下一階段創(chuàng)造了條件,包括系統(tǒng)的開發(fā)、訓練題的積累、活動的宣傳與普及等。
第三個階段是穩(wěn)定發(fā)展階段。在這一階段形成了相對穩(wěn)定的指導(dǎo)教師團隊和一定規(guī)模的學生群;獲獎隊員參與授課和講題,形成良性循環(huán);指導(dǎo)教師的事務(wù)性工作大幅減少,負擔減輕。這一階段的目標是:在繼續(xù)創(chuàng)造更好的競賽成績的同時,促進競教結(jié)合,提高教學質(zhì)量,提高廣大學生的編程技能,促進就業(yè),達到多贏的目的。因此,這一階段更關(guān)注如下幾個方面:(1)分工細化;(2)競教結(jié)合;(3) 構(gòu)建平臺,提倡素質(zhì)教育;(4) 完善支撐系統(tǒng),做到可持續(xù)發(fā)展。
4分工細化
一方面,隨著教師科研任務(wù)以及生活負擔的加重,指導(dǎo)教師投入的精力會減少;另一方面,為了取得更好的成績,指導(dǎo)教師需要集中精力對題目(尤其是新題)作系統(tǒng)的分類與研究,以便給競賽學生更好的指導(dǎo)。因而,需要將事務(wù)型工作與指導(dǎo)教師分離,由學生助理分擔。這些工作包括組織訓練與比賽(命題除外)、收集資料、管理機房、收發(fā)通知等。工作的細分如圖1所示,工作細分之后,再根據(jù)每位指導(dǎo)教師的個人情況具體分配。

制定計劃,包括計劃一段時間內(nèi)(多為近一年)需要完成的各項工作以及提出要達到的目標。計劃首先要具有連續(xù)性,一些被確定為有效的活動,應(yīng)該繼續(xù)舉辦,比如每年一次的校賽,即使遇到人員、資金方面的嚴重不足,也要堅持辦下去;只有相對穩(wěn)定的計劃與行動才能培養(yǎng)起良好的氛圍。
整理資料,將歷屆競賽隊員最有價值的資料和代碼進行分類整理,將各年度的競賽題目進行分類整理,讓學生及時共享。
設(shè)計支撐系統(tǒng)包括整合現(xiàn)有系統(tǒng)以及開發(fā)新系統(tǒng),可整合的現(xiàn)有系統(tǒng)如網(wǎng)上公開的Online Judge系統(tǒng)、即時通訊系統(tǒng)、BBS、郵件系統(tǒng)等;新系統(tǒng)則是根據(jù)學校自身特點設(shè)計的專用系統(tǒng),比如內(nèi)部Online Judge系統(tǒng)、實驗系統(tǒng)、考試系統(tǒng)等。
研究競賽題目,包括鉆研各類競賽題目中的算法,并研究出題趨勢。自從1977年的首屆ACM/ICPC總決賽到2009年的第33屆,競賽題目所涉及的知識范圍不斷擴大,新題目不斷出現(xiàn),對綜合運用知識的能力要求也越來越高。因而,研究競賽題目既是提高競賽指導(dǎo)水平的需要,也是提高教學水平的要求。我校選取的競賽題目主要是近年各大洲的區(qū)域賽題目、世界賽題目以及信息學奧林匹克競賽的題目,NOI(全國青少年信息學奧林匹克競賽)的論文也是重要的參考資料。
授課則包括講授競賽相關(guān)課程與競賽培訓課程。
命題,主要指校內(nèi)選拔賽的命題工作。出什么樣的題目對學生有一定導(dǎo)向作用,因而,命題既要有區(qū)分度,又要在一定程序上接近國內(nèi)競賽的水平。
事務(wù)型工作則全部或大部分交由事務(wù)助理完成。我校從2008年開始從學生中招募事務(wù)助理,經(jīng)過一年多的實施,收到良好效果,極大地減輕了指導(dǎo)教師的工作負擔。
5競教結(jié)合
提倡競教結(jié)合符合教育部關(guān)于大力加強實驗、實踐教學改革的思路,而且ACM/ICPC與多門計算機專業(yè)基礎(chǔ)核心課程密切相關(guān),競教結(jié)合在培養(yǎng)學生基本素質(zhì)方面具有較好的教學效果。

ACM/ICPC所涉及的課程包括C語言程序設(shè)計、C++語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計與分析等,覆蓋了大學本科大一、大二的學習內(nèi)容,這兩年也是學生打好基礎(chǔ)的關(guān)鍵時期。由于ACM/ICPC中極具趣味與挑戰(zhàn)的題目對大學生有很強的吸引力,因而在課程中穿插介紹ACM/ICPC對提高學生的學習興趣有明顯的作用。另一方面,要在競賽中取得好成績,必須對有條件的學生提早安排訓練。站在效率的角度,能提早發(fā)現(xiàn)并訓練學生的最佳人選就是任課教師。以程序設(shè)計課為例,該課程在大一第一學期開設(shè),在第一堂課上就將ACM/ICPC介紹給學生,可以讓剛?cè)胄5膶W生逐步明確自己學習方向,同時激發(fā)他們對算法和編程的學習興趣;在教學中因材施教,對學得快的學生安排不同的實驗內(nèi)容,例如選用一些較簡單的競賽題,讓這部分學生盡快走上競賽之路。為此,在實際操作中,我們盡量讓每一門競賽相關(guān)課程至少有一名競賽指導(dǎo)教師。
為了競賽創(chuàng)出好成績,學校每年定期開辦兩期競賽培訓班,一期在4月份,時間較短,主要是為5月份的省賽做準備,以做題訓練為主;另一期在7、8月份,時間長,內(nèi)容豐富。合理地制定符合本校學生特點的競賽培訓課程很重要,我校將培訓課程分兩個層次,一個是針對低年級的學生,培訓內(nèi)容是超前學習大二課程內(nèi)容,比如基本數(shù)據(jù)結(jié)構(gòu)與算法;另一個是針對有一定競賽經(jīng)驗的高年級學生,培訓內(nèi)容為專題講解與討論,內(nèi)容豐富,形式多樣。兩個培訓的時間安排如圖2所示。
在我校,兩層次培訓方法取得了較好的效果,原因如下:(1)我校絕大部分學生在入校前未接受過正式的編程培訓,基礎(chǔ)薄弱,開設(shè)初級班能夠吸引更多的學生參與到程序設(shè)計競賽的相關(guān)活動中;(2)在時間安排上,高級班開班比初級班稍晚,通過開設(shè)初級班,能夠盡早發(fā)現(xiàn)能力較強的低年級學生,并吸收他們繼續(xù)參加高級班的學習,而不用等到下一年的暑假;(3)初級班人數(shù)多,時間短,高級班人數(shù)少,時間長,這樣安排,既擴大了學生規(guī)模,又充分利用了有限的教學資源,并且可以讓指導(dǎo)教師在暑假較長的一段時間內(nèi)集中精力訓練競賽隊員,創(chuàng)出好的成績。
圖3為我校2006~2009年參加培訓的學生人數(shù)情況。圖4為我校2006~2009年參加校賽人數(shù)情況。

參加培訓的學生主要是計算機方向的學生,以大一、大二學生為主,培訓覆蓋面占計算機方向?qū)W生總數(shù)的20%左右。人數(shù)基本穩(wěn)定,但普及率仍有待進一步提高。

6構(gòu)建平臺,提倡素質(zhì)教育
信息素養(yǎng)是現(xiàn)代科學素養(yǎng)的重要組成部分。程序設(shè)計能力作為信息技術(shù)的核心能力,是學生核心競爭力的最直接體現(xiàn),是踏入信息科學大門的墊腳石。
長期地培養(yǎng)競賽學生,并從事相關(guān)的教學工作,我校逐漸形成一種以競促學的人才培養(yǎng)模式,如圖5所示。大一學生進校,教師講授程序設(shè)計課程,鼓勵學生進行做題訓練,學生可以自由選擇參加初級競賽培訓,內(nèi)容包括基本數(shù)據(jù)結(jié)構(gòu)與算法。這一階段是參加競賽之前的預(yù)備期。部分學生在預(yù)備期后轉(zhuǎn)向軟硬件開發(fā),另一部分學生通過不斷的訓練與比賽進入實戰(zhàn)成長期。在實戰(zhàn)成長階段,學生的算法設(shè)計與編程能力迅速提高,這不光為競賽取得好成績創(chuàng)造了條件,也為加入科研團隊創(chuàng)造了有利條件。很少一部分學生會一直訓練到大四,他們戰(zhàn)果累累,算法設(shè)計與編程能力很強,畢業(yè)后一般就職于國內(nèi)外的大型IT企業(yè)。

整個系統(tǒng)是開放的,不論是大一還是大三學生都可以進入系統(tǒng)訓練,也可以隨時結(jié)束訓練,轉(zhuǎn)向其他領(lǐng)域,學生訓練全憑自身愛好與興趣驅(qū)動,從而形成一種輕松愉快的學習氛圍。經(jīng)過多年實踐,一批批競賽學生畢業(yè)開始走上社會或讀研深造,表1顯示了2003~2005級共30名獲得省以上競賽獎項的學生畢業(yè)后的去向。30人中,有6人繼續(xù)攻讀碩士學位,7人就職甲骨文、北電、匯豐等大型外資或合資企業(yè),14人就職騰訊、網(wǎng)易、華為等國內(nèi)大型IT企業(yè)。
7完善支撐系統(tǒng),做到可持續(xù)發(fā)展
培養(yǎng)人才雖然不能簡單地比作工廠生產(chǎn),但是在人才培養(yǎng)過程中運用先進的技術(shù),無疑會極大提高效率,做到可持續(xù)發(fā)展。前面提到的分工細化,就是讓指導(dǎo)教師將更多的時間用在重要的事情上。如果沒有支撐系統(tǒng),即使分工合理,指導(dǎo)教師的時間同樣會消耗在眾多的瑣事上,比如整理資料、命題、評判對錯、選拔組隊等。因而實際中,競教結(jié)合、構(gòu)建平臺都需要有相應(yīng)的支撐系統(tǒng)。

支撐系統(tǒng)包括OJ系統(tǒng)、實驗系統(tǒng)、考試系統(tǒng)、課程設(shè)計輔助系統(tǒng)、即時通訊系統(tǒng)、電子郵件系統(tǒng)以及資料管理系統(tǒng)等。支撐系統(tǒng)在ACM競賽活動中起著重要的作用,以北大OJ為例,該系統(tǒng)目前有2000多道題目,不光在本校教學與競賽中發(fā)揮著巨大作用,而且成為全國各高校大學生訓練算法設(shè)計與提高編程能力的主要公共平臺之一。類似北大OJ這樣開放給所有人免費使用的系統(tǒng)還有不少,但是,建立學校自身的OJ與題庫仍然很有必要。原因是:(1)可以自行安排校內(nèi)比賽;(2)逐步建立自己的題庫;(3)可以自行增設(shè)功能,滿足不斷增加的需求;(4)學校自己的OJ更能吸引本校的初學者,因為系統(tǒng)中記載著他們熟悉的師兄師姐留下來的“足跡”,這些“足跡”激勵著他們繼續(xù)前進。支撐系統(tǒng)還包括實驗系統(tǒng)、考試系統(tǒng),因為采用競教結(jié)合的教學方式就是將教學與競賽視為一個統(tǒng)一的整體。

支撐系統(tǒng)中,資料管理系統(tǒng)是重要的組成部分之一。整理資料主要是指將歷屆競賽隊員留下來的最有價值的資料和代碼進行分類整理,將各年度的競賽題目進行分類整理,并及時更新授課內(nèi)容。由于整理工作量巨大,因而需要指導(dǎo)教師與學生共同完成,為了便于資料共享,就要充分利用網(wǎng)絡(luò),采用計算機系統(tǒng)收集與整理資料。圖6展示了系統(tǒng)的主要構(gòu)成。
在教學當中,以QQ為代表的即時通訊工具發(fā)揮了巨大作用,尤其是用戶群的作用最為突出。實踐表明,即時通訊工具已經(jīng)成支撐系統(tǒng)的重要組成部分。
8結(jié)語
我校從2002年開始參加ACM/ICPC,2006年開始在ACM/ICPC亞洲區(qū)域預(yù)賽中獲獎,目前共取得1金5銀2銅。
當多年的積累營造出良好的學習氛圍,有穩(wěn)定的計劃安排,有較完善的支撐系統(tǒng),有穩(wěn)定的指導(dǎo)教師隊伍,做到競教(或競教研)結(jié)合,這時院校的ACM/ICPC活動便具備了可持續(xù)發(fā)展的良好條件。
參考文獻:
[1] 郭嵩山,王磊,張子臻. ACM/ICPC與創(chuàng)新型IT人才培養(yǎng)[J]. 實驗室研究與探索,2007(12):181-185.
[2] 林丕源,劉財興,張明武. 軟件工程專業(yè)的實踐教學改革初探[J]. 實驗室研究與探索,2007(12):238-240.
[3] 陳湘驥,劉財興,陳志民. 在線評判系統(tǒng)在程序設(shè)計類課程大規(guī)模教學中的應(yīng)用[C]//張鳳祥. 全國計算機新科技與計算機教育論文集. 成都:西南交通大學出版社,2008.
ACM/ICPC and Practice on Sustainable Development of IT Students Cultivating
CHEN Xiang-ji, LIU Cai-xing, XU Dong-feng
(College of Informatics, South China Agricultural University, Guangzhou 510640, China)
Abstract: The recent problems which colleges met when training students for ACM/ICPC were introduced in the paper. After analyzing the reasons, a method of sustainable development of IT students cultivating with ACM/ICPC was proposed, by combining the activities in South China Agricultural University.
Key words: programming contest; students cultivating; sustainable development