摘 要:本文在分析當前程序設計課程存在的問題的基礎上,結合我校學生程序設計能力和創新能力培養的實際情況,提出了基于ACM競賽模式的程序設計改革的觀點。介紹了基于ACM競賽模式對程序設計課程的教學內容、課程考核方式所進行的改革。
關鍵字:程序設計基礎課程;ACM競賽;教學改革
中圖分類號:TP311.1-4 文獻標識碼:A 文章編號:1674-7712 (2014) 16-0000-01
程序設計基礎課程是計算機專業學生的基礎必修課,也是計算機專業學生學習其他課程的基礎,該課程在整個學科體系中具有重要作用。對于計算機專業以軟件工程應用為培養目標的學生,程序設計能力的強弱是檢驗畢業生是否合格的重要標準,也是學生畢業后從事計算機相關方面工作的基本必備技能。然而,傳統的以語法描述為主線的教學方式、模式化的實驗內容,使學生普遍反映程序設計基礎課程枯燥難學。因此我院在課程教學實施過程中采用了基于ACM競賽模式對教學內容、課程考核方式等做了改革,并取得了良好的效果。
一、ACM競賽簡介
ACM程序設計大賽是大學級別最高的腦力競賽,素來被冠以\"程序設計的奧林匹克\"的尊稱。大賽自1970年開始至今已有40年歷史,是世界范圍內歷史最悠久、規模最大的程序設計競賽。ACM競賽的規則是每隊(3人)使用1臺電腦需要在5個小時內使用C、C++、Pascal或Java中的一種編寫程序解決8或10個問題程序完成之后提交裁判運行,運行的結果會判定為正確或錯誤兩種并及時通知參賽隊。ACM競賽的價值和意義是提倡在壓力較大的情況下,培養學生的創造力、團隊合作精神以解決競賽的問題。
二、傳統的程序設計基礎課程教學過程中存在的問題
(一)理論課程主要以語法為主線,理論知識面面俱到,課堂枯燥,學生沒有學習興趣。程序設計基礎課程是計算機專業的第一門專業基礎課。教師在講授過程中重視語法的講解,課堂內容繁多,不敢進行大膽的知識點講解取舍;不敢進行細節的講解取舍;總認為課堂越細越好。學生上課時感覺內容繁多,枯燥沒有學習興趣。
(二)程序設計基礎課程的實驗課時有限,不能充足滿足學生的編程需要。程序設計基礎課程在院校中課程的理論課時和實踐課時的比例為2:1,學生實踐環節過少,實踐課堂只能完成簡單的驗證性實驗。
(三)實驗內容單一,只是單獨的算法的程序設計,缺少綜合性實驗。首先,傳統實驗教學中,實驗內容大多以章節為單位,以算法為主線,學生通常只把注意力集中在每一個單獨算法掌握中學生的綜合知識運用的綜合性實驗在教學中很少體現。學生的綜合編程設計能力得不到訓練。
(四)缺少課程設計環節,學生缺乏團隊合作的鍛煉。在軟件的開發設計過程中,都是以團隊合作的方式來完成的。程序設計是軟件開發的工具。然后在程序設計基礎的在教學過程中,教學大綱中缺少課程設計環節,這使得學生遇到實際問題,沒有分析問題,解決問題的能力,同時學生沒有團隊合作的意識,不能在程序開發過程中運用模塊化的思想進行分工,學生沒有團隊合作的空間。
(五)考核方式仍然是以筆試為核心,實踐為輔的方式,不能科學的對學生的編程水平給出公正的評價。在教學過程中,對學生的期末試卷進行分析時,常常發現有些學生編程部分得分很少,但依賴理論部分得分,居然也能考試及格。程序設計課程的實踐性非常強,評價方式應該更傾向于實踐能力的考核,否則培養出來的學生根本不能獨立進行程序開發。所以以筆試為核心,實踐為輔的考核方式已經不適應人才的培養。
三、基于ACM競賽模式的程序設計基礎課程改革方案
我院從2007年開始參加ACM的省賽,東北四省賽,以及亞洲預選賽。幾年來的訓練、參賽的經歷使我們意識到,ACM競賽模式體現了建構主義學習理論的基本要素,在學習環境條件的設置、內在動機的激發、團隊合作建立等方面都起到了積極的作用,這種競賽模式為我們的教學改革提供了一種新的思咱。為此我們提出了基于ACM競賽模式的程序設計基礎改革方案,并在實際的教學過程中取得了良好的效果。
(一)以ACM競賽的真題為案例驅動方式來組織教學內容,豐富課堂教學內容,激發學生的學習興趣。程序設計基礎課程是學生接觸的第一門專業課程,學生學習有一定的難度。將ACM競賽中的案例引入課程教學中,激發學生探索研究的興趣,豐富課程教學內容,能夠更好的調節課堂氣氛,教學效果更佳。
(二)增加實驗課的課時,實驗內容增加以ACM競賽題海內容的綜合性實驗。傳統的實驗課程的課時和理論課時的比例為2:1,不能滿足學生實踐的需求,為此增加實驗課學時,使實驗與理論的課時比例達到1:1。同時,在實驗內容方面,參考ACM題海,增加由教師將實驗內容生活化,趣味化,并且含有豐富的知識點的綜合性實驗。這樣可以激發學生的學習主動性和積極性,更好的達到實踐教學的目的。
(三)依托ACM平臺,設立獨立的課程設計環節,培養學生的動手能力和團隊合作精神。程序設計基礎是未來學生從事軟件工程工作的基礎,必須從基礎培養學生的綜合分析問題和處理問題的能力。增設獨立的課程設計,使學生分組完成一個小的軟件的從需求分析到總體設計和詳細設計及運行的全過程,培養學生的動手能力和團隊合作精神。而ACM競賽的模式就是培養學生的團隊合作精神,依托ACM平臺增設課程設計環節,可以有效的激發學生的學生樂趣。
(四)改革考核方式,將ACM模式的黑箱測試做為考核的一部分最終的考核改為筆試、機試、平時成績和實驗累加計分。程序設計基礎課本身實踐性很強,傳統的考核方式不能體現學生的實際編程水平。將筆試和機試有機地結合在一起,考核的重點由對編程知識的考核變為對學生實際動手編程能力和程序調試能力的考核。將ACM競賽中的在線測試系統的成績以權重50%計入機試考試中,在考核學生實踐能力的同時更好的挖掘學生的創新能力。
參考文獻:
[1]劉晶,呂艷琳,李尤豐.基于ACM競賽平臺的程序設計課程教學模式改革的探索[J].江蘇教育學院學報(自然科學版),2010(06).
[2]于世華.基于ACM競賽模式的程序設計教學改革研究[J].呼倫貝爾學院學報,2011(04).
[3]項煒,陳建國,蘇炳均.以ACM競賽驅動程序設計類專業課教學改革[J].計算機光盤軟件與應用,2012(09).
[作者簡介]成桂玲(1981.03-),碩士,講師,研究方向:軟件工程。