費雄偉 周建存 陳偉宏
摘要:針對計算機程序類課程的實踐訓練效果欠佳的問題,分析了問題產生的原因。以問題教學法為基礎,采用ACM競賽模式(國際大學生程序設計競賽模式)來改革計算機程序類課程教學,給出了改革方案的理論依據、具體內容和實施過程。實際效果表明,該改革方案能有效地提升計算機程序類課程的教學質量和教學效率。
關鍵詞:實踐訓練;ACM競賽模式;教學質量;教學效率
作者簡介:費雄偉(1980-),男,湖南祁陽人,湖南城市學院信息科學與工程學院,講師;周建存(1977-),男,湖南寧鄉人,湖南城市學院信息科學與工程學院,副教授。(湖南 益陽 413000)
基金項目:本文系湖南省教育廳教改項目(項目編號:湘教通[2012]401號379)、湖南省高等學校教學改革研究項目(項目編號:湘教通[2011]315號345)、湖南省教育科學規劃院課題(課題編號:XJK011CGD037)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2014)06-0098-02
計算機程序類課程是培養計算機各專業學生學會編程或者完成軟件產品的課程。它的教學成敗關系到學生是否具有計算機專業工作能力,能否滿足市場的需要,能否找到合適的工作。因此在我國各高等院校將其作為核心課程,師資投入也很大。但目前我國的計算機程序類課程存在著如下幾個問題:
第一,程序類課程實踐訓練題型單調。學生往往根據理論教學對應的章節知識點練習書后的練習題。這些練習題存在缺乏對應的應用場景、難度較低、無法發揮學生創造性思維等缺點,造成學生對其興趣不足或者訓練不夠。[1]對于需要提高編程能力的學生而言,他們需要挑戰性的題目來訓練自己。為了吸引學生利用課余時間練習程序,需要有實際應用背景的題目,能激發學生興趣的題目。
第二,程序類課程實踐效果評價不客觀。學生完成程序類課程的實踐練習后,一般由老師檢查實踐練習的結果并進行評價。[2]有時,程序能在幾次運行時保持正確,但程序本身錯誤。以教師只通過有限次地運行程序來斷定是否正確,可能存在著偏頗。所以教師對實踐效果的評價并不科學,存在著某些結果正確但程序錯誤的情況,而學生提交的程序作業種類和版本各異,造成教師評價工作量過大,評價質量不高等問題。
第三,程序類課程實踐缺乏反饋。傳統的程序類實踐課程沒有平臺的支撐,無法統計學生完成的程序存在的問題,也無法知道學生之間的差異,無法發揮實踐反饋的作用。若能利用計算平臺分析學生完成程序作業的情況,找到存在的問題,針對性地加以輔導和講解,對提高學生編程能力的提高很有好處。為了解決上述問題,采用ACM競賽模式改革計算機程序類課程教學,系統地提出方案的理論依據、具體內容和實施過程。
一、ACM競賽模式教學改革
ACM(Association of Computing Machinery)競賽,即國際大學生程序設計競賽,始于1970年,由美國計算機協會(Association of Computing Machinery)主辦的一年一屆的國際性賽事。該賽事的目的是展示大學生分析問題、設計算法、編寫程序、解決問題的綜合能力,同時采用3人一組的形式,也賽出大學生的團隊協作和組織能力。[3]經過30多年的發展,它已成為全球大學生計算機程序能力競賽活動中最有影響的一項賽事。ACM由3名隊員為一組代表所在學校參賽,比賽形式為每隊使用1臺計算機在5個小時編程解決6至10個挑戰性問題。編程可以使用C、C++或Java,完成之后提交給判題系統。判題系統通過運行大量的測試用例來判定答案正誤或其他問題(超時或超內存)并返回給選手。比賽的第一名頒發金牌,要求正確答題數最多且總用時最少(用以區分正確結題數目一致的排名)。以后的排名,先按正確答題數,同正確答題數時按總用時少的方式排序。排名第2和排名第3的分別頒發銀牌和銅牌。基于ACM競賽模式的教學改革指采用ACM競賽的辦法,以靈活地方式組織學生按照ACM判題的方法進行程序設計練習或測試的一種模式,旨在提高學生對編程的興趣、學習效率和評價客觀性。[4]
二、計算機程序類課程實踐教學改革方案
1.方案理論依據
該方案的理論依據來自問題教學法。問題教學法首先由前蘇聯教育家馬赫穆托夫等人提出并倡導。該方法首先由教師根據教學任務設計出教學問題,同時將問題創設一個問題情景,然后,向學生提出教學問題及其情境,激發學生熱情和探索未知的興趣,接著要求學生利用已有的知識水平,分析問題、創造性地解決問題,最后提升為對知識的獲得和能力的鍛煉。[5]
問題教學法相對傳統教學而言,有著明顯的優勢,[5]主要體現在以下三個方面:
(1)學生的教學活動模式方面的優勢。問題教學的學生活動模式為“產生困窘—探索—掌握”;而傳統教學學生活動模式則是“聽—記—練”,顯然問題教學在學生活動模式方面更為主動,更能激發學生的能動性。
(2)問題定位方面的優勢。問題教學法把問題定位為有智力價值的教學材料,并為該材料設置情境,用來引導教學過程,而傳統教學把問題定位為學生接受知識過程要經歷的考驗,用來做作業或考查學業成績。顯然問題教學對問題的定位比傳統教學對問題的定位更為科學和客觀。
(3)教學程序方面的優勢。問題教學的教學程序是首先創設問題情境,再經歷探索,把未知創造為已知,而傳統教學的教學程則相反,首先向學生傳授現有知識,再要求學生把已知應用到未知中去。顯然問題教學的教學程序能滿足人的探索欲望,體會了獲得知識的過程和樂趣,教學程序更為積極。
問題教學法的操作難點主要是對教師的教學技能要求高。這是因為問題教學法,圍繞問題展開,以創造性解決問題為中心,以任務的完成和升華來結束。因此問題情境顯得尤為關鍵,這就需要精心設置問題,并置入一個現實貼切的情境中去,所以對教師而言難度較大,要求也高。對此,教師必須系統地經過這些方面的教學技能培訓。為了解決教師在程序設計類課程中實踐教學環節技能培訓方面的不足,利用ACM平臺,集合各個專業教師和計算機專家的力量,并引入專家判題的形式,為實施問題教學提供了條件和資源。目前北京大學、浙江大學、杭州電子科技大學等都在網上開放了基于ACM模式的在線判題系統(Online Judge System)。[6]教師可以利用它,進行在線的出題,選擇題目進行測試或練習。它的題目數目很多,涉及到計算機程序類課程的各種算法和應用,學生可以自由練習也可以由教師指定題目進行練習,重要的是能夠進行實時的判題,也能給出反饋信息和排名情況。
2.方案具體內容
作為湖南城市學院而言,由于計算機專業辦學時間短,積累和沉淀少,可以利用其他大學的基于ACM的在線判題系統。筆者選擇的是杭州電子科技大學的在線判題系統,因為它的題型適合應用型本科院校的需求,且提供了對學生的引導,幫助其使用和循序漸進地學好計算機編程。[7]改革的課程是筆者開設的計算機程序類課程:C語言程序設計、C++程序設計還有Java程序設計。改革的內容分為平時練習、課堂練習、月末的測試和考試,均在杭州電子科技大學的在線判題系統中進行。
3.方案實施過程
課堂練習按照教學進度完成對已學知識的檢驗和鞏固的目的。其實施過程是教師根據已學和在學的理論部分知識,編寫或選擇匹配的訓練題目,要求學生在上機實踐課時內完成。教師對完成情況進行統計、分析和記錄成績,以此指導下次教學。平時練習由學生自主選擇題目進行練習,教師只規定完成的數目,逐月計算學生平時練習的完成度。月末時,由教師按月度學習進度,編寫或選擇一套測試題目,要求學生按照ACM競賽規則完成一次實戰比賽。教師根據比賽情況分析和統計,以進行總結。學生也體驗到對知識的綜合運用和激烈的競爭,對提供其學習動力,鍛煉其競爭能力大有好處。月度成績好的同學,篩選為學校ACM競賽隊的選手,進行專門地培訓,進一步挖掘學生潛能和激勵學生。期末時,組織所有任課教師,精心組織一次全課程的競賽作為課程的考生成績,讓考試客觀且公平地反映學生的水平。
三、改革效果
經過對信息科學與工程學院(以下簡稱“我院”)3個專業計算機程序類課程3年多的改革,已經看到了較為明顯的效果。一是在湖南省大學生程序設計競賽中成績逐步提升,由幾年前湖南省大學生程序設計競賽中獲得1個三等獎或沒有,提高到在2011年第7屆湖南省大學生程序設計競賽獲得了3個三等獎,在2012年第8屆湖南省大學生程序設計競賽獲得了2個三等獎,2013在湖南省第9屆程序設計競賽獲得了2個二等獎和1個三等獎的佳績。二是學生考取軟件設計師的人數也逐步提升。三是我院的學生就業率在全校名列前茅,2012屆畢業生一次性就業率達到93.5%。可見基于ACM模式計算機程序類課程的教學改革提升了課程教學質量,有效地鍛煉了學生解決問題的能力。
改革的另一個明顯的效果是提升了教學效率。改革所基于的ACM平臺共享了大量優秀的計算機編程類題目,這些題目有情境,有梯度,也能進行客觀判分。這些資源和平臺功能節省了教師的大量時間,提高了教課的效率。同時,學生也能在此平臺上,隨時隨地進行練習、測試和考試,能夠挖掘自己的潛力,系統和循序漸進地進行編程能力的培養,提高了學習的效率。
四、結語
為了適應湖南城市學院“應用型本科院校”的辦學定位,采用問題教學法,在ACM競賽模式下對我院的程序設計類課程進行了改革。該改革改變了計算機程序設計類課程訓練效果不佳的窘境,很好地解決了訓練題型少、評價不客觀和缺乏教學反饋等問題。通過近三年的實施效果表明該改革有效地提升了計算機程序設計類課程的教學質量和教學效率。下一步的工作是將該改革方法在計算機程序設計類的課程設計課程中加以探索和推廣,還有對計算機專業的其他課程也可以進行基于問題教學法的改革方案的設計和嘗試。
參考文獻:
[1]邱修峰.C語言實驗教學考核評價指標及其觀測內容分析[J].電腦開發與應用,2009,22(8):10-11,14.
[2]林巧.基于在線評測系統的C語言實踐教學探討[J].實驗科學與技術,2011,9(6):37-39,50.
[3]張熠,陳榮欽.以ACM為導向構建C語言實驗教學新平臺的研究與實踐[J].臺州學院學報,2009,36(6):70-74.
[4]芶生平,楊鵬,汪小平,等.以ACM/ICPC競賽為載體探索課程體系建設與創新人才培養新模式[J].中國大學教學,2010,(7):71-73.
[5]蕭楓.國外學校教學改革[M].沈陽:遼海出版社,2011:40-46.
[6]李丹,郭俊巍.ACM模式在常規教學中的應用研究與探討[J].吉林農業科技學院學報,2012,21(4):92-93.
[7]車明洙,紀洪波.一種基于ACM程序設計競賽在線評測系統解決方案[J].微型機與應用,2010,(4):11-14.
(責任編輯:王意琴)