蘇小紅 趙玲玲 王甜甜 張衛 傅忠傳
摘要:隨著“一張考卷定成績”逐漸淡出高校歷史,如何采用累加式考試方式客觀、公正地評價學生實踐能力,成為當前高校教學改革的研究熱點。針對這一問題,文章首先討論累加式考試方法的核心和目標、目前累加式考試中存在的難點和誤區以及程序設計課程考試中普遍存在的問題,然后提出建立一套以機試自動評分和實踐能力考核為主的多重累加式成績考核體系,最后介紹實踐效果。
關鍵詞:機上考試;實踐能力考核;累加式考試;課程考核體系
0 引言
近年來,與教學方法改革同步進行的考試方法改革引起各高校師生的廣泛關注。很多學校實行重能力、求創新的累加式考試方法,這使得個別指望教師考前畫重點、突擊復習的學生沒有了用武之地,“一張考卷定成績”也逐漸淡出高校,成為歷史。為什么要結束“一張考卷定成績”呢?因為其弊端不言自明。有的教師幾年甚至十幾年出的試卷內容沒有變化,學生摸清規律后直接找到以往試卷就輕而易舉地考試過關;有的學生平時不認真聽課甚至逃課,考前期望教師畫重點,然后自己臨時突擊一下,就能輕松通過考試:還有的學生為了應試,把工夫都用在死記硬背的內容上,以獲得高分……諸如此類的現象,顯然與能力培養的初衷背道而馳,因此必須徹底廢棄“一張考卷定成績”的做法。
考試方法改革并非孤立,我們在大力推進教學方法改革的同時,必須使得考試方法改革能夠與教學方法改革同步進行,因為二者本身就是相輔相成的關系。一方面,不從根本上改革教學方法,考試方法改革就是一句空談。從根本上改變照本宣科的灌輸式教學方法,實行啟發式教學方法,才能實現從注重知識目標向注重能力目標的轉化,是否達到這一目標需要通過與之相配套的累加式考試方法檢驗。另一方面,由于在一定程度上考試方法就是學生學習的“指揮棒”,因此實行累加式的考試方法可以促進教師教學方法和學生學習方法的轉變,促使教師深入思考“教什么、如何教”的問題,同時引導學生的思想觀念和學習方式從“要我學”轉變為“我要學”。因此,實行教學方法和考試方法改革,對于提升教學質量和提高學生培養質量具有重要意義。
1 累加式考試方法的核心和目標
推行累加式考試方法的核心和目標是引導學生學會自主學習,通過自主學習激發創新意識,提升創新能力。累加式考試方法的實質并不僅僅是考試形式的變化,而是通過大作業、小論文、口試、筆試等多種考核方式綜合考查學生的學習效果,讓學生在完成大作業、小論文等的過程中自主學習。因此,推行累加式考試方法切不可舍本逐末,重形式而輕實質。
考試方法改革要求教師在貫徹和實踐累加式考試方法的過程中,真正抓住累加式的實質,無論是大作業、小論文,還是結業考試,都應從引導學生自主學習和考查學生能力的目標出發,考試題目必須具有能夠讓學生自主創新和發散思維的空間,杜絕死記硬背。這就意味著設有“標準答案”的、死記硬背的題目在累加式考試制度下將不再有容身之地,取而代之的是真正有思考和研究價值的題目,重能力、求創新的考試題目不一定都是教師在課堂上教的。總之,學生掌握的知識和具備的能力,都不是教師在短短幾十個學時的課堂上教出來的,而是在教師的引導下通過學生自主學習獲取的。
2 目前累加式考試中存在的難點和誤區
在實行累加式考試方法改革的過程中,經常聽到學生說現在完成一個大作業不容易,要查好多資料;也會聽到教師說現在給學生出一套考題很不容易,要考慮知識、能力、素質等方方面面的因素,還要盡量避免與歷年的試題重復,出題和判卷都要花掉很多時間。不可否認,實行累加式考試顯然比“一張考卷定成績”難得多,它對教師提出了更高的要求。教師和學生都切身體會到“不容易”,而與“不容易”相伴而來的必定是重能力、求創新的累加式考試方法的不斷推進與深入,是學生自主學習的主動性和綜合實踐能力的不斷提升與拓展。為了引導學生自主學習,提高綜合實踐能力,我們必須下決心,深入推進重能力、求創新的累加式考試方法。
“一張考卷定乾坤”的時代早已過去,然而目前名目繁多的累加式考試就一定能真正客觀、公正地考核學生的實際能力嗎?累加式會不會重新演變為新形勢下的“紙上談兵”呢?其實解決問題的關鍵并不在于是否采用累加式。對于以實踐為主的課程,顯然學生的實踐能力考核應該成為重中之重,然而考核學生實踐能力的難點在于在現有條件下很難做到客觀公正,一是因為目前缺少一些實用的機試自動評分軟件,二是因為迄今為止我們還無法有效解決學生抄襲問題,反抄襲已成為當今教學中不可回避的問題,并且國外大學也同樣存在作業抄襲問題。
2003年11月,美國Naval Postgraduate School的Peter Denning教授在CACM上發表的GreatPrinciples of Computing一文中除了介紹大學第一年計算機課程的構建、多學科的融合以及加強美國中小學學生抽象思維與寫作能力的訓練等問題外,還特別指出:在美國大學第一門計算機課程(主要指程序設計語言)的學習過程中,有35%-50%的學生中途放棄,另外還有不少學生通過抄襲或作弊的方式完成課程。可見,機試只能解決“知識、能力”教育相結合的問題,如果學生的抄襲行為不能得到有效抑制,那么“知識、能力、素質”教育相結合將無從談起。因此,如何通過誠信、理想、道德和創新素質教育,提升課程教學的文化內涵,引導學生“學思融合、行知統一”,使學生不僅學會知識,還學會自己動手動腦,尤其是學會做人做事,這才是計算機課程教學真正需要研究和解決的問題。
綜上所述,在推進累加式考試方法的過程中,應避免陷入以下兩個誤區:一是避免機械理解累加式的涵義,重形式輕實質;二是避免千“課”一律,照搬其他課程考試方法。只有避免這些誤區,才能在考試方法改革中改出實效,真正將重能力、求創新的考試方法改革落到實處;只有堅定不移地推進累加式考試方法,才能培養出符合國家和社會需要的創新人才。顯然,所有課程的考試方法改革不能都是一種模式,采用筆試、口試還是機試,應該根據課程本身的特點和性質決定,不可一概而論。同時,我們也不希望任何教學改革都要以增加教師的負擔為代價,如何能在不增加甚至減輕教師工作量的前提下,依然達到“引導學生自主學習、提高綜合實踐能力”的目的,正是我們需要思索和研究的問題。endprint
3 目前程序設計課程考試中普遍存在的問題
經我們研究分析,在程序設計考試中普遍存在的問題有以下幾個方面:(1)對于程序設計課程而言,卷面筆試等于紙上談兵,無法真正考核學生實踐能力尤其是程序調試能力;(2)教師評閱試卷無法避免人情分,缺乏客觀公正性,并且成績統計周期長、效率低、易出錯;(3)現有的機上考試系統往往僅測試運行結果,不考查程序的結構和語義,對程序輸入輸出限制嚴格,有語法錯誤的程序只能給0分,因此學生對主觀編程題的評分滿意度低;(4)教學與科研分離,教學資源建設低水平重復,無法支持教學和考試方法改革。
為解決上述問題,我們將教學改革的指導思想定位為:以學生為本,以提高學生的計算思維能力、實踐動手能力和自主學習能力為目標,在該目標驅動下,借助精品資源和網絡讓教與學化繁為簡,將課堂教學與網絡教學相結合、課內教學與課外教學相結合、知識傳授和能力培養與素質教育相結合,更新教學內容,改革教學方法和考試方法,變應試為應用,變被動為主動,激發學生的自主學習意識,實現“以教師為中心”向“以學生為中心”的轉變。
4 建立以機試自動評分和實踐能力考核為主的多重累加式成績考核體系
針對c語言程序設計課程實踐性較強的特點以及上述考試方法改革的基本思路,我們建立以機試自動評分和實踐能力考核為主的多重累加式成績考核體系,在校內率先完全取消卷面筆試。對于該課程而言,機上考試更能真實全面地考核學生對知識的靈活掌握和綜合運用能力,尤其是程序調試能力,并且還能降低考試成本,更符合當今節約型社會對低碳環保的要求。
機上考試和自動閱卷評分的好處不言而喻。從實踐的角度看,它將“上機實驗”和考試很好地結合在一起,有利于更全面地考核學生的編程實踐能力,提高學生上機編程的積極性,促進學生編程能力的提高。機器自動閱卷并實時給出評分,不僅能提高教師閱卷的效率,而且還能避免人情分,增加評分的透明度、公正性、準確性和實時性。從教師的角度看,采用機器自動閱卷代替人工閱卷,有利于減輕教師閱卷的負擔,但程序設計課程實行機上考試的最大難點在于實現主觀編程題的自動評分。
目前國內很多高校要么采用“機上考試+人工閱卷”方式,要么采用“機上考試+測試用例驅動的自動閱卷”方式。測試用例驅動的自動閱卷采用的是動態測試方法,系統根據教師給出的測試用例,通過運行學生程序后得到的結果評判程序的正確性。這種方法沒有考慮程序是怎樣實現編程任務的,也不能從程序文本的語法結構和語義角度衡量學生程序與正確答案的接近程度,對于有語法錯誤的編程題只能給0分,因此這種評分方法不符合教師人工閱卷的習慣。
為了克服該考試方法的缺陷,我們在國家自然科學基金項目的支持下,從分析理解程序源代碼的角度,基于程序理解技術先后研制開發了基于c/s結構的c語言編程題自動評分系統和基于B/s結構的c語言編程題自動評分系統。從機器閱卷評分的效果看,這兩套系統都能實現c語言編程題的機上考試和自動閱卷評分,不僅能對客觀題自動評分,還能對c語言主觀編程題自動評分,更重要的是評分時不僅能測試程序的運行結果,而且還能分析程序的結構和語義,衡量實現編程任務的正確程度,對于不完整和有語法錯誤的程序也能給出合理的分數,因此更符合教師人工閱卷的結果。此外,考試實時給出評分,有助于避免人情分;系統中增加反抄襲和查雷同的功能,使考試成績的評定更加客觀、合理和公正。
我們利用該系統改革了c語言程序設計課程的考試方法,以考帶學,目的是激發學生上機編寫和調試程序的積極性,同時改變傳統的以“以人工評分為主”的主觀評價體系。以機試自動評分和實踐能力考核為主的c語言程序設計課程的多重累加式成績考核體系如圖1所示。
具體地,我們采取如下措施。
1)實行多元化的課程考核方式。
為了使成績不是簡單的累加,除了注重平時的分層、階梯式的作業和實驗成績外,還包括分階段的期中和期末兩次機上考試成績,此外還設置了一定比例的鼓勵附加分。從“夯實基礎、綜合設計、創新應用”3個層次設計實驗教學內容,實驗有4種類型:仿寫改寫基礎型、趣味設計鞏固型、綜合設計應用型、獨立思考探索型。其中,綜合設計應用型讓學生從學生成績管理系統V1.0到V6.0,通過多次實驗逐步完成一個較大規模的系統編程。
全部作業和實驗成績均由基于Moodle開發的具有在線評測與雷同判定的網絡教學平臺的在線評測模塊給出。機上考試成績由期中和期末兩次機考給出。考試不是目的,我們的目的是為學生提供“由考試發現自身不足,然后在考試后通過努力并在下次考試中提高成績”的機會,通過考試引導學生多上機、多實踐,進而提高編程實戰能力。
附加分的取得有多種渠道。一方面,學生機試時完成具有一定難度的附加改錯題,可以得到一定的附加分;另一方面,平時在網站論壇上積極發言的學生可以得到一定的自主學習鼓勵附加分。此外,學生利用業余時間獨立完成具有一定難度的獨立思考探索型或創新型實驗,也可以獲得一定的創新實驗附加分。
2)實行多重累加式的成績評定方法。
課程最終的成績由“學習過程相對分+機上考試成績+附加分”累加得到。其中,學習過程相對分由“實驗相對分+作業相對分”累加得到,機上考試成績由“期中機考成績十期末機考成績”累加得到,附加分由“期末考試附加題附加分+課外創新實驗附加分”累加得到。
3)實行以機試為主的評價體系。
利用C語言編程題自動評分系統使機上考試對主觀編程題的自動閱卷評分更加客觀、公正,不僅能根據程序測試結果進行評分,還能考查程序結構和語義,衡量實現編程任務的正確程度,并且對有語法錯誤的程序也能進行評分,同時加強了對考試全過程的監控,實時監測學生插拔U盤次數,禁用學生機的USB口并對學生插拔u盤次數進行報警,從以往的反抄襲轉變為利用先進的手段防止學生作弊,使反抄襲不再成為“馬后炮”。endprint
5 多重累加式成績考核體系的實踐效果
2004年,我們利用基于C/S結構的C語言編程題自動評分系統V1.0,在學校的部分院系進行c語言程序設計課程的考試試點,2006年在全校范圍內進行考試方法改革。自2012年春季開始,我們在全校c語言程序設計課程的考試中改用“基于B/S結構的C語言編程題考試自動評分和題庫管理系統”。在圖2所示的2012年春季的樂學網活躍課程排行榜中,位居前10的課程中有8位課程主講教師(蘇小紅、郭萍、張衛、李希然、趙巍、張洪志、侯俊英、傅忠傳)來自c語言課程組。
自2012年春季學期開始,筆者在實驗和作業成績考核中采用了多重累加式成績考核體系,成績統計分析結果表明成績符合正態分布,成績統計結果如圖3所示。
自2006年以來,我們已經累計8年共16個學期在全校范圍內實行C語言課程考試改革,每年參考人數約3000人。該考試系統先后推廣到國內100多個教學單位試用,具有很好的應用前景。
6 結語
筆者提出的考試改革方案具有如下幾個創新點。
(1)解決了以往程序設計考試紙上談兵、筆試無法考核學生實際動手能力的問題,通過對學生上機編程實踐能力尤其是錯誤程序調試能力的考核,更加全面客觀地評價學生的實際編程能力和水平,避免高分低能。
(2)機試方式使得考生在提交試卷后能夠實時獲得機器的評分,提高了教師閱卷的效率,解決了人工評分易出現的人情分、易出錯、周期長和效率低問題,而且相對于筆試而言節省了紙張,既降低了考試成本,又符合目前國家倡導的厲行節約、綠色低碳環保的理念。
(3)評分方法先進,準確實時。主觀編程題是系統評分的難點問題,我們研制的c語言編程題自動評分系統的評分方法不同于國內現有的只考查程序運行結果的評分方法,該方法不僅能根據程序測試結果進行評分,還能考查程序結構和語義,衡量實現編程任務的正確程度,并且能對有語法錯誤的程序進行評分,使評分結果客觀、公正,符合教師人工閱卷的結果。
(4)系統提供考試全程實時監控考生u盤作弊行為的功能,對于插拔u盤的考生能夠準確定位并及時報警,有助于提高考試的公平性。
(5)在考試結束后,系統能夠對成績和試題難度進行統計分析。此外,系統還具有試題管理、題庫管理、用戶管理、角色管理等功能。
總之,我們最大的感受就是研究成果反哺教學,才能讓教學成果更出色。
(編輯:宋文婷)endprint