摘要:本文從開展軟件作品競賽與教育教學改革有效結合的意義上進行了一些探討和研究,并總結了一些幾點值得嘗試的方法。
關鍵詞:ACM-ICPC;軟件作品競賽;計算機教學改革;人才培養;創新
中圖分類號:G642
文獻標識碼:B
文章編號:1672-5913(2008)06-0044-02
1ACM-ICPC與教學改革的嘗試
近幾年,ACM-ICPC(ACM-International Collegiate Programming Contest,國際大學生程序設計競賽)及其相關的活動在國內高校當中開展得非常火熱。2006年在中國有3個賽區,一百多高校組織了上千支隊伍數萬學生參加。而2007年,賽區增加為4個:北京、南京、吉林和成都。
ACM-ICPC(簡稱ACM競賽)是由ACM國際計算機學會組織的,旨在培養和選拔優秀人才的一項國際范圍內開展的程序設計競賽,由3名選手組成隊伍,每次都要在一場5個小時的比賽內,面對8~10道應用問題,設計算法,編寫程序代碼,即時進行評判黑盒測試,進行判定。
競賽的規則和形式公平、公正,環節也緊張刺激,并由于全部采用實踐上機的方式進行考核,極大地鍛煉了學生的邏輯思維能力、算法設計能力和代碼實現能力。通過競賽鍛煉的學生,受到各IT企業的青睞,這項競賽也因此受到市場的極大認可。而眾多高校也紛紛借用這項競賽加強教學實踐,配合進行教學改革,從而使得這項競賽越來越引人關注。
2軟件工程人才的需求與培養
盡管ACM競賽能造就一批“編程高手”,但我們卻要看到,現在的軟件行業發展已經進入了工程應用階段,不是光有一批技術高超的“編程高手”就能帶動我國的軟件企業發展,還需要懂得軟件工程思想,懂管理、懂市場,具有創新精神的復合型人才。其實早在2002年,國家教育部批準成立35所示范性軟件學院,就是要開始加強培養企業所需要的軟件工程人才。在教會學生計算機專業知識,教會他們程序設計之外,更要教會他們怎樣從事軟件開發,教會他們怎樣根據市場需求去設計、定制軟件產品,教會他們怎樣把軟件工程產品與行業應用有效地結合起來,去開拓創新,從而將我國的軟件企業推向更高的層次。
3軟件工程人才的培養模式和創新
這樣一種人才培養的目標需要通過有效的培養模式和方法來完成,國家設立35所示范性軟件學院也是在探索新型的軟件人才培養方案。通過課程設計或者稱為大作業的任務加強課程實踐,是目前已經普遍采用的做法。
但是,這些課程實踐環節多僅針對單一的課程內容,實踐過程相對實際的項目開發依然有較大的差距。不過這個過程當中,我們的學生也能迸發出許多閃光的創意,展現了他們的獨特智慧。一些學生的課程實踐作品有較高的技術含量并具備相當的應用前景,如果僅在完成課程答辯之后就中止項目的進一步發展,將是非常可惜的。
像Foxmail、FileZilla等軟件都是從小作品開始發展,逐漸獲得市場認可,而獲得巨大成功。現在開源社區的火熱、開源軟件的盛行,也是基于一些計算機程序設計者的許多奇妙的軟件構思和原始作品版本,再加上更多參與者的修改,從而一步步獲得長遠發展并投入到市場應用中獲得成功。Java、Open Office、Apache,尤其是Linux平臺,我們能見到很多這樣成功的范例。
如果能夠設立這樣一個平臺,讓有能力的學生團隊將他們課程實踐環節中的創意和亮點進行匯聚、提煉,并提供更豐富的指導,把它進一步完善和提升,就有可能成為一個好的軟件產品。
但是,如何創造機會和環境讓這些同學來完成這些課程設計后的實踐活動,同時提供一個平臺來展示他們所創造出的極具創意和市場價值的實踐作品,從而得到更多的資源和更大的發展機會呢?
4科技作品競賽的借鑒
北京航空航天大學每年一度的傳統科技競賽“馮如杯”讓眾多北航學生有了展現自己技術知識的平臺,也促使他們將學習應用于實踐,完成優秀的科技作品。
兩年一度的“挑戰杯”全國大學生課外學術科技作品競賽為廣大學生提供了一個更為廣闊的平臺,在“挑戰杯”中涌現出的科技明星更是層出不窮。像這樣有基礎性、連續性和群眾性的實踐活動,能征集到許多高質量的作品,在吸引到更多眼球關注的同時,也能對作品提供更專業的指導,幫助其進一步發展。不僅能夠促進人才的培養,還能催生一批有實際價值的產品項目誕生。
北京航空航天大學機器人所的梁建宏博士,本科時就對機器魚有很強的探索欲。經過自己努力研制的機器魚獲得了北京航空航天大學學生課外科技活動“馮如杯”一等獎,后續參加全國“挑戰杯”再奪桂冠。現如今,當年的小實踐已經立項為國家重點研究課題并作為其終身的研究方向,從而由此派生出更多的研究分支,引起了世人的關注。
聯系ACM競賽對于計算機專業基礎人才培養的積極意義,我們也一直在探討,是否能夠通過開展與科技作品競賽類似的軟件作品競賽活動,來推動復合型軟件工程人才的培養呢?
5期待成功的軟件作品競賽
在近幾年,我們已經可以看到一些軟件作品競賽的出現,但就其規模和影響,仍然非常有限。實際上,軟件作品競賽要想成功,就必須獲得廣泛的企業支持。ACM競賽之所以能夠在國際上得以廣泛的開展,與IBM十五年上千萬美圓的投入,而又極少干涉競賽內容本身無不關系。而我國以往企業舉辦的軟件作品競賽,由于由于國內企業自身的實力限制,一方面在活動的大面積推廣上力不從心,另一方面往往會結合企業需求對軟件作品做出過多的要求,一定程度上限制了學生的參加。
國內ACM競賽的成功,也是源自高校的積極參與。ACM競賽從十多年前進入中國到現在,一直屬于“民間”活動,最初的企業支持也相當有限。但之所以能夠在國內發展到現在的規模,便要歸功于各個高校的積極組織,使得學生能廣泛參與。軟件作品競賽需要學生投入更多的時間和精力完成作品及其展示,高校除了能夠做好宣傳、發動工作之外,還應為學生提供較為寬松的參賽環境,較好地與課程任務結合,以減輕學生的負擔,同時提供相應的資源支持,為學生的參與提供良好的保障。
而在這類軟件作品競賽開展的初期,政府如果能適當介入,提供一定的支持和引導,保證活動組織的質量,讓企業和高校盡快形成良好互動,無疑會對辦好這類活動起到極大的幫助。
6軟件作品競賽的意義
軟件作品競賽的作用不應僅僅看成學生已有的作品拿來出來進行評審和展示的活動,而是應該通過這樣的活動,鼓勵學生創新,把自己的想法付諸于實踐,或者把之前的作品進行更深入的完善和改進,并能夠在競賽的開展過程當中,吸引高校教師和企業專家從科研技術和產業應用雙方面對學生提供豐富的指導和支持。通過實際的項目開發,學生能從中意識到自己在知識基礎上的缺陷并進行彌補,從而拓展了知識面。
軟件作品的競賽更應該為優秀作品提供進一步發展的平臺。學校、企業應該提供更深入的指導,充分發掘學生的創意,調動學生的積極性,讓他們的軟件作品發展為更成熟的、有實用價值的軟件產品。而企業也能從眾多參與者及其作品中發現自己需要的人才和創意,挖掘更廣闊的市場價值,創造經濟利益。又或者,把這些作品提升稱為學生的創業項目,通過活動的平臺展示吸引投資,孵化出新的企業。這將使軟件作品競賽具有更廣闊、深遠的意義。
參考文獻
[1] 賈菡. ACM波及教育[J]. 程序員,2006,(01).
[2] 孫宣東. 從ACM/ICPC看計算機算法設計教學改革[J]. 廣東工業大學學報,2005,5(9).
[3] 李翔昊. 感受ACM-ICPC競賽的教育意義[J]. 計算機教育,2006,(3).