樊廣軍
【摘 要】本文根據(jù)高校學(xué)生在學(xué)習(xí)C++程序設(shè)計(jì)課程中常見(jiàn)的問(wèn)題,從明確教學(xué)目標(biāo),改革教學(xué)理念、模式、方法出發(fā),闡述了以學(xué)生為主體,以教師為主導(dǎo)的“雙主”教學(xué)觀念,介紹了優(yōu)化教學(xué)內(nèi)容和課時(shí)配置的教學(xué)改革嘗試,探討了筆者在教學(xué)和課程考核等環(huán)節(jié)方面所進(jìn)行的一些教改方法。
【關(guān)鍵詞】C++程序設(shè)計(jì) 教學(xué)改革 能力培養(yǎng)
1 引言
目前高校的非計(jì)算機(jī)理工科專業(yè)基本上都開(kāi)設(shè)了計(jì)算機(jī)程序設(shè)計(jì)這門公共基礎(chǔ)課程,各種專業(yè)院系根據(jù)本身的特點(diǎn)和需要該門課程所講授的程序設(shè)計(jì)語(yǔ)言也有所不同,但由于其功能的強(qiáng)大和運(yùn)用的廣泛性,絕大多數(shù)專業(yè)還是選擇了C++程序設(shè)計(jì)語(yǔ)言作為該課程所講授的內(nèi)容,因此搞好C++程序設(shè)計(jì)語(yǔ)言課程的教學(xué)改革對(duì)提高本課程的教學(xué)質(zhì)量具有十分重要的現(xiàn)實(shí)意義。
2 C++程序設(shè)計(jì)課程教學(xué)中存在的問(wèn)題
筆者從近些年的教學(xué)實(shí)踐及教學(xué)效果來(lái)看,感到C++程序設(shè)計(jì)課程教學(xué)主要存在以下幾個(gè)方面的問(wèn)題:
2.1教學(xué)內(nèi)容繁多而教學(xué)課時(shí)有限
C++程序設(shè)計(jì)課程教學(xué)內(nèi)容從知識(shí)體系上應(yīng)該使學(xué)生全面了解并掌握面向的對(duì)象的控制臺(tái)編程、界面模式的API編程、基于微軟的MFC的編程三個(gè)方面的知識(shí),否則學(xué)生的編程能力和水平難以達(dá)到滿足現(xiàn)代工程實(shí)踐應(yīng)用軟件開(kāi)發(fā)的基本要求。由于目前高校教學(xué)改革普遍精減本課程的教學(xué)課時(shí)約為48個(gè)學(xué)時(shí)(其中16學(xué)時(shí)為實(shí)驗(yàn),32學(xué)時(shí)為理論教學(xué)),另外再加兩個(gè)星期的課程綜合實(shí)踐。熟悉C++程序設(shè)計(jì)課程教學(xué)的人都知道:如此繁多的教學(xué)內(nèi)容如何保證在這有限的學(xué)時(shí)內(nèi)圓滿地完成教學(xué)任務(wù)的確是一個(gè)令人棘手的問(wèn)題。
2.2部分學(xué)生對(duì)本課程學(xué)習(xí)思想上缺乏應(yīng)有的重視
由于部分學(xué)生認(rèn)為本課程不是非計(jì)算機(jī)專業(yè)學(xué)生核心專業(yè)基礎(chǔ)課程,不了解工程應(yīng)用軟件開(kāi)發(fā)的必要性,產(chǎn)生了學(xué)好本課程與否不重要的錯(cuò)誤想法。一旦有這種錯(cuò)誤思想的產(chǎn)生,再加上本課程本來(lái)內(nèi)容就難學(xué),隨著教學(xué)過(guò)程的深入,學(xué)生會(huì)遇到一些抽象的概念和理論難以及時(shí)地理解和消化,從而影響到后續(xù)內(nèi)容的學(xué)習(xí),而且隨著這些未理解消化的問(wèn)題的越積越多,不可避免地會(huì)影響學(xué)習(xí)效果。
2.3 部分學(xué)生編程實(shí)踐能力不強(qiáng)
目前大部分C++程序的設(shè)計(jì)開(kāi)發(fā)環(huán)境都采用VC++的集成開(kāi)發(fā)環(huán)境,該環(huán)境集成了C++程序的編輯、編譯、調(diào)試等各個(gè)環(huán)節(jié),功能十分豐富。部分同學(xué)由于上機(jī)編程練習(xí)的機(jī)會(huì)比較少,在那有限的實(shí)驗(yàn)課時(shí)里,只能照搬書中的實(shí)例做些基礎(chǔ)與驗(yàn)證型實(shí)驗(yàn),難以有效地運(yùn)用VC++集成開(kāi)發(fā)環(huán)境完成一些設(shè)計(jì)與開(kāi)發(fā)型實(shí)驗(yàn)。這主要是由于他們自主編程的實(shí)踐能力不強(qiáng),還需要加大力氣加強(qiáng)培養(yǎng)。
上述問(wèn)題的形成原因是多方面的,要想解決這些問(wèn)題有必要在教學(xué)理念、教學(xué)方法及手段、教學(xué)內(nèi)容、實(shí)驗(yàn)教學(xué)及課程考核方式等方面對(duì)現(xiàn)有的教學(xué)方案進(jìn)行改革。
3 教學(xué)改革的措施
3.1明確教學(xué)目標(biāo),變革課堂教學(xué)理念、模式和方法
高校C++程序設(shè)計(jì)課程的教學(xué)目標(biāo)應(yīng)定位于培養(yǎng)基礎(chǔ)知識(shí)扎實(shí),應(yīng)用程序設(shè)計(jì)編程能力強(qiáng),在應(yīng)用程序設(shè)計(jì)方面具有一定創(chuàng)新精神的高素質(zhì)人才為目標(biāo)。要實(shí)現(xiàn)這一目標(biāo),必須突破傳統(tǒng)的以培養(yǎng)“知識(shí)型”人才為目標(biāo)的觀念和模式,采取“主導(dǎo)—主體”雙主式的教學(xué)模式,即強(qiáng)化以學(xué)生為主體,以教師為主導(dǎo)的教學(xué)理念,不要片面強(qiáng)調(diào)教師或?qū)W生單方面的作用,這樣既有利于發(fā)揮教師的主導(dǎo)作用,又能充分發(fā)揮學(xué)生的認(rèn)知主體作用,從而達(dá)到培養(yǎng)“應(yīng)用型”人才的目標(biāo)。
根據(jù)構(gòu)建主義的學(xué)習(xí)理論我們可以知道:學(xué)生(學(xué)習(xí)的主體) 是在與客觀環(huán)境(所學(xué)內(nèi)容)的交互過(guò)程中構(gòu)建自己的知識(shí)體系結(jié)構(gòu)的。目前高校C++程序設(shè)計(jì)課程教學(xué)的客觀現(xiàn)實(shí)條件就是教學(xué)課時(shí)少,教學(xué)內(nèi)容繁多,如果片面強(qiáng)調(diào)教師講授的作用,教學(xué)內(nèi)容面面俱到的話,一是時(shí)間上做不到,二是教學(xué)內(nèi)容重點(diǎn)不突出,學(xué)生會(huì)從思想上產(chǎn)生依賴性,認(rèn)為老師上課反正都會(huì)講解,從而不主動(dòng)去自學(xué)和思考,放棄了自主與所學(xué)內(nèi)容不斷交互的機(jī)會(huì),這樣教學(xué)效果未必會(huì)好?;谏鲜鲈颍诮虒W(xué)方法上,我們強(qiáng)化多元化方法教學(xué),主要采用多媒體教學(xué)方式和互動(dòng)式教學(xué)方式與傳統(tǒng)教學(xué)方式相融合,精講多練。多媒體教學(xué)方式能夠在有限的時(shí)間里豐富教學(xué)內(nèi)容,并將有些難以理解的內(nèi)容配以動(dòng)畫,使學(xué)生便于理解內(nèi)容的同時(shí),激發(fā)出一定的學(xué)習(xí)興趣;這樣既突破了教學(xué)中的重點(diǎn)和難點(diǎn),又能讓學(xué)生對(duì)所學(xué)的內(nèi)容留下比較深刻的印象。互動(dòng)式教學(xué)方式要求教師從主講者轉(zhuǎn)變?yōu)閷W(xué)生學(xué)習(xí)活動(dòng)的設(shè)計(jì)者和指導(dǎo)者,教師把以教為主轉(zhuǎn)變?yōu)閷W(xué)生以學(xué)為主。 通過(guò)給學(xué)生布置課后自學(xué)內(nèi)容,在講解過(guò)程中為學(xué)生設(shè)置問(wèn)題,檢查自學(xué)效果,引導(dǎo)學(xué)生與教師課堂講授時(shí)面對(duì)面的交流,啟發(fā)學(xué)生思考,然后讓學(xué)生及時(shí)理解與消化所學(xué)內(nèi)容,最后教師對(duì)自學(xué)內(nèi)容進(jìn)行歸納總結(jié),進(jìn)一步強(qiáng)化學(xué)生的學(xué)習(xí)效果。另外在課堂上教師還可以通過(guò)現(xiàn)場(chǎng)編程,使學(xué)生能夠參與到程序的編輯和調(diào)試過(guò)程中,能夠跟隨教師共同解決問(wèn)題,獲得正確的結(jié)果。這種教學(xué)方式增強(qiáng)了學(xué)生的參與意識(shí)和興趣,同時(shí)也能順便讓學(xué)生學(xué)會(huì)利用VC++集成開(kāi)發(fā)環(huán)境進(jìn)行程序的編輯、編譯與調(diào)試過(guò)程,使學(xué)生由被動(dòng)學(xué)習(xí)轉(zhuǎn)變?yōu)橹鲃?dòng)學(xué)習(xí)。
3.2優(yōu)化教學(xué)內(nèi)容和教學(xué)課時(shí)的配置
優(yōu)化教學(xué)內(nèi)容的首要環(huán)節(jié)就是要精選一套優(yōu)秀的教材。筆者認(rèn)為作為優(yōu)秀教材應(yīng)該要內(nèi)容完整,組織合理,簡(jiǎn)明扼要,實(shí)例經(jīng)典,實(shí)驗(yàn)編程配置的練習(xí)題既要能驗(yàn)證學(xué)生所學(xué)的知識(shí)內(nèi)容,又要能使學(xué)生舉一反三,進(jìn)行一些應(yīng)用開(kāi)發(fā)方面的訓(xùn)練。在充分利用好現(xiàn)有精選教材的同時(shí),可以組織編寫更為適合自己專業(yè)特色的新教材。
此外由于C++知識(shí)體系復(fù)雜,內(nèi)容繁多,但教學(xué)時(shí)數(shù)相當(dāng)有限,所以為了更好地提高教學(xué)質(zhì)量,教師在理論講授時(shí)必須要做到教學(xué)內(nèi)容系統(tǒng)連貫,一般內(nèi)容點(diǎn)到即可(如C++的基本數(shù)據(jù)類型、程序的三種基本結(jié)構(gòu)等等),留給學(xué)生自學(xué)練習(xí),重點(diǎn)難點(diǎn)內(nèi)容要多講(如指針概念的應(yīng)用、虛函數(shù)與多態(tài)性、重載與模板的應(yīng)用等等),而且還要注意精講多練,這樣一方面可以有效地解決教學(xué)課時(shí)少內(nèi)容多的矛盾,另一方面也可以充分調(diào)動(dòng)學(xué)生自學(xué)的積極性,培養(yǎng)學(xué)生的自學(xué)能力。endprint
針對(duì)教學(xué)計(jì)劃所規(guī)定的教學(xué)內(nèi)容科學(xué)合理地分配教學(xué)課時(shí)也是至關(guān)重要的問(wèn)題,為了有效地提高教學(xué)質(zhì)量,我們把教學(xué)內(nèi)容傳授分為兩個(gè)階段:第一階段就是在前面48個(gè)基本學(xué)時(shí)內(nèi)把C++的基本內(nèi)容全部傳授完畢;第二階段就是在另外兩周的課程綜合實(shí)踐的時(shí)間里,利用學(xué)習(xí)時(shí)間相對(duì)集中的優(yōu)勢(shì),結(jié)合以前學(xué)過(guò)的內(nèi)容,簡(jiǎn)練地介紹一下界面模式的API編程,系統(tǒng)而精練地重點(diǎn)講授基于微軟的MFC編程。
3.3改革實(shí)踐教學(xué)
C++程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,實(shí)踐訓(xùn)練環(huán)節(jié)相當(dāng)重要,實(shí)踐能力的培養(yǎng)也是該課程的核心任務(wù),而且學(xué)生也只有通過(guò)大量的上機(jī)實(shí)驗(yàn)才能真正理解和消化教材上的理論知識(shí)。實(shí)踐教學(xué)包括課程實(shí)驗(yàn)和課程綜合實(shí)踐兩個(gè)環(huán)節(jié)。
課程實(shí)驗(yàn)主要是檢查學(xué)生對(duì)基本知識(shí)點(diǎn)的理解和掌握情況,側(cè)重單元知識(shí)點(diǎn)的強(qiáng)化培訓(xùn)。采取的主要措施有: 根據(jù)課堂講授的實(shí)例,恰當(dāng)設(shè)置實(shí)驗(yàn),注意使學(xué)生學(xué)習(xí)編程逐步從模仿轉(zhuǎn)向設(shè)計(jì),要求學(xué)生事先編好程序填寫實(shí)驗(yàn)報(bào)告再進(jìn)實(shí)驗(yàn)室,提高實(shí)驗(yàn)課的效率,學(xué)生在自己成功地編制、調(diào)試、運(yùn)行實(shí)驗(yàn)程序后,及時(shí)將經(jīng)過(guò)整理后的實(shí)驗(yàn)結(jié)果通過(guò)實(shí)驗(yàn)室的局域網(wǎng)提交至服務(wù)器,同時(shí)要求學(xué)生自己也要及時(shí)用移動(dòng)硬盤把自己的實(shí)驗(yàn)程序保留下來(lái),以便將來(lái)進(jìn)一步的復(fù)習(xí)參考。要求學(xué)生這樣做的目的,一方面可以督促學(xué)生按時(shí)按量地完成要求的實(shí)驗(yàn)作業(yè),另一方面讓學(xué)生保留下自己的程序,能讓學(xué)生有種成就感,從而激發(fā)學(xué)生的學(xué)習(xí)興趣。實(shí)驗(yàn)過(guò)程中指導(dǎo)教師要注意兩個(gè)方面的問(wèn)題,第一就是從一開(kāi)始就注意培養(yǎng)學(xué)生編程的規(guī)范化及標(biāo)準(zhǔn)化素質(zhì),因?yàn)橐粋€(gè)高質(zhì)量的程序需要規(guī)范的命名、科學(xué)的編碼風(fēng)格及必要的注釋;第二就是要使學(xué)生能學(xué)會(huì)及時(shí)發(fā)現(xiàn)問(wèn)題及時(shí)地利用調(diào)試工具、手段等解決程序中出現(xiàn)的問(wèn)題。實(shí)驗(yàn)課后教師必須做些歸納總結(jié),對(duì)于一些共性的問(wèn)題,教師必需提出來(lái)進(jìn)行重點(diǎn)總結(jié)講解,以利于學(xué)生全面掌握。
課程綜合實(shí)踐這個(gè)環(huán)節(jié)有兩周時(shí)間集中進(jìn)行學(xué)習(xí),在這兩周的時(shí)間里,除了要對(duì)MFC編程理論知識(shí)進(jìn)行重點(diǎn)介紹,強(qiáng)化訓(xùn)練外,更為重要的是要對(duì)已學(xué)過(guò)的程序設(shè)計(jì)內(nèi)容進(jìn)行綜合性的運(yùn)用來(lái)編制一個(gè)功能比較復(fù)雜的應(yīng)用程序。為了更好地提高綜合實(shí)踐的教學(xué)質(zhì)量,我們強(qiáng)調(diào)學(xué)生要按軟件工程的思想對(duì)一個(gè)應(yīng)用程序要首先進(jìn)行需求分析,明確應(yīng)用程序要實(shí)現(xiàn)的各項(xiàng)功能;接下來(lái)采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想對(duì)應(yīng)用程序進(jìn)行總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),即設(shè)計(jì)出應(yīng)用程序中所需要的各種類及類與類之間的關(guān)系,并完成每個(gè)類的屬性和方法設(shè)計(jì);然后再進(jìn)行編碼調(diào)試運(yùn)行開(kāi)發(fā)。在這個(gè)環(huán)節(jié)的代碼編寫過(guò)程中我們要求學(xué)生充分利用MFC強(qiáng)化訓(xùn)練中學(xué)習(xí)的內(nèi)容進(jìn)行可視化編程,即學(xué)即用,發(fā)現(xiàn)問(wèn)題指導(dǎo)教師要教會(huì)學(xué)生充分利用VC++集成開(kāi)發(fā)環(huán)境的調(diào)試工具進(jìn)行調(diào)試,及時(shí)地解決程序設(shè)計(jì)中出現(xiàn)的各種問(wèn)題,這樣既可以充分調(diào)動(dòng)學(xué)生學(xué)習(xí)MFC編程的學(xué)習(xí)興趣,又能充分保證學(xué)生綜合編程練習(xí)的順利完成。
3.4改革考核環(huán)節(jié)
怎么考核對(duì)學(xué)生的學(xué)習(xí)有著十分重要的導(dǎo)向作用。以往的考核中以筆試為主,忽略了對(duì)學(xué)生編程能力的考核,這不能全面反映出學(xué)生學(xué)習(xí)的真實(shí)水平和教師的教學(xué)效果。為了更好地運(yùn)用考核指揮捧作用,我們對(duì)考核環(huán)節(jié)作了如下改革:
1)改革考試方式,注重提高學(xué)生動(dòng)手能力。為了改革C++程序設(shè)計(jì)課程的考試方式,我們制定了詳細(xì)的課程考核計(jì)劃,注重加強(qiáng)教學(xué)過(guò)程考核,且考核形式也注重多樣化、強(qiáng)化教學(xué)過(guò)程中學(xué)生能力培養(yǎng)。
2) 改革考試內(nèi)容,注重提高學(xué)生綜合能力。在檢驗(yàn)學(xué)生基本知識(shí)掌握情況的同時(shí),注重學(xué)生思維能力、實(shí)踐能力、創(chuàng)新精神的培養(yǎng)和綜合運(yùn)用知識(shí)分析問(wèn)題、解決問(wèn)題的能力考核。
3) 賽考結(jié)合,注重提高學(xué)生創(chuàng)新能力。課程考試與課程競(jìng)賽相結(jié)合,制訂將比賽成績(jī)與考試成績(jī)掛鉤的相關(guān)管理辦法,激勵(lì)學(xué)生奮發(fā)學(xué)習(xí),提高學(xué)生創(chuàng)新能力。
為了搞好該課程的考試改革,任課教師須將考核方式、要求等提前告知學(xué)生,并使學(xué)生充分了解成績(jī)?cè)u(píng)定方案(如課堂表現(xiàn)、回答問(wèn)題、各種測(cè)驗(yàn)、作業(yè)、競(jìng)賽等實(shí)施計(jì)劃以及在課程最終成績(jī)中所占比例等)。實(shí)施過(guò)程中,任課教師須認(rèn)真做好過(guò)程成績(jī)記載,對(duì)每一學(xué)生的每一項(xiàng)評(píng)定結(jié)果及時(shí)記錄在案,在課程結(jié)束后、期末考試前向?qū)W生公布。同時(shí)將過(guò)程考核標(biāo)準(zhǔn)、結(jié)論等資料進(jìn)行歸檔。通過(guò)上述考核環(huán)節(jié)的改革,基本能有效地發(fā)揮考核指揮棒的作用,激發(fā)學(xué)生對(duì)本課程學(xué)習(xí)的主觀能動(dòng)性,引導(dǎo)學(xué)生將更多的精力投入到實(shí)際編程能力的培養(yǎng).從而達(dá)到這門課程的教學(xué)目的。
4 結(jié)束語(yǔ)
高校C++程序設(shè)計(jì)課程改革的思路、方法多種多樣,但不管怎么變化,其宗旨都是為了不斷提高教學(xué)質(zhì)量,培養(yǎng)學(xué)生應(yīng)用C++程序設(shè)計(jì)語(yǔ)言編寫各種實(shí)際應(yīng)用程序的編程能力。在這個(gè)教學(xué)過(guò)程中,教師和學(xué)生都要充分發(fā)揮“主導(dǎo)—主體”作用,即教師和學(xué)生都必須充分發(fā)揮各自的主觀能動(dòng)性才能收到良好的教學(xué)效果,近些年來(lái),筆者在教師如何教學(xué),學(xué)生如何才能學(xué)好C++程序設(shè)計(jì)課程兩個(gè)方面進(jìn)行了不斷的探索和努力,積累了一些經(jīng)驗(yàn),通過(guò)后續(xù)跨學(xué)年的追蹤觀察發(fā)現(xiàn):將這些教學(xué)改革中所取得的成功經(jīng)驗(yàn)運(yùn)用于該課程教學(xué)過(guò)程中后,學(xué)生在后續(xù)的學(xué)年中應(yīng)用C++程序設(shè)計(jì)語(yǔ)言解決其他學(xué)科中的應(yīng)用編程問(wèn)題能力有顯著的提高。
【參考文獻(xiàn)】
[1]齊新軍,宗明魁. C + + 程序設(shè)計(jì)課程教改與學(xué)生實(shí)踐能力培養(yǎng)[J]. 中國(guó)新技術(shù)新產(chǎn)品,2009(19).
[2]呂智林,龔文英. VC++程序設(shè)計(jì)課程教學(xué)改革的探索[J]. 廣西大學(xué)學(xué)報(bào)(自然科學(xué)版),2004(9).
[3]王曉磊,汪強(qiáng). 高校 Visual C++程序設(shè)計(jì)課程教學(xué)改革初探[J]. 電腦學(xué)習(xí), 2009(6).endprint