摘要:對于以案例教學(xué)為主、項目驅(qū)動的綜合編程實踐類課程,其教學(xué)目標(biāo)是培養(yǎng)學(xué)生對實用軟件項目的綜合分析、設(shè)計和開發(fā)能力,強(qiáng)調(diào)學(xué)生綜合實踐能力的培養(yǎng)。針對此類課程,文章分析了傳統(tǒng)考核方式存在的不足,并基于改革實踐,介紹答辯考核方式的設(shè)計思想、實施過程和效果,為編程實踐類課程考核方式的改革提出新的思路。
關(guān)鍵詞:編程實踐類課程;考核方式;答辯考核;案例教學(xué)
目前,軟件行業(yè)發(fā)展迅速,軟件開發(fā)技術(shù)和工具日新月異,為適應(yīng)軟件技術(shù)的快速發(fā)展,軟件技術(shù)人才的培養(yǎng)在人才培養(yǎng)方案、課程體系、教學(xué)模式的改革,乃至具體的課程設(shè)置及考核方式選擇中都面臨新的挑戰(zhàn)。眾多的軟件學(xué)院軟件技術(shù)類人才的培養(yǎng)目標(biāo)通常是“培養(yǎng)具有較強(qiáng)編程能力和軟件工程能力的應(yīng)用型人才”,即強(qiáng)調(diào)學(xué)生綜合實踐能力的培養(yǎng)[1]。培養(yǎng)計劃中會存在很多的編程實踐類課程,如我院軟件技術(shù)(.Net方向)和計算機(jī)信息管理專業(yè)開設(shè)的C#程序設(shè)計(上、下)、C#應(yīng)用程序開發(fā)、基于C#的管理信息系統(tǒng)開發(fā)、ASP .Net程序設(shè)計等;軟件技術(shù)(Java方向)開設(shè)的JAVA程序設(shè)計(上、下)、JAVA應(yīng)用程序開發(fā)等[2]。
筆者作為C#程序設(shè)計課程組的負(fù)責(zé)人,一直從事課程群的教研工作。課程組任課教師經(jīng)過幾年來不斷的摸索和實踐,總結(jié)出了一套以答辯方式考核綜合編程實踐類課程的科學(xué)、可行的方法體系。
1傳統(tǒng)考核方式存在的問題
傳統(tǒng)的考核方式有筆試、機(jī)試、筆試+機(jī)試。對于上述編程實踐類課程,通過筆試或上機(jī)考試已經(jīng)無法準(zhǔn)確評價學(xué)生對這類課程的掌握情況。例如,C#應(yīng)用程序開發(fā)課程是軟件技術(shù)(.Net方向)第三學(xué)期的課程,在之前的兩個學(xué)期里,學(xué)生已經(jīng)學(xué)習(xí)了C#程序設(shè)計(上、下)兩門基礎(chǔ)課程,已經(jīng)掌握了C#語言所有的基本知識點。C#應(yīng)用程序開發(fā)課程主要是訓(xùn)練學(xué)生如何使用已掌握的C#語言正確、高效地進(jìn)行企業(yè)級應(yīng)用軟件的設(shè)計與開發(fā)。課程中涉及到的都是成百上千行代碼的中型項目實例,通過這些實例向?qū)W生傳授多種在大型應(yīng)用軟件開發(fā)過程中用到的編程經(jīng)驗、技巧和方法,如軟件設(shè)計模式、網(wǎng)絡(luò)編程與多線程結(jié)合、游戲開發(fā)技巧等。
對于C#應(yīng)用程序開發(fā),我們在第一屆學(xué)生中采取了“筆試(50分)+機(jī)試(50分)”的考核方式,但結(jié)果并不令人滿意。因為這門課程中需要讓學(xué)生掌握的經(jīng)驗和技巧只能體現(xiàn)在大規(guī)模編碼的過程中,僅僅通過選擇題、填空題、簡答題來考核,是不科學(xué)的,即使是編程題也不能很好地考核到這些知識點。畢竟筆試這種紙質(zhì)答題方式的編程題允許學(xué)生書寫的代碼量太少了,而上機(jī)考試的時間又很有限,出太大的題目學(xué)生做不出來,不可能全面考核到學(xué)生各個方面的技能掌握情況。
盡管完全機(jī)試的考核方式從一定程度上可以考查出學(xué)生的編程能力,但仍然存在一定的片面性和局限性。一方面,課程的內(nèi)容包括圖形圖像處理、數(shù)據(jù)庫應(yīng)用、網(wǎng)絡(luò)編程等多個方面,如果有些學(xué)生只對其中一個方面有很深入的研究,而在其他方面都較差,當(dāng)機(jī)試題目不是其擅長的方面,就會導(dǎo)致其考試成績較差,這種考核方式顯然具有很大的片面性。另一方面,采用完全機(jī)試的考核方式,由于考試時間的限制,只能出與課上講過的知識點相關(guān)的題目,不可能出一些目前較流行的但在課上沒有涉及到的應(yīng)用題。但是有些同學(xué)自學(xué)能力和愿望很強(qiáng),對目前流行的新技術(shù)非常感興趣,并做了大量、深入的學(xué)習(xí)。如果機(jī)試題目沒有涉及這些技術(shù),這些學(xué)生的努力就沒有機(jī)會得到老師的認(rèn)可,不能反映在自己的成績單上,這顯然是考核方式本身具有的局限性。
所以,上述傳統(tǒng)的考核方式,對于強(qiáng)調(diào)綜合編程實踐能力的高級編程類課程是不適用的,不能夠科學(xué)、全面、客觀地反映出學(xué)生的實際編程能力。
2答辯考核方式的設(shè)計思想
為了解決傳統(tǒng)考核方式存在的各種問題,課程組的所有教師進(jìn)行了深入地討論,很多老師提出:考核方式不能孤立于教學(xué)環(huán)節(jié),不能讓學(xué)生覺得學(xué)習(xí)是學(xué)習(xí)、考試是考試,從而產(chǎn)生平時不努力,考前突擊的僥幸心理。對于C#程序設(shè)計(上、下)這樣的基礎(chǔ)課程,教學(xué)重點就是C#語言的基礎(chǔ)知識,采用筆試或筆試+機(jī)試的方法基本就可以實現(xiàn)考核目標(biāo),而對于C#應(yīng)用程序開發(fā)、基于C#的管理信息系統(tǒng)開發(fā)、Java應(yīng)用程序開發(fā)這種120個學(xué)時的大課時編程實踐課,理論教學(xué)和上機(jī)學(xué)時各占一半,如果不從學(xué)期開始就給學(xué)生布置題目,很多學(xué)生的上機(jī)學(xué)時都荒廢了。到第三學(xué)期,一部分學(xué)生都已經(jīng)具有了較強(qiáng)的自學(xué)能力,不滿足于只學(xué)習(xí)課堂上講的內(nèi)容,但由于教師必須照顧大多數(shù)學(xué)生的情況,這就造成了想學(xué)的學(xué)生吃不夠、偷懶的學(xué)生不去吃的矛盾境況。
如何能針對不同水平的學(xué)生提供不同的學(xué)習(xí)方法,盡量給予每個學(xué)生足夠的輔導(dǎo)和督促,是每個老師都想解決的問題。這個問題不能單純從教學(xué)環(huán)節(jié)下手,應(yīng)該和課程的考核方式結(jié)合起來,一方面大力激發(fā)每個學(xué)生的學(xué)習(xí)積極性,另一方面又能使每個學(xué)生的學(xué)習(xí)成果最終能較真實、準(zhǔn)確地體現(xiàn)在考試成績上。這就需要設(shè)計一種全新的考核方式,能貫穿課程教學(xué)的全過程,并能使不同水平的學(xué)生都得到鍛煉,找到適合自己的題目,在一學(xué)期的學(xué)習(xí)過程中使自己在編碼能力、設(shè)計能力、團(tuán)隊合作能力等多個方面都得到很好的鍛煉,為即將到來的畢業(yè)實習(xí)和就業(yè)打好基礎(chǔ)。
答辯考核方式的中心思想是,考核過程貫穿課程教學(xué)過程的始終,并針對不同水平的學(xué)生設(shè)定不同難度的題目,各題目的完成步驟要求一樣,最終也都要求提交一套完整的系統(tǒng)代碼及相關(guān)文檔。這樣的考核方式比傳統(tǒng)的筆試和上機(jī)考試都更加適合該類課程,可以給老師充分的時間及多種方式來全面考核每個學(xué)生的能力,也可以更有針對性地指導(dǎo)學(xué)生的學(xué)習(xí)和實踐。對于學(xué)生來說,適合自己水平的題目使他們既不會喪失信心和興趣,同時也能保持學(xué)習(xí)的熱情,在學(xué)習(xí)的過程中有更清晰、準(zhǔn)確的目標(biāo)。
3答辯考核方式的實施
答辯考核的全過程包括開題、設(shè)計開發(fā)、答辯及核定成績四個階段,其流程和進(jìn)度如圖1所示。
3.1規(guī)定項目要求,學(xué)生自由選題
對于C#應(yīng)用程序開發(fā)、基于C#的管理信息系統(tǒng)開發(fā)、Java應(yīng)用程序開發(fā)、ASP.Net程序設(shè)計這幾門課程,可在學(xué)期第一節(jié)課時就向?qū)W生宣布課程考核方式,并告知學(xué)生項目題材不限,但必須是本課程所講軟件類型,如C#應(yīng)用程序開發(fā)課程的項目必須是Windows應(yīng)用程序,ASP.Net程序設(shè)計的項目必須是Web應(yīng)用程序,項目的規(guī)模不能少于規(guī)定的代碼量,
允許以小組為單位進(jìn)行團(tuán)隊開發(fā)。要求學(xué)生從課程開始即留意選題,并做技術(shù)可行性分析。在課程進(jìn)行中,可隨時找老師探討自己的選題是否合適,老師予以肯定的,可立即進(jìn)入設(shè)計和開發(fā)階段。
3.2題目審核與過程管理
在第4—5周時,學(xué)生已經(jīng)對該課程有所了解,對課程中教師已經(jīng)講到的或即將講授的知識有所認(rèn)識,教師會要求學(xué)生集中上報各自(組)要開發(fā)的項目題目,并附帶項目的簡介及用到的技術(shù)。教師要及時對這些題目進(jìn)行審批,對過于簡單而導(dǎo)致組員工作量不夠或過于復(fù)雜而導(dǎo)致學(xué)生無法按時完成的題目予以駁回,并要求學(xué)生在規(guī)定時限內(nèi)重新選題。題目審核通過后,學(xué)生自行安排設(shè)計和開發(fā)的時間和進(jìn)度。教師會在上機(jī)課和課外時間對學(xué)生進(jìn)行技術(shù)指導(dǎo),并隨時對進(jìn)度檢查,檢查結(jié)果作為平時成績記錄。
3.3公開答辯,多方評分
學(xué)期的最后2~3周是考試環(huán)節(jié),安排學(xué)生針對自己做的項目進(jìn)行公開答辯。答辯時要求全體學(xué)生都參加。每個學(xué)生平均需要12分鐘左右,答辯總耗時要根據(jù)班級的學(xué)生人數(shù)來定,答辯內(nèi)容分為學(xué)生自述、同學(xué)提問及教師提問三個環(huán)節(jié)。要求全體學(xué)生都在場,是因為答辯考試不僅是考核過程,同時也是教學(xué)過程。在答辯的過程中,同學(xué)們可以了解其他同學(xué)所做題目的思路及使用到的技術(shù),從而互相學(xué)習(xí),互相借鑒,揚(yáng)長補(bǔ)短,達(dá)到在考試中學(xué)習(xí),在學(xué)習(xí)中考試的目的。因為很多時候?qū)W生自學(xué)的知識,教師也未必完全掌握,因此全體同學(xué)參加的答辯考核過程,對教師和同學(xué)都是一個很好的學(xué)習(xí)與交流的機(jī)會。另外,每一個參加考試的學(xué)生都需要充當(dāng)評委,對答辯者進(jìn)行打分,答辯最終成績以學(xué)生打分和老師打分綜合結(jié)果為準(zhǔn),這樣更能夠保證答辯的公平、公正性。
答辯考核方式的具體操作步驟如下:
1) 答辯前以項目組為單位進(jìn)行抽簽,確定答辯順序。
2) 答辯第一節(jié)課前必須將所開發(fā)的項目代碼上傳到教師的FTP服務(wù)器上,此后不允許修改或替換。答辯過程中演示項目時也只許在教師FTP服務(wù)器上下載代碼,不許自帶,保證對抽簽靠前的同學(xué)的公平性。
3) 答辯時每組學(xué)生上臺先對項目進(jìn)行簡單介紹,然后演示項目產(chǎn)品的全部功能。演示完畢后,該組的
每位學(xué)生都要參加答辯,但只留一位同學(xué)在臺上答辯,其余同學(xué)回座位等候,防止答辯過程中交頭接耳。
4) 答辯過程中教師和臺下所有學(xué)生均可從答辯人所開發(fā)的模塊的功能、性能、代碼、技術(shù)等方面進(jìn)行提問,并有專人進(jìn)行答辯記錄。答辯完成后,每位學(xué)生(除答辯人)和老師都要為其打分,學(xué)生和老師可通過登錄一個基于B/S的答辯考核管理程序完成在線打分。
5) 合分時,管理程序會自動計算學(xué)生打分的平均分,教師可根據(jù)學(xué)生打分的總體狀況(偏高、偏低、正常),自主控制學(xué)生打分和老師打分的比例分配,如學(xué)生打分偏高或偏低,則教師打分占較高比重;如學(xué)生打分基本正常,則教師與學(xué)生打分各占50% 等。
6) 試卷歸檔時,需將各人(組)的源代碼、項目申報表刻盤,與學(xué)生打分表、答辯記錄一并歸檔。
4結(jié)語
我們已經(jīng)在五屆學(xué)生中采取了答辯考核方式,并根據(jù)學(xué)生反映及教師在教學(xué)過程中發(fā)現(xiàn)的問題進(jìn)行不斷地改進(jìn),從而使目前的實施方式日趨完善。通過對學(xué)生的調(diào)查及任課老師的反映,這種考核方式對于激發(fā)學(xué)生的學(xué)習(xí)興趣、提高上機(jī)時間利用的效率、加大教師對學(xué)生指導(dǎo)的力度等方面都有顯著效果。學(xué)生認(rèn)為這種考核方式客觀、公正,能真正反映出學(xué)生的實際動手能力。
由于項目開發(fā)、教師平時考核貫穿課程的整個教學(xué)過程,所以教師能對絕大多數(shù)學(xué)生的情況都有較全面的了解,可以對學(xué)生進(jìn)行更有針對性的輔導(dǎo),從而彌補(bǔ)了由于課程進(jìn)度固定,無法滿足各種水平學(xué)生需求的缺陷,使課程的教學(xué)效果達(dá)到最大化。
實際上重要的不是考核方式本身[3],而是此種考核方式促使學(xué)生在學(xué)習(xí)過程中注重實踐能力的培養(yǎng),避免高分低能。這正是該考核方式的初衷,也是此類課程的教學(xué)目標(biāo)。
參考文獻(xiàn):
[1] 陳濤. 基于案例教學(xué)的Java 語言課程改革研究[J]. 教育研究