梁志劍
摘要:針對程序設計類課程教學效果不佳的教學實際,以C語言程序設計課程為例,通過分析歷年試卷,提出加強中間實踐教學過程考核及以程序設計題為主的無紙化期末考核,并從試題庫建設、系統設計思想、軟件功能結構、運行效果等方面介紹無紙化考試平臺。
關鍵詞:動手編程能力;教學質量;無紙化考核方式
引言
C語言程序設計是理工科類專業(yè)的一門必修課程。就當前嚴峻的就業(yè)形勢及社會對計算機操作能力越來越高的要求而言,學校在培養(yǎng)學生程序設計能力方面還有待提高。針對當前的教學現狀,進行本門課程的考試方法改革,即以無紙化考試方式驅動學生加強平時動手能力的訓練,以提高C語言程序設計課程的教學質量。與傳統紙質考試模式比較,無紙化機試考試模式可以很好地考查學生的程序設計能力,同時也能很好地排除考試各環(huán)節(jié)中人為因素的影響,比如評分標準不一致等現象。此外,機試考試也減輕了教師的出題、評閱、統計、分析等工作任務,提高了工作效率。
1教學現狀分析
1.1學生的程序設計能力水平普遍較低
通過對近3年3100份試卷的分析發(fā)現,能夠編寫出完整正確程序的學生人數不足40%,而卷面分數達到合格的人數卻超過了75%,如圖1所示;此外,近3年全國計算機等級考試(二級C)的合格率不超過28%,如圖2所示。這些數據說明學生的程序設計能力與社會對人才的要求還存在一定差距。
1.2傳統紙質考試方式弱化了對學生程序設計能力水平的考查
程序設計語言類課程的考試應著重考查學生的動手編程能力。目前,該類課程的學習效果評價手段多以傳統紙質試卷為主,其中程序設計題僅占20%,弱化了對學生程序設計能力的考查,因此普遍存在卷面合格的學生不能編寫完整正確程序的現象。
一個完整正確的程序往往不能一次就編寫成功,需要不斷地調試,從中發(fā)現錯誤并加以改正,學生在調試過程中不斷鞏固所學內容。傳統紙質試卷考試方式在考查學生調試程序能力方面也存在弱勢。
1.3傳統紙質考試方式不符合全國計算機等級考試改革方向
教育部規(guī)定自2013年開始全國計算機等級考試所有科目均采用無紙化考試方式,學生是否具有計算機語言程序設計能力,是否具有解決實際問題的能力,都不再是紙上談兵。無紙化考試教學改革可提高學生學習的積極性和主動性,培養(yǎng)其實際動手編程能力,提高教學質量。
2改革舉措
針對C語言程序設計課程建立一套5000道試題的試題庫,涵蓋教學大綱規(guī)定的所有知識點,且重點、難點突出,開發(fā)與之對應的無紙化考試平臺,并制定科學合理、切實可行的無紙化考試管理辦法及平時考核機制。
2.1以教學大綱為藍本建設試題庫
根據C語言程序設計課程教學大綱,組織該課程的一線授課教師共同建設試題庫,確保試題內容設置具有科學合理、難度適宜、重點突出、結合實際等特點,能夠全面評價學生的程序設計能力。該試題庫建立過程中,參與教師達到17名,試題類型包括程序填空、程序改錯和程序設計3類,試題數量分別為1000道、1000道、3000道,覆蓋知識點69個,涉及算法26種。
2.2結合軟件工程思想開發(fā)無紙化考試平臺
無紙化考試平臺以提高教學質量及學生的動手編程能力、全面考核學生的程序設計能力、減輕教師出題和評閱等繁瑣工作任務為主要目標,功能主要包括服務器端與客戶端兩部分。服務器端完成試題庫維護、考試參數設置、考試數據文件生成與打印等功能,客戶端完成隨機抽題、考生作答、自動評閱等功能,具體功能如圖3所示。
該平臺的關鍵功能是隨機抽題和成績評定:隨機抽題模塊確保所抽試題覆蓋知識點廣、涉及算法不重復;同時對于程序設計題的成績評定,建立科學合理的評分準則。此外,該平臺注重考
2.3加強平時實踐教學環(huán)節(jié)的考核
考試模式改革的目的不是用機試考試方式簡單地代替紙質考試方式,而是通過考核方式的轉變,扭轉學生對C語言學習的認識,強調利用計算機語言解決實際問題的學習目的,加強動手編程能力的培養(yǎng)。全面考核學生的程序設計能力不能僅依賴于期末考核,還要側重于平時實踐環(huán)節(jié)的考核,只有這樣,學生才能在實踐中不斷積累經驗,牢固掌握知識。
學校已將C語言程序設計課程平時實踐考核成績作為最終成績的重要部分,比例為50%。平時成績的具體考核形式主要有兩種:一是針對每一章設置獨立知識點的試題,各章學習結束后,利用該考試平臺進行章節(jié)測試,隨機抽取一道試題,讓學生利用25~30分鐘作答;第二種形式是以2~3人的組為單位,課下完成一個復合知識點的題目,這類題目考核的知識點既包含學過的,也包含沒學過的,需要學生課下主動查閱資料,尋找解決方法,最終以答辯形式向其他同學匯報,成績由其他同學打分確定。
核學生利用計算機語言解決實際問題的能力,即以程序設計題為主,輔以程序填空及程序改錯題。平臺的建立利用面向對象程序設計方法并結合軟件項目開發(fā)思想,其部分運行界面如圖4所示。
2.4加強程序設計能力的考核
無紙化考試系統既能考核學生閱讀程序的能力,又能考核學生編程調試程序的能力,采用該系統進行期末考試,每份試卷包含3道試題,均為程序設計題,它們所屬章節(jié)不同。本系統將章節(jié)分為3部分:順序結構與選擇結構為第1部分,循環(huán)結構與數組為第2部分,函數、指針及結構體為第3部分。此外,3道試題所涉及的算法均不同,各試題分值分別為30分、30分、40分,試題難度由易到難。這樣既能保證考核知識面廣,又能公正地評價每位學生的程序設計能力。
2.5人性化的考核模式
C語言程序設計課程的教學任務分兩個學期完成,其中第1學期任務量在4400人左右,第2學期任務量在2200人左右。面對眾多的考生,無紙化考試需分批分階段完成,根據制定的科學有效的無紙化考試管理辦法,結合網上預約考試平臺,學生可在規(guī)定的時間段內合理選擇考試時間,實現人性化的考試。具體實施步驟為:課程結束前兩周由教務處發(fā)布考試通知,考試時間一般定于課程結束后的第2周,從周一至周五全天工作時間均可進行考試,考場數量根據本學期考生數量適當增加或減少。學生自收到通知之日起,就可通過預約系統進行考試預約,教務工作人員隨時查看預約情況,合理安排監(jiān)考教師,學生根據預約結果合理安排考前準備進度。
3改革效果
3.1激發(fā)了學生學習的主動性
考試方式的轉變,加強了學生動手編程能力的訓練,學生不再每天紙上談兵,靠死記硬背獲取知識,而是通過上機編寫程序、調試程序,靈活掌握課堂中學到的知識,并舉一反三,收到了事半功倍的效果。學生對本門課程的相互討論增多了,對獲取更多知識的欲望增強了,課堂教學過程中學生主動與教師的交流也增多了。
3.2提高了學生的編程能力
經過近兩年的實踐,本門課程的考試成績有了明顯的提高,全國計算機等級考試(二級C)的通過率增長了約9個百分點。由于C語言程序設計課程是大一階段的必修課,學生通過實踐鍛煉,掌握了程序設計語言類課程的學習方法,在學習后續(xù)的其他類似課程時入門快、效率高,增強了自信心。如數據結構課程,絕大多數學生不會再因為程序設計語言不過關而學不好,可完全將學習重點放在數據的邏輯結構學習中。
3.3減輕了教師的工作量
無紙化考試方式減少了教師考前出題、試后評閱、分數統計等繁雜的工作,同時也避免了由于工作失誤而造成的分數統計錯誤等現象,教師的工作重點完全轉向如何改進教學方法、提高學生的實際動手編程能力和提高教育教學質量。
4結語
加強實踐教學環(huán)節(jié)是學好計算機語言的關鍵所在,機試考核方式驅動了學生對計算機語言的學以致用。下一步的工作是借鑒C語言程序設計課程取得的改革經驗,結合其他各門計算機語言課程的特點,逐步完成Java語言、c++語言等課程的教學改革。