摘 要:對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生,程序設(shè)計(jì)類課程貫穿專業(yè)學(xué)習(xí)始末。本文結(jié)合我校計(jì)算機(jī)專業(yè)目前的課程設(shè)置及教學(xué)情況加以分析,從提高學(xué)生學(xué)習(xí)興趣、在課堂及實(shí)驗(yàn)中采用案例化教學(xué)、豐富考核形式等方面進(jìn)行課程教學(xué)改革,以達(dá)到提高學(xué)生學(xué)習(xí)興趣和實(shí)際動(dòng)手能力的目的。
關(guān)鍵詞:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè);程序設(shè)計(jì);教學(xué)方法;
計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的培養(yǎng)目標(biāo)是培養(yǎng)具有扎實(shí)的計(jì)算機(jī)科學(xué)與技術(shù)基本理論和基本知識(shí),具有計(jì)算機(jī)應(yīng)用系統(tǒng)的軟件開(kāi)發(fā)方法和工程管理方法,具有軟件系統(tǒng)研究和開(kāi)發(fā)的基本能力和相關(guān)學(xué)科的知識(shí)的學(xué)生。程序設(shè)計(jì)類課程作為計(jì)算機(jī)專業(yè)課程的重要組成部分,如何提高該類課程的教學(xué)質(zhì)量,使學(xué)生達(dá)到專業(yè)培養(yǎng)目標(biāo),至關(guān)重要[1]。
1 目前的教學(xué)現(xiàn)狀
1.1 開(kāi)設(shè)的相關(guān)課程
程序設(shè)計(jì)類課程與基礎(chǔ)理論類課程不同,其實(shí)踐性很強(qiáng),側(cè)重學(xué)生實(shí)際編程能力的培養(yǎng)。在我校的計(jì)算機(jī)專業(yè)課程中,以C語(yǔ)言為基礎(chǔ),使學(xué)生學(xué)習(xí)語(yǔ)法和簡(jiǎn)單的算法,培養(yǎng)基礎(chǔ)的編程思維;在此基礎(chǔ)上學(xué)習(xí)面向?qū)ο蟮木幊陶Z(yǔ)言C++,培養(yǎng)學(xué)生面向?qū)ο蟮木幊棠芰ΓY(jié)合數(shù)據(jù)結(jié)構(gòu)課程,掌握基本的數(shù)據(jù)描述及算法;有了前面兩門(mén)課程及數(shù)據(jù)庫(kù)課程、計(jì)算機(jī)網(wǎng)絡(luò)課程等的鋪墊,以Visual Studio為開(kāi)發(fā)環(huán)境,開(kāi)設(shè)Windows應(yīng)用程序設(shè)計(jì)和網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)等,開(kāi)發(fā)一些實(shí)際使用的系統(tǒng),逐步提高學(xué)生動(dòng)手開(kāi)發(fā)能力。除了以上課程,編程類相關(guān)的課程還有匯編語(yǔ)言、Java等。為學(xué)生提供了多樣性選擇。
1.2 課程教學(xué)安排
這些課程的教學(xué)安排通常是課堂教學(xué)占總學(xué)時(shí)的2/3,實(shí)驗(yàn)教學(xué)占1/3。有些課程如Windows應(yīng)用程序、網(wǎng)絡(luò)應(yīng)用程序還安排有16學(xué)時(shí)左右的課程實(shí)踐。作為實(shí)踐性很高的課程,學(xué)生實(shí)際動(dòng)手參與的環(huán)節(jié)太少,使得學(xué)生在課堂教學(xué)中通常作為旁觀者,不能很好地融入到教學(xué)中。
1.3 課程考核方式
在以上這些課程中,通常是平時(shí)成績(jī)占課程成績(jī)的30%,包括作業(yè)、出勤等,期末考試占70%,一般采用的考試形式是閉卷筆試??己四J酵ǔ1容^單一。實(shí)際操作的課程采用閉卷筆試的形式,一部分同學(xué)采用背書(shū)、背題的方法通過(guò),拿高分;其中有的課程改進(jìn)考核手段,采用上機(jī)測(cè)試的方法,但題型大多是選擇和填空,并且題庫(kù)數(shù)目有限,這就出現(xiàn)學(xué)生考前背題庫(kù)的現(xiàn)象。以上存在的這些問(wèn)題,顯然違背編程類課程的初衷,不能真正的培養(yǎng)和提高學(xué)生的編程能力和水平。
2 教學(xué)改革
2.1 提高學(xué)生學(xué)習(xí)興趣
古語(yǔ)說(shuō):“知之者不如好之者,好之者不如樂(lè)之者”。興趣是最好的老師,培養(yǎng)良好的學(xué)習(xí)興趣是學(xué)好編程類課程的關(guān)鍵。在課程開(kāi)始,應(yīng)當(dāng)避免講授太多、太深的理論知識(shí),應(yīng)當(dāng)以短小精悍,立竿見(jiàn)影的小程序入手,培養(yǎng)學(xué)生學(xué)習(xí)興趣和信心。
基金項(xiàng)目:上海市信息管理與系統(tǒng)教學(xué)高地建設(shè)(B-8515-10-0001)。
作者簡(jiǎn)介:駱解民,男,副教授,研究方向?yàn)橛?jì)算機(jī)科學(xué)與技術(shù)。
在學(xué)生中,可組織建立相應(yīng)的程序設(shè)計(jì)興趣組,邀請(qǐng)專業(yè)教師擔(dān)當(dāng)輔導(dǎo)老師,不定期舉行前沿知識(shí)的講座。定期地舉辦編程競(jìng)賽,競(jìng)賽的題目可以圍繞學(xué)生生活中涉及的問(wèn)題或當(dāng)下計(jì)算機(jī)專業(yè)研究熱點(diǎn),提出系統(tǒng)需求說(shuō)明,要求編寫(xiě)應(yīng)用程序解決實(shí)際問(wèn)題。鼓勵(lì)不同年級(jí)、不同專業(yè)的學(xué)生積極參與,營(yíng)造良好的學(xué)習(xí)氛圍。邀請(qǐng)專業(yè)老師擔(dān)任評(píng)委,競(jìng)賽中可設(shè)置一定的獎(jiǎng)勵(lì),對(duì)于每次評(píng)選出的優(yōu)秀作品可以在今后課程教學(xué)中進(jìn)行演示,激勵(lì)學(xué)生的學(xué)習(xí)熱情和動(dòng)力。
2.2 梳理教學(xué)內(nèi)容體系
在程序設(shè)計(jì)類課程中,選用的教材一般都涉及所用編程語(yǔ)言的基本語(yǔ)法等基礎(chǔ)知識(shí)。因此在這些課程中,部分內(nèi)容的重復(fù)是不可避免的。理清教學(xué)重點(diǎn)內(nèi)容,梳理教學(xué)內(nèi)容體系對(duì)教學(xué)起到事半功倍的作用,可避免在不同課程中重復(fù)教學(xué)現(xiàn)象,同時(shí)可增強(qiáng)課程間的連貫性,達(dá)到水到渠成的作用。
程序設(shè)計(jì)對(duì)于大多數(shù)的大一新生來(lái)說(shuō)有一定的難度。在C語(yǔ)言教學(xué)中,教學(xué)重點(diǎn)應(yīng)著重放在編程思維的培養(yǎng),如數(shù)據(jù)類型,程序流程控制等。在此基礎(chǔ)上,C++課程教學(xué)中,重點(diǎn)學(xué)習(xí)面向?qū)ο缶幊痰母拍詈头椒?,如類、繼承、多態(tài)等,基本語(yǔ)法放在次要位置;在Windows應(yīng)用程序設(shè)計(jì),重點(diǎn)放在熟悉Visual Studio開(kāi)發(fā)環(huán)境、控件的使用、異步編程、訪問(wèn)數(shù)據(jù)庫(kù)和程序部署等方面;在網(wǎng)絡(luò)程序設(shè)計(jì)中,重點(diǎn)放在ASP.NET內(nèi)置對(duì)象、XML WEB SERVICE、WEB應(yīng)用程序的優(yōu)化和部署、頁(yè)面安全保護(hù)等方面。
2.3 改革教學(xué)手段
課堂教學(xué)中,對(duì)于C和C++,由于學(xué)生的專業(yè)知識(shí)幾乎為零,可以精講知識(shí)點(diǎn),結(jié)合經(jīng)典的小程序進(jìn)行教學(xué),多啟發(fā)多引導(dǎo),鼓勵(lì)學(xué)生在學(xué)習(xí)程序設(shè)計(jì)類課程中可采用先讀懂程序,然后模仿編寫(xiě)程序,最后獨(dú)立編寫(xiě)程序的三部曲;對(duì)于Windows程序設(shè)計(jì)和網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì),可采用案例教學(xué),在課程伊始,給出用戶需求,進(jìn)行系統(tǒng)分析和設(shè)計(jì),根據(jù)講授內(nèi)容知識(shí)點(diǎn)的進(jìn)度,逐一實(shí)現(xiàn)和完善系統(tǒng)功能,爭(zhēng)取在課程結(jié)束時(shí)能夠完成應(yīng)用系統(tǒng)的基本功能,未實(shí)現(xiàn)或應(yīng)進(jìn)一步完善的功能可留給學(xué)生作為作業(yè),增加學(xué)生對(duì)相應(yīng)知識(shí)點(diǎn)的學(xué)習(xí),提高實(shí)際動(dòng)手能力。
2.4 重視課程實(shí)驗(yàn)/實(shí)踐環(huán)節(jié)
由于程序設(shè)計(jì)類課程所具有的實(shí)踐性強(qiáng)的特點(diǎn),對(duì)于課程的學(xué)時(shí)安排應(yīng)當(dāng)進(jìn)行調(diào)整,增加實(shí)驗(yàn)課時(shí)或?qū)嵺`課時(shí)的安排,增加至課時(shí)總數(shù)的一半左右。為學(xué)生提供充足的實(shí)踐時(shí)間,切實(shí)保證將書(shū)本、課堂所學(xué)與實(shí)際操作相結(jié)合。
實(shí)驗(yàn)教學(xué)中,教師應(yīng)在實(shí)驗(yàn)前,布置實(shí)驗(yàn)內(nèi)容。讓學(xué)生有充足的復(fù)習(xí)課堂教學(xué)內(nèi)容,準(zhǔn)備實(shí)驗(yàn)的時(shí)間。在實(shí)驗(yàn)中,注意觀察學(xué)生遇到的問(wèn)題,對(duì)于比較集中的問(wèn)題,重點(diǎn)講解或演示。在實(shí)驗(yàn)環(huán)節(jié)中,布置難度適宜的作業(yè),要求學(xué)生在規(guī)定的時(shí)間內(nèi)完成并提交,以使學(xué)生可以充分利用上機(jī)時(shí)間。
對(duì)于編程類的課程,僅僅有配套的實(shí)驗(yàn)時(shí)間是不夠的,應(yīng)當(dāng)在各個(gè)程序設(shè)計(jì)類課程教學(xué)結(jié)束后增加或留出兩周的時(shí)間,作為課程實(shí)踐環(huán)節(jié)。在實(shí)踐環(huán)節(jié),給學(xué)生布置有實(shí)際應(yīng)用的系統(tǒng)開(kāi)發(fā)題目,該題目基本涵蓋課程所學(xué)的主要內(nèi)容。該題目可以是個(gè)人獨(dú)立完成或小組完成。通過(guò)實(shí)踐環(huán)節(jié),讓學(xué)生對(duì)一學(xué)期課程所學(xué)內(nèi)容,甚至是與其他課程的學(xué)習(xí)有一個(gè)融會(huì)貫通的過(guò)程,增加學(xué)生對(duì)所學(xué)專業(yè)和所學(xué)知識(shí)的充分理解和認(rèn)識(shí)。實(shí)驗(yàn)/實(shí)踐環(huán)節(jié)結(jié)束,對(duì)其中優(yōu)秀的作品進(jìn)行講評(píng),鼓勵(lì)學(xué)生相互交流學(xué)習(xí),不斷完善自己的系統(tǒng)。
2.5 改革課程考核
程序設(shè)計(jì)類課程對(duì)于學(xué)生的實(shí)際操作能力有較高的要求,對(duì)于以往的閉卷筆試,雖然可以起到一定的檢測(cè)學(xué)生學(xué)習(xí)情況的作用,但存在的詬病顯而易見(jiàn)。因此,放棄背書(shū)閉卷筆試的形式,改革現(xiàn)有的考核體系勢(shì)在必行。以使學(xué)生從傳統(tǒng)的死記硬背中解放出來(lái),使老師從繁重的批改紙質(zhì)試卷,批改手寫(xiě)代碼中解放出來(lái)[2-3]。
增加考試內(nèi)容的靈活性,減少死記硬背的內(nèi)容,采用開(kāi)卷筆試;甚至放棄筆試,采用上機(jī)編寫(xiě)/調(diào)試程序的形式。
加大平時(shí)成績(jī)?cè)谡n程總評(píng)成績(jī)中的比重,加強(qiáng)課程學(xué)習(xí)過(guò)程的控制,避免學(xué)生考前抱佛腳的現(xiàn)象。從原有的重視結(jié)果,轉(zhuǎn)到重視平時(shí)過(guò)程中來(lái)。平時(shí)作業(yè)可結(jié)合課程進(jìn)度,要求學(xué)生在規(guī)定時(shí)間內(nèi)提交規(guī)定功能的程序模塊。為了防止學(xué)生抄襲作業(yè)的現(xiàn)象,可開(kāi)發(fā)網(wǎng)絡(luò)測(cè)試平臺(tái)。在該平臺(tái)中可接收學(xué)生提交的程序,最好該系統(tǒng)具備重復(fù)度檢查,控制學(xué)生中程序的復(fù)制現(xiàn)象。
課程的考核也可采用在線評(píng)測(cè)[4](Online Judge, 簡(jiǎn)稱OJ)是個(gè)基于網(wǎng)絡(luò)服務(wù)器的系統(tǒng)。其主要功能有:用戶注冊(cè)、題庫(kù)管理、在線提交和實(shí)時(shí)評(píng)測(cè)、考試等。該服務(wù)器上有豐富的題庫(kù),每道題目包含題目描述、輸入數(shù)據(jù)文件和作為標(biāo)準(zhǔn)答案的輸出數(shù)據(jù)文件三個(gè)部分。做題者只可以看到題目描述。編程語(yǔ)言有C/C++、Java、Pascal等供選擇。根據(jù)題目要求和輸入數(shù)據(jù),在規(guī)定的時(shí)間內(nèi)給出標(biāo)準(zhǔn)輸出數(shù)據(jù)的程序,把編寫(xiě)好的源代碼提交到服務(wù)器,在服務(wù)器端編譯該源程序得到可執(zhí)行程序,然后輸入數(shù)據(jù),將程序的輸出結(jié)果和題目的標(biāo)準(zhǔn)答案進(jìn)行對(duì)比,如果一致則為對(duì),
否則為錯(cuò)。在OJ系統(tǒng)上做題,可以立即看到結(jié)果,而且對(duì)于錯(cuò)誤程序還可以修改后再次提交。用OJ進(jìn)行上機(jī)考試,方便高效,能夠較準(zhǔn)確地反映學(xué)生的實(shí)際水平。在平時(shí)實(shí)驗(yàn)中,也可適當(dāng)?shù)氖褂肙J系統(tǒng)。提高學(xué)生學(xué)習(xí)的能動(dòng)性。
3 結(jié)語(yǔ)
通過(guò)近年來(lái)對(duì)程序設(shè)計(jì)類課程體系的梳理、教學(xué)手段的豐富和課程考核方式的改革等,顯著提高了學(xué)生對(duì)該類課程的興趣和編程能力,在畢業(yè)設(shè)計(jì)和各種競(jìng)賽中有突出表現(xiàn)。但是,由于程序設(shè)計(jì)類題目的靈活性和復(fù)雜性,對(duì)于課程考核環(huán)節(jié)中測(cè)評(píng)題目難度的控制和標(biāo)準(zhǔn)答案的界定還存在一定的不足。在今后的教學(xué)中,更加豐富課程考核方式,如采用實(shí)驗(yàn)作業(yè)等將課程的考核貫穿整個(gè)課程學(xué)習(xí),提高教學(xué)質(zhì)量和學(xué)生的實(shí)際編程動(dòng)手水平,使得教學(xué)雙方朝著培養(yǎng)創(chuàng)新型和能力型人才的教學(xué)目標(biāo)前進(jìn)。
參考文獻(xiàn):
[1] 張全福. 匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革與探索[J]. 教