陳明華
文章編號:1672-5913(2009)10-0160-03
摘要:實驗是程序設(shè)計課程中提高學(xué)生應(yīng)用和實踐能力的一個重要手段,本文針對.NET程序設(shè)計課程,討論了實驗設(shè)計中如實驗內(nèi)容、實驗時間、實驗流程以及實驗的驗收與評分標(biāo)準(zhǔn)等細節(jié)問題的設(shè)計思路;課堂實驗設(shè)計的新穎之處在于將小組協(xié)作引入到實驗中,并基于因材施教的思想,在實驗中引入附加題。從課堂情況看,該實驗設(shè)計的效果良好,實驗設(shè)計的方案是可行的。
關(guān)鍵詞:.Net程序設(shè)計;實驗時間;實驗內(nèi)容;實驗驗收
中圖分類號:G642
文獻標(biāo)識碼:B
1引言
我院于第7學(xué)期(大三第1學(xué)期)為軟件工程專業(yè)學(xué)生開設(shè)“.Net程序設(shè)計”課程。該課程的授課目標(biāo)是讓學(xué)生掌握相應(yīng)程序設(shè)計語言(C#)的語法及編程思想,掌握簡單的編程技巧,到學(xué)期結(jié)束時能夠在.Net平臺上使用C#語言開發(fā)簡單的Windows應(yīng)用程序。
由于程序設(shè)計課程本身的特點,決定了這是一門對動手能力要求較高的課程,不但要讓學(xué)生從理論上掌握語法、程序設(shè)計的流程等內(nèi)容,更要讓學(xué)生具有編寫可運行程序的能力。本文將討論課堂實驗內(nèi)容的設(shè)定及實驗課流程安排的細節(jié)問題。
在本門課程的實驗設(shè)計中除了常見的實驗步驟之外,還加入了附加題作為小組作業(yè),從而達到培養(yǎng)學(xué)生團隊協(xié)作能力和自學(xué)能力的目的。
2課堂實驗的設(shè)計
2.1.Net程序設(shè)計課堂實驗內(nèi)容
本課程共96學(xué)時,講授的內(nèi)容及時間安排如表1所示。
為加深學(xué)生對課堂理論知識的理解,幫助學(xué)生將掌握的語法知識及時應(yīng)用到程序中,掌握相關(guān)的編程技巧,課堂實驗的安排緊隨課程內(nèi)容,我們針對每一章的授課內(nèi)容設(shè)定了相應(yīng)的實驗。實驗內(nèi)容如表2所示。
對于其中的每個實驗,盡量設(shè)計其內(nèi)容為應(yīng)用到當(dāng)前知識點的趣味小程序的編寫,讓課堂實驗從枯燥的代碼轉(zhuǎn)變成有趣的游戲,從而激發(fā)學(xué)生學(xué)習(xí)本課程的興趣和愿望,變被動學(xué)習(xí)為主動學(xué)習(xí)。
例如,在實驗三中,對循環(huán)控制語句部分的實驗內(nèi)容設(shè)計為一個猜數(shù)字游戲,先隨機生成一個0-10之間的整數(shù);然后讓用戶猜測一個0-10之間數(shù),從控制臺輸入;如
果用戶輸入的數(shù)字與隨機生成的數(shù)字不相等,就讓用戶重新輸入,直到相等為止;統(tǒng)計用戶猜測的次數(shù),并輸出。同學(xué)之間可以相互測試,檢查程序是否有錯誤。
2.2課堂實驗的流程和各部分時間安排
課堂實驗的流程安排如下:
(1) 介紹實驗內(nèi)容及實驗的預(yù)期效果。
(2) 以提問的方式,帶領(lǐng)學(xué)生復(fù)習(xí)和實驗相關(guān)的原理和知識點。
(3) 對實驗中的主要步驟給出適當(dāng)?shù)奶崾尽?/p>
(4) 讓學(xué)生動手做實驗,并允許學(xué)生在小組內(nèi)進行討論。
(5)對各小組的問題進行總結(jié),并統(tǒng)一講解。實驗中學(xué)生遇到的部分問題,不是當(dāng)堂做出解答,而是作為實驗的附加問題,算作一個小組作業(yè),要求學(xué)生課后通過查閱書籍或在通過網(wǎng)絡(luò)查詢,獲取答案,這個問題每個小組給出一個統(tǒng)一的答案即可。
課堂實驗中各個步驟的時間是根據(jù)具體的實驗內(nèi)容而定的,一般情況下,時間的比例為0.5∶2∶0.5∶5∶2。每個課堂實驗總的時間根據(jù)實驗的具體內(nèi)容控制在1-2課時。
2.3實驗的評分標(biāo)準(zhǔn)
2.3.1計入總成績
實驗是整個課程中的一個重要環(huán)節(jié),在課程中,我們通過對總成績的分配來引導(dǎo)學(xué)生改進學(xué)習(xí)方法,端正學(xué)習(xí)態(tài)度。為了強調(diào)實驗的重要性,實驗的成績最終也要計入期末的總成績中。
實驗的成績分為兩部分:實驗本身的成績對應(yīng)實驗報告冊要求的內(nèi)容;小組附加成績,對應(yīng)2.2節(jié)中流程(5)提到的要求學(xué)生課后完成的內(nèi)容。
實驗本身的成績最終會計入總成績的平時成績部分,在平時成績中占40%的比例(本門課程的平時成績和期末成績的比例為50∶50);小組成績除了實驗中的問題之外,還包括課堂上遇到的其他問題,最終的小組成績也會計入到平時成績中,占平時成績的40%。
小組成績設(shè)置的目的,是為了引導(dǎo)學(xué)生,通過協(xié)作和自學(xué)的方式獲取知識和解決問題,培養(yǎng)學(xué)生的團隊協(xié)作精神和自學(xué)能力。
2.3.2單個實驗的評分細則
本學(xué)期共設(shè)置了16個實驗,每個實驗的實驗本身的成績總分為5分,具體細則如下:
(1) 實驗要求的代碼占3分。評分標(biāo)準(zhǔn)為:代碼能夠?qū)崿F(xiàn)實驗要求的功能,并且結(jié)構(gòu)清晰合理;對于未能當(dāng)堂完成的同學(xué),實驗代碼部分的成績滿分為2分。
(2) 實驗報告冊占2分。評分標(biāo)準(zhǔn)為:每一部分都按照要求填寫,并且實驗結(jié)果書寫正確;重點考查實驗原理、預(yù)習(xí)中的問題和實驗結(jié)論。
3實驗指導(dǎo)書的設(shè)計
為了提高課堂實驗的授課效果,幫助學(xué)生加深對知識點的理解,我們編寫了實驗指導(dǎo)書,該指導(dǎo)書現(xiàn)在仍在試用階段,尚未出版發(fā)行。
每個實驗指導(dǎo)包含了如下幾個部分:
(1) 實驗題目,說明該實驗的內(nèi)容;
(2) 實驗?zāi)康?,說明該實驗,針對哪些知識點;
(3) 實驗背景,介紹該實驗對應(yīng)的原理知識,也可以作為學(xué)生預(yù)習(xí)和復(fù)習(xí)相關(guān)知識點的指導(dǎo);
(4) 實驗內(nèi)容,介紹本實驗中要實現(xiàn)的功能;
(5) 實驗步驟,對于實驗中的關(guān)鍵步驟進行提示,引導(dǎo)學(xué)生的思路,從而完成實驗,實現(xiàn)功能;
(6) 實驗圖示,對于部分語言描述仍難于理解的實驗,給出相應(yīng)的實驗圖示,幫助學(xué)生理解實驗功能的要求;
(7) 實驗附加題,根據(jù)課堂上學(xué)生的問題情況,對部分實驗,總結(jié)出難易適當(dāng)?shù)膯栴},作為附加問題,附在實驗的后面。
4實驗實例
下面以實驗十四時鐘程序為例,說明前面論述的課堂實驗的設(shè)計方法。
4.1實驗內(nèi)容
該實驗幫助學(xué)生掌握GDI+圖形編程相關(guān)的知識點,實驗內(nèi)容為編寫Windows應(yīng)用程序,實現(xiàn)如圖1所示的小時鐘程序。該時鐘包含時、分、秒三條指針,每秒鐘指針的位置變化一次,以符合當(dāng)前的時間;時鐘的背景為圓盤型,要有背景圖片;可以使用鼠標(biāo)拖拽時鐘窗體。
4.2實驗包含的知識點
該實驗中包含的知識點有:
(1)Windows應(yīng)用程序窗體屬性的設(shè)置,包括去掉窗體的標(biāo)題欄,設(shè)置窗體的背景圖片。
(2) 時鐘控件的使用。控制指針每秒鐘變換一次位置。
(3)GDI+中如何修改窗體的外觀(默認外觀為矩形)。
(4)GDI+中線條的繪制。
(5) 類的定義和類的繼承。
這些相關(guān)的知識點都會在實驗指導(dǎo)書中該實驗的背景知識中給予介紹。
4.3實驗步驟的設(shè)定
時鐘程序的實驗步驟設(shè)定如下。
(1) 使用Visual Studuo.Net2005,新建Windows應(yīng)用程序ClockEx;
(2) 編寫代碼,修改窗體Form1的外觀為圓形,并去掉窗體的標(biāo)題欄,為時鐘設(shè)置背景圖;
(3) 編寫指針接口IPointer,聲明指針對應(yīng)的相關(guān)屬性和方法;
(4) 對應(yīng)時針、分針和秒針分別編寫相應(yīng)的類HPointer、MPointer和SPointer,都繼承接口IPointer,實現(xiàn)其中的方法;
(5) 拖拽一個計時器控件到窗體,并編寫相應(yīng)的Tick事件處理方法,繪制三個指針(指針需要編寫單獨的類),實現(xiàn)每秒鐘指針位置變化一次,符合當(dāng)前的時間;
(6) 添加鼠標(biāo)落下和移動對應(yīng)的事件處理方法,實現(xiàn)用鼠標(biāo)拖動時鐘的功能。
參照實驗步驟以及實驗指導(dǎo)中對相關(guān)知識點的介紹,學(xué)生就不至于看到實驗要求而無所適從,實驗步驟的設(shè)定能夠幫助學(xué)生理順?biāo)悸?,按部就班地完成實驗功能的要求?/p>
4.4實驗的時間安排
本實驗涉及到的代碼量比較大,難度也較高,技巧性較強,因此,課堂實驗的時間設(shè)置為2學(xué)時,90分鐘。
其中,介紹實驗內(nèi)容大約5分鐘時間,包括將實驗的結(jié)果演示給同學(xué)看,讓學(xué)生都對運行的結(jié)果產(chǎn)生興趣,有完成實驗的愿望;復(fù)習(xí)的時間大約為20分鐘,幫助同學(xué)回憶其相應(yīng)的知識點及相關(guān)問題的解決方法;用15分鐘左右的時間對實驗中的主要步驟給出適當(dāng)?shù)奶崾?,說明對應(yīng)的步驟應(yīng)用什么知識點,并對其中較難的代碼進行講解,如創(chuàng)建指針接口,給出創(chuàng)建分針Mpointer的代碼示例(需要注意的是,在這個過程中,要求學(xué)生認真地聽講、理解代碼,而不是抄寫代碼);給學(xué)生約40分鐘的時間,進行代碼的編寫,在此期間解決學(xué)生的問題;最后用10分鐘左右的時間總結(jié)學(xué)生遇到的細節(jié)問題。
4.5附加問題的設(shè)定
根據(jù)以往的經(jīng)驗,在進行這個實驗時,最多的問題是在程序運行過程中發(fā)現(xiàn)鐘表指針移動時,原有的指針圖形沒有消失,從而在表盤上畫出了多個指針。
在這里可以將附加問題設(shè)置為:找出上述問題的原因,并說明在程序中如何避免這種情況。
這個問題的難度不是很大,只要修改很少量的代碼就可以解決;但是這又是一個常見的問題,而且需要動腦筋才能夠想出解決方案;在解決問題的過程中,通過小組討論,可以集思廣益,既培養(yǎng)了團隊協(xié)作精神,又加深了學(xué)生對該問題的理解。
5課堂實驗效果總結(jié)
5.1實驗效果
從本學(xué)期的課堂實驗效果上看,半數(shù)以上的同學(xué)在課堂上就能夠完成實驗代碼;同時,從回答附加問題的情況看,以軟件工程06級(.Net)1班為例,全班共11個小組,每個小組都至少解決了一個問題,多個班級解決了3個以上的問題,學(xué)生已經(jīng)開始從以前對老師的完全依靠走向自立。
綜上,“.Net程序設(shè)計課程”的課堂實驗設(shè)計效果是良好的,是可行的。
5.2今后的工作
課堂實驗方面今后的工作將從如下三方面入手:
(1) 繼續(xù)深入探討和思考對實驗內(nèi)容的設(shè)計,提出更能提高學(xué)生興趣、幫助學(xué)生加深對知識點理解的實驗內(nèi)容。
(2) 通過一輪實驗指導(dǎo)教材的適用,對實驗指導(dǎo)書進行進一步的修改,并盡快出版。
(3) 通過一輪到兩輪實驗課程的講授,對附加題的內(nèi)容進行總結(jié),并固定下來。通過課堂實驗,繼續(xù)推動分組教學(xué)的進行。