摘要:針對程序設計類教學中存在的問題,在調研ACM/ICPC競賽模式和特點的基礎上,將ACM/ICPC競賽引入到程序設計類教學中,通過建立ACM/ICPC在線評測系統(tǒng)、課堂教學融入ACM/ICPC、實踐教學全程ACM/ICPC化、改革考核手段等方式來實施程序設計類課程的教學改革,并在實際教學應用中取得了一定的成效。
關鍵詞:程序設計;ACM/ICPC
中國分類號:G64 文獻標識碼:A 文章編號:1009-3044(2015)25-0116-02
Based on of ACM/ICPC Reform and Discussion on the Teaching Reform of the Program Design
ZHAO Lei
(Computer Department of Hengyang Normal University, Hengyang 421001, China)
Abstract: In view of the problems existing in the teaching of program design, based on the research of the ACM/ICPC model and characteristics, the ACM/ICPC competition mode is introduced into the program design teaching. Through the establishment of ACM/ICPC online evaluation system, the teaching reform and of ACM/ICPC, full ACM/ICPC of practical teaching and reform assessment methods to implement the program design curriculum teaching reform. In practical teaching and application, some results have been obtained.
Key words: program design; ACM/ICPC
1 引言
目前,程序設計類課程是我國各大高校計算機學院中計算機科學與技術、軟件工程等專業(yè)開設的專業(yè)基礎課程。根據各個專業(yè)要求的不同,課程開設的時間、課時和深度也有所不同,課程主要目標在于培養(yǎng)學生良好的邏輯思維能力、扎實的程序設計能力和一定的研究創(chuàng)新能力[1]。衡陽師范學院作為一所應用型本科院校,遵循培養(yǎng)適應社會需求的高等技術應用型專門人才的培養(yǎng)宗旨,一直在進行程序設計類課程教學方法改革的研究和實踐。學院中程序設計類課程和ACM/ICPC競賽教學中具有豐富教學經驗的老師們,通過深入的思考和學習,不斷地進行教改嘗試,在程序設計類課程教學中引入ACM/ICPC競賽,探索出一條提高程序設計類課程教學質量的新途徑。
2 程序設計類課程教學現狀
2.1學生邏輯思維能力基礎較弱
對于地方性本科院校特別是師范類學校,學生的理科入學成績往往不夠理想,學生的邏輯思維能力也不足。入學后對于理科類課程的學習沒有給予足夠的重視,加上程序設計類課程對邏輯思維能力要求較高,使得學生在學習程序設計類課程的時候感覺非常吃力,難以得心應手地加以應用。
2.2 學生缺乏學習興趣
程序設計本來是一件比較枯燥的工作,如果沒有興趣很難堅持下來。在程序設計類課程的學習中學生由于缺乏興趣,除了上課聽老師講講課,實踐課做做練習外,課余時間幾乎不做練習。而要提高程序設計能力是需要反復地多做練習的。現有的程序設計類課程教學中在如何激發(fā)學生對程序設計的興趣和提高學生的自學能力和主動學習的意識缺乏有效的辦法。
2.3 課程考核模式落后,缺乏激勵機制
當前程序設計類課程考核在很多學校還是主要采用筆試為主的傳統(tǒng)考核模式,在課程總評成績的計算中實踐部分所占的比重很少,有的學校甚至沒有把它算入考試成績。而且考試的內容局限于教材中的知識點,試題型中客觀題比重大,考察思維能力的程序設計題少,缺乏對學生知識結構與實踐技能的綜合考察,不利于學生綜合應用能力的培養(yǎng)和創(chuàng)新精神的形成,最終形成“高分低能”的現象。
2.4 缺乏互助學習氛圍
當前軟件項目的開發(fā)都是以團隊形式實施的,一個軟件人員是不可能掌握所有的專業(yè)知識,項目開發(fā)的成功需要團隊成員之間的合理分工和無障礙溝通。在程序設計類課程教學中,互助方式的學習環(huán)節(jié)非常少,學生往往各自為政,相互之間的交流很少。雖然有些學校在課程設計環(huán)節(jié)采用了分組進行的模式,由于各個學生水平不一樣,造成在具體的設計過程中,往往有些學生只是簡單的掛了個名,并沒有真正的參與,更談不上形成團隊相互學習了。
3 ACM/ICPC介紹
Association for Computing Machiery(簡稱ACM,美國計算機協會)是一個世界性的計算機從業(yè)員專業(yè)組織,創(chuàng)立于1947年,是世界上第一個科學性及教育性計算機學會。ACM國際大學生程序設計競賽(ACM International Collegiate Programming Contest,簡稱ACM/ICPC)是全球規(guī)模最大,最有影響力的大學生程序設計競賽。其目的旨在使大學生運用計算機來充分展示自己分析問題和解決問題的能力。它始于1970年,到2015年為止已經舉辦了39屆。這項國際頂級賽事是大學生智力與計算機解題能力的競賽,是大學生展示水平與才華的大舞臺,是全球高校計算機教育成果的直接體現[2]。
ACM/ICPC要求以團隊的形式參賽,每個隊伍由3名隊員組成。每隊使用一臺計算機,要求選手在全封閉的環(huán)境內(不能有任何通訊設備,可以攜帶任何紙質資料)連續(xù)5個小時對8-11個問題進行解答。競賽采用英文命題,題目涉及面非常廣。需要參賽學生具有扎實的基本功、良好的分析問題的能力、較好的團隊協作能力和壓力下編寫程序的能力。該競賽為學生提供了一個學習和使用程序設計語言和算法的完整實踐模式,讓學生以精通編程為榮,形成一個積極向上的學習氛圍[3]。
4 融入ACM/ICPC競賽的程序類課程教學改革
通過學校近幾年來參與ACM/ICPC競賽的實踐和多年程序設計類課程教學的經驗總結,將ACM/ICPC競賽融入到程序設計類課程教學中。
4.1建立ACM/ICPC在線評測系統(tǒng)
ACM/ICPC在線評測系統(tǒng)一個可以自動評判用戶提交程序是否正確的評測系統(tǒng)。有了這個系統(tǒng)學生就可以通過注冊、登錄后,自己做練習,無需教師人為干預。我們學校自己開發(fā)的ACM/ICPC在線評測系統(tǒng)如下圖1所示。教師保證后臺數據庫的負載和數據存儲的安全,安排學生輪流對系統(tǒng)進行監(jiān)管,保證系統(tǒng)的正常運行。
4.2 課堂教學融入ACM/ICPC
ACM/ICPC競賽是分組的,每個組由三名隊員組成。在比賽中考驗的不僅是每個隊員的思維、知識、心里和意志,還考驗三個隊員之間的團隊合作,要發(fā)揮1+1+1>3的效果。在教學的過程中,將班上的同學類似ACM/ICPC競賽模式進行分組,培養(yǎng)他們的合作意識。并將平時成績轉化為積分,積分以小組的形式給出,學生可以通過以下途徑獲得積分:
(1) 上課主動回答問題或提出問題。
(2) 指出老師或同學程序中出現的問題。
(3) 在學校的在線評測系統(tǒng)做題。
(4) 在學校的在線評測系統(tǒng)的互動版塊幫同學解決問題。
(5) 在學校的在線評測系統(tǒng)中出原創(chuàng)題目等等。
一個學期的平時成績就是積分,積分越多的小組三個成員的平時成績就越高。這樣既提高了學生的學習興趣,又培養(yǎng)了學生的團隊合作精神。
4.3 實踐教學全程ACM/ICPC化
實踐教學是程序設計類課程教學中非常重要的一環(huán),在以前的實踐教學中,一個老師要面對幾十個學生,無法顧及到所有學生,學生寫的程序自己無法判斷對錯,從而挫傷了學生編程的積極性。將實踐教學ACM/ICPC化,學生在做練習時遞交的程序能夠在線即時判斷正確與否,如果錯了會給出相應的錯誤提示,這樣能極大提高學生學習編程的積極性,同時在線評測系統(tǒng)可以放開時間,在實踐課上沒有做完的題目,課后可以接著做,這樣學生不會因為實踐課相隔時間長而忘記上次課所學的內容。
4.4 改革考核手段
將ACM/ICPC融入到考核機制中也是程序設計類課程改革的一個重要內容。我們可以將期末的筆試改為基于ACM/ICPC競賽模式的機試。同時將學生在前面課程教學中獲得的積分以50%的權重加入到課程考核指標當中。這一方面減少了教師的工作量,降低了考核錯誤率,另一方面做到了客觀、公正,更好地發(fā)掘學生的創(chuàng)新能力,提高其對知識點的掌握程度[4]。
5 結束語
本文分析了程序設計類課程教學存在的問題,介紹了ACM/ICPC競賽,通過將ACM/ICPC競賽融入到程序設計類課程教學,對程序設計類課程教學與實踐進行改革。經過這幾年的學校督導組的評價、學生的評教,證明了這種改革能夠推動計算機程序設計類課程的建設,有助于培養(yǎng)學生的邏輯思維、程序設計、團隊合作和協同能力。
參考文獻:
[1] 劉晶,呂艷琳,李尤豐. 基于ACM競賽平臺的程序設計課程教學模式改革的探索[J]. 《江蘇教育學院學報(自然科學版)》,2010(10):73-75.
[2] 王宏,吳文虎. 清華實踐教學“賽課結合”新思路[J]. 計算機教育,2006(7):10-12.
[3] 趙磊,魏書堤,陳堅禎,陳瓊,姚麗君. 普通本科院校ACM/ICPC競賽教學的探討[J]. 電腦知識與技術,2015(2):129-130,136.
[4] 項煒,陳建國,蘇炳均. 以ACM競賽驅動程序設計類專業(yè)課教學改革[J]. 計算機光盤軟件與應用,2012,19(10):253-254.