[摘 要]針對C程序設計課程目前的考試方式存在的問題進行了分析,提出關于信管專業C程序設計考試改革的設想與思路,制定出以提升實踐能力為主線的考核方案,并且在實際教學中進行了初步實施,取得了良好效果。
[關鍵詞]C程序設計考核方案 實踐能力
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2013)24-0080-03
信息管理與信息系統專業是一個交叉性學科,以信息技術為基礎,以信息管理為目標。如何構建科學、全面的考核體系,以充分發揮考試的評價功能,實現教學目標,是教學過程中需要深入研究和探討的重要課題。
在對C程序設計教學的探索過程中,根據課程的特點、結合學生的實際情況,本文提出關于C程序設計考試改革的設想與思路,制定出以提升實踐能力為主線的考核方案,并且在實際教學中進行了初步實施。
一、考試現狀分析
信息管理與信息系統專業的C程序設計長期以來所采用的考核方式是“平時成績+實驗成績+期末考試成績”,其中平時成績占10%,主要考查學生的出勤和作業情況;實驗成績占20%,主要根據學生的上機考勤、程序正確率及實驗報告完成情況綜合評定成績;期末考試成績占70%,采用閉卷筆試,題型有選擇、填空、判斷、閱讀程序及編寫程序等題型。這種考試方式存在以下幾個主要問題:
(一)考試形式單一
C程序設計期末考試采用的是閉卷筆試。閉卷筆試這種考試形式易于操作、便于管理,但存在很大的不足。試卷中選擇題、填空題、判斷題等較多,編程題比較少,難以體現該課程注重實踐動手能力的特點。
(二)考試內容重知識輕能力
C程序設計課程強調實踐性,必須設置對實踐能力的考核。但傳統的考試考查的多為記憶性的基本知識。不少學生平時學習松散,考前依賴老師劃重點,背誦習題答案。這種考試純粹靠死記硬背,缺少靈活性,而且容易滋生作弊現象,也限制了學生創新能力的發展。
(三)考核成績評定不科學
C程序設計課程考試大多只有期末考試,也有院校在課程中期加一次期中測試。這樣的考試不能充分發揮考試的診斷作用。對教師來講,不能檢測出教師的教學情況,無法搞清教學目標與實際效果之間的差距,不管學生學懂了多少內容,只管自己是否完成了教學任務,最后考試中發現的問題,閱卷中發現的不足也無法再彌補了;對學生來說,平時不知道自己的學業情況,只能到期末考試時見分曉。平時成績所占比重少,以期末考試一次考核的成績確定學習效果,致使一部分學生平時不努力,考試前才突擊復習,考試成績很難反映學生學習的真實水平,考試方式也不利于激發學生學習的積極性和主動性。
二、以提升實踐能力為主線的全方位、多層次、多途徑考核方案
新的C程序設計考核方案的建設目標主要是針對現有C 語言考核方法的不足,提出一個利用網絡教學平臺、在線測評系統及各種教學資源,實施多層次、多途徑的C程序設計考核方案,以保證考核公正、有效、科學性,達到以考促學的效果。
為順利實施該方案,筆者及所在教學團隊開發了“C程序設計網絡教學平臺”,在該平臺中有教學資料、課程管理、答疑討論、在線測評、試題庫等模塊。新的考核方案著眼于“以考促學”,利用網絡教學平臺加強在線考核,實現考核的持續性。具體方案如下:
(一)在線作業提交、管理和批改,杜絕抄襲現象
原有的考核方式中,對實踐能力的評價主要體現在上機實驗環節,教師會根據學生編寫程序的運行情況和最終提交的實驗報告綜合評定成績。對程序運行情況的審查主要靠教師人工審查,即在學生編完程序之后,通過運行、現場提問等方式基本能判斷出學生對程序的理解程度,這種方式在學生數量比較多的情況下就無法實施了,而且也不能杜絕抄襲現象。
“C程序設計網絡教學平臺”中的在線測評模塊參考了ACM 在線評測系統,通過該功能模塊可在線接受學生作業提交。該模塊提供對在線作業的自動批改,能給出成績等級,并可給出意見反饋。為了方便任課教師掌握作業的具體出錯情況,教師也可選擇手工批閱,并在線給出反饋評語。對于抄襲現象,通過該系統可進行多份作業的比對,及時發現抄襲情況,并給相關學生發出提示信息。上機實驗完成情況可作為平時成績的重要參考依據,并按一定權重計算具體分值。
(二)重視學習過程,增加階段性考核
在教學過程中,大家都有這樣的體會:程序設計不是學會的,而是編會的。必須通過不斷上機練習,才能達到良好的學習效果。為了提高學生學習的自主性,有的學校通過增設一次期中考試來加強對學習過程的管理,但C程序設計課程內容前后銜接緊密,如果僅僅增設一次期中考試,由于考試在最終的課程成績中所占比重比較大,學生會突擊復習,導致影響對新知識的接受,甚至最終影響到整個課程的進度。另外,C程序設計的核心是要讓學生學會分析問題,并通過程序解決相關的應用問題,因此為培養學生上機編程的能力和興趣,應增加簡單易行的階段性考核。“C程序設計網絡教學平臺”中的在線測評模塊除了可以輔助平時的實驗作業管理外,還可設置在線考試,在限定時間內采用多題選做的方式,進行階段性考核。機器根據程序的運行結果進行自動評分,這樣增加階段考試也不會給教師帶來額外負擔,同時還可以提高學生上機編程的興趣和動力,注重編程的嚴謹、準確性。
以提升實踐能力為主線的C程序設計課程考核方案設計了3個階段的考核,第一階段為基本編程技能考核,第二階段為高級編程技能考核,第三階段為開拓創新技能考核,每個考核階段的考核內容如下:
第一階段,基本編程技能考核。基本編程技能是指學生能夠熟練地使用開發環境進行程序的編寫、調試及運行。這一階段主要考核學生是否能熟練應用C程序語言中的控制結構、各種語句及常見系統函數等,強調的是對基本計算思維和編程思想的培養,使學生具備初級應用問題求解的能力。
第二階段,高級編程技能考核。高級編程技能是指學生能熟練應用數組解決應用問題;能深入理解指針;掌握模塊化程序設計的思想并能使用函數實現;能熟練使用文件操作;利用系統所提供的相關函數能實現簡單的windows圖形界面應用程序。
第三階段,開拓創新技能考核。開拓創新技能主要考查學生是否能借助于程序設計來解決實際應用中較大、較復雜的問題。
在“C程序設計網絡教學平臺”的試題試卷庫模塊下,設計了基本編程技能題100道,高級編程技能題60道。在相關課程內容講授完畢后,學生可自行練習這些題。第一、二階段的考核采用的方式是通過“在線測試”模塊對每個不同的學生生成不同的試卷,每份試卷會從題庫中抽取5道這一等級的編程題,采用選做3個題的形式,要求在規定時間內完成,在線提交、自動評分,體現了考核的公正性和客觀性。
第三階段的考核如果C程序設計課程配套有課程設計環節,可采用課程設計來考查學生的開拓創新能力。任課教師可提出對課程設計所采用的技術、需要完成的工作量的要求,然后提供給學生多個設計題目,也允許學生自主選題,學生最終應提交能解決某一個實際問題的程序。如果沒有課程設計環節,這部分的考核也可采用其他方式,比如鼓勵學生參加各類程序設計競賽、參加C程序設計相關的課外活動等。
三次考核穿插在整個課程的學習過程中,尤其是課程設計,可貫穿整個課程的學習,使學生始終都有一種主動學習的動力,把原本期末考試的壓力分散到平時課程的學習過程中,很大程度上杜絕了傳統考核方式下平時學習松散、考前突擊的不良學習方式,確保課程的每個環節都能達到良好的教學效果。
(三)充分利用各種資源設計多途徑、多層次考核方式
傳統的C語言考核方法多為“平時成績+期末考試成績”,其中平時成績大約占20-30%,期末考試成績占70-80%。平時成績主要由考勤、平時作業和課堂表現等組成,這樣的平時成績無論從考核點、考核方式,還是考核層次上,都顯得太單調。新的考核方案可充分利用網絡教學平臺,通過多種途徑、多個層次來考核學生的平時成績,主要考核點包括:
1.利用“試題庫”模塊,學生可以隨時、隨地進入網絡教學平臺進行練習,打破了傳統實驗環節的時空限制。任課教師可設定題目的難度系數,系統可根據完成的題量多少和題目的難易程度打分,并根據分數進行排序。這樣能有效地激勵學生多做題,選擇做難度系數高的題。到學期末時,最終排行情況可作為平時成績的重要參考依據。
2.鼓勵學生參加各種程序設計競賽,比如ACM程序設計競賽。競賽取得的成績,可作為第三階段考核的參考依據。這樣不僅能提高學生解決問題的能力,更能最大限度地調動學生學習的主動性和積極性。
3.參加C程序設計課外活動的次數及所取得成果。學校的開放實驗室、教師的相關科研項目、校企合作的實驗室都會提供很多可用C語言來解決的應用問題,學生參加這些C程序設計相關課外活動的次數可作為平時成績的一種參考依據,而所取得的成果可作為第三階段考核的參考依據。
(四)注重考核編程實踐能力 合理分配成績比例
在新的考核方案中,整個課程的成績比例為:期末考試40% ,三次階段考核30%(每次考核10%),平時成績30%。其中階段性考核均為上機考試,直接考核學生的編程實踐能力,平時成績也主要依據學生的實踐能力和所獲成果來打分,最后的期末考試中也大約有80%的題目是考查編程能力的。有的學校建議取消最后的期末考試環節,筆者認為,階段性考核并不能反映學生對整門課程知識的掌握程度,所以保留了期末考試,但縮減了其分值比例,只占了40%,這樣學生在最后考試的時候壓力不會太大,因為平時成績和階段性考核,平時也不能太松散,有效地保證了學生學習的持續性。
(五)設置考后交流環節 解決遺留問題
在以往的考試和教學方案中,期末考試是最后一個環節。教師批改完試卷后通過試卷分析,可知道學生對課程的掌握情況,如果發現教學中有所不足,可在以后的教學中加以改進。但對于學生來講,考完試后基本就不再關注這門課程了,沒有掌握的那些課程內容也就沒有機會再去學習了。新的考核方案中設置了考后交流環節,具體形式為:專門設置兩個課時,在教師批改完試卷后,利用此課時根據試卷中的共性問題再給學生進行講解;共性問題講完后,再進行個性問題的解答,可采用答疑的方式進行一對一的解答。這種方式消除了傳統考試中存在的考試中發現的問題無法探究,閱卷中發現的不足也無從彌補的弊端。
三、方案實施效果
以提升實踐能力為主線的C程序設計考核方案已在北京信息科技大學信息管理學院的信息管理與信息系統專業12級的教學中初步實施,這種考核方案對學生和教師都產生了很大的影響,取得了良好的教學效果。表1是沒有實施新考核方案的信管1101-1106班和實施了新考核方案的信管1201-1206班的情況對照表:
表1 C程序設計考核方案實施前后效果對照
■
根據C程序設計網絡教學平臺的統計,每個學生一個學期完成的編程練習題平均數超過了80,基本編程技能得到了很好的訓練。對比結果顯示,實施了新的考核方案后,不但增加了考核點,提高了考核的全面性和科學性,而且極大地調動了學生對C 程序設計的學習熱情,有效提高了動手編程能力。新的考核方案還實現了考核的持續性,通過減少一次性考核的比重,增加階段性考核,給了學生平時學習的動力。同時,教師在教學過程中也不會再糾纏于語言語法的細枝末節,而更加注重培養學生的編程實踐能力。
[ 參 考 文 獻 ]
[1] 唐學忠,費賢舉,莊燕濱.“面向對象程序設計”考試改革的探索與實踐[J].常州工學院學報,2011,(Z1).
[2] 謝滿德.C語言程序設計的網絡化立體式考核機制[J].Second International Conference on E-Learning, E-Business, Enterprise Information Systems, and E-Government,2010:36-38.
[3] 齊文.基于ACM競賽理念的C程序設計教學改革[J].軟件導刊,2011,(11).
[4] 杜承烈,姜學鋒,劉君瑞.程序設計課程考核體系研究[J].計算機教育,2013,(1).
[責任編輯:左 蕓]