韓冰,郭詠梅,候慧玲
(長治學(xué)院計算機(jī)系,山西長治046011)
以興趣為導(dǎo)向的“面向?qū)ο蟪绦蛟O(shè)計C++”教學(xué)實踐及探索
韓冰,郭詠梅,候慧玲
(長治學(xué)院計算機(jī)系,山西長治046011)
通過選擇學(xué)生感興趣的案例,提高教學(xué)的藝術(shù)性,強(qiáng)調(diào)與其他專業(yè)課之間的關(guān)系,采用面向?qū)嵺`能力的考核評價方法等,促進(jìn)C++教學(xué)中學(xué)生興趣及開發(fā)系統(tǒng)能力的提高,對面向?qū)ο蟪绦蛟O(shè)計C++教學(xué)改革進(jìn)行了有益的實踐和探索。
興趣;案例;教學(xué)改革
面向?qū)ο蟪绦蛟O(shè)計是高等院校計算機(jī)專業(yè)的重要課程,學(xué)習(xí)的具體語言不止一種,包括C++、Java、C#等。在面向?qū)ο蟪绦蛟O(shè)計教學(xué)中,駱斌、邵棟等[1]的教學(xué)理念是培養(yǎng)學(xué)生采用工程化方法構(gòu)建個人及小規(guī)模軟件系統(tǒng)能力為目標(biāo),以一個計算實例為線索,循序漸進(jìn)講授獨(dú)立類開發(fā)、多個類開發(fā)、具有圖形用戶界面和網(wǎng)絡(luò)功能的相對復(fù)雜系統(tǒng)開發(fā)。國偉[5]提出在面向?qū)ο蟪绦蜷_發(fā)中學(xué)習(xí)情境的引入會激發(fā)學(xué)生學(xué)習(xí)的興趣。沈煒,莊巧莉[4]提出內(nèi)部視角為出發(fā)點(diǎn)的教學(xué)方法。文章主要論述在面向?qū)ο蟪绦蛟O(shè)計C++教學(xué)中以提高學(xué)生興趣,掌握面向?qū)ο缶幊趟枷?,從而使學(xué)生可以具有小項目開發(fā)技能為目標(biāo)的教學(xué)實踐以及實踐成果。
不同學(xué)校C++的先修課程不同,有的直接學(xué)習(xí)C++,有的先修C語言,在文章中以先修C語言為例,主要存在的問題有:①通過C語言的學(xué)習(xí),學(xué)生已經(jīng)熟悉面向過程的編程,C++從名字上看很相似,所以學(xué)生開始學(xué)習(xí)時疑問多,興趣不大;②C語言建立的是控制臺應(yīng)用程序,C++的教學(xué)中如果也同樣只建立控制臺應(yīng)用程序,很難吸引學(xué)生,學(xué)生的編程積極性普遍不高;③課程內(nèi)容抽象,教學(xué)嚴(yán)謹(jǐn)?shù)且坏┤狈ι鷦踊顫?,就會大大降低學(xué)生的積極性和主動性;④教材中的例子老套,例如有的教材[3]采用的例子是迭代實現(xiàn)銀行管理信息系統(tǒng),每一章都會把新的知識點(diǎn)加入到已經(jīng)做好的系統(tǒng)中,但是銀行的存取款、利息的計算及支取邏輯本身比較復(fù)雜,增加了學(xué)生實現(xiàn)系統(tǒng)的難度;⑤學(xué)生的實踐非常重要,但是實踐的考評非常困難,很難避免作業(yè)的抄襲;⑥面向?qū)ο蟪绦蛟O(shè)計C++這一課程不是孤立的,與其他課程,例如軟件工程、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫技術(shù)、計算機(jī)網(wǎng)絡(luò)都有關(guān)系,在教學(xué)過程中只單純以掌握知識點(diǎn)為目標(biāo),對學(xué)生學(xué)習(xí)體系的建立、職業(yè)化發(fā)展有不利影響。
為了解決這些問題,就需要采用以興趣為導(dǎo)向的案例和任務(wù)驅(qū)動教學(xué)法并適當(dāng)調(diào)整教學(xué)內(nèi)容。愛因斯坦說過:“興趣是最好的老師”,激活學(xué)生的學(xué)習(xí)興趣,是學(xué)好一門學(xué)科的良好開端和動力。編程語言是枯燥的,面向?qū)ο蟮乃枷?,類的開發(fā),繼承和多態(tài),STL等知識點(diǎn)的掌握以及編程技能的融會貫通都離不開一個前提——學(xué)生有求知欲,學(xué)習(xí)態(tài)度端正。為了實現(xiàn)該目標(biāo),可以采取用興趣、知識點(diǎn)和相關(guān)案例相結(jié)合的方式來設(shè)計教學(xué)過程,盡量用對話框程序作為學(xué)生需要完成的目標(biāo)。
3.1選擇可以激發(fā)學(xué)生興趣的案例
學(xué)生對學(xué)習(xí)該課程帶來的結(jié)果很感興趣[2],并且希望得到學(xué)分以及好成績。另外通過學(xué)習(xí)進(jìn)行一些系統(tǒng)開發(fā)所帶來的成就感也是結(jié)果之一,所以教師可以在教學(xué)過程中將知識點(diǎn)和一些案例相結(jié)合[6],然后學(xué)生通過動手實踐掌握知識以及技能。面向?qū)ο蟪绦蛟O(shè)計C++教學(xué)重點(diǎn)主要有類和對象、STL、繼承、多態(tài)等,教師可以根據(jù)不同的教學(xué)重點(diǎn)采用有針對性的案例。
大家普遍對游戲感興趣,如果可以實現(xiàn)簡單游戲開發(fā)學(xué)生會有很強(qiáng)的成就感,所以游戲應(yīng)該作為案例的第一選擇。單個類的設(shè)計比較簡單,但類如果包含其他類的對象或是一個類使用其他類的對象就比較抽象,可以選擇俄羅斯方塊游戲的實現(xiàn)為內(nèi)容,單元格類CCell、游戲區(qū)域類CGrid和方塊類CPiece之間包含、使用的關(guān)系非常適合用于理解類之間的關(guān)系以及實現(xiàn)多個類開發(fā)。STL的內(nèi)容非常廣泛,可以選擇一種容器進(jìn)行教學(xué),例如vector,計算器程序可以很好的用來理解并掌握vector這一容器。繼承和虛函數(shù)的學(xué)習(xí)可以選擇的案例同樣很多,例如畫圖程序,元素類CElement、圓類Circle、矩形類CRectangle、線段類Cline的實現(xiàn)可以很好的令學(xué)生理解并掌握知識要點(diǎn)。運(yùn)算符重載的掌握可以根據(jù)一連串的需求為出發(fā)點(diǎn),例如日期之間的比較,計算相差的天數(shù),相差的秒數(shù)等,通過時間類CTime、日期類CDate、日期時間類CDateTime的實現(xiàn)來進(jìn)行學(xué)習(xí)。
3.2開發(fā)圖形用戶界面系統(tǒng)
如前文所說,學(xué)生如果一直建立控制臺應(yīng)用程序,對面向?qū)ο蟪绦蛟O(shè)計C++的學(xué)習(xí)興趣會大打折扣,所以應(yīng)盡量建立MFC項目的對話框程序,這樣圖形用戶界面非常容易設(shè)計,只需要專注于程序邏輯。在教學(xué)過程中,教師需要適當(dāng)引入消息處理機(jī)制和MVC框架,案例實現(xiàn)時將MFC類及一些函數(shù)的使用略講。
3.3教學(xué)時運(yùn)用教學(xué)藝術(shù)
享受學(xué)習(xí)過程,對所學(xué)內(nèi)容感興趣是更高層次的動機(jī),而且對學(xué)習(xí)的激勵有持續(xù)的作用[2]。如果教學(xué)內(nèi)容枯燥無味,教師的講授不能吸引學(xué)生,大部分學(xué)生昏昏入睡、開小差,那么也許教師準(zhǔn)備的很充分,仍然不能提高學(xué)生的主動性和積極性。所以教師要掌握上課的節(jié)奏,一旦發(fā)現(xiàn)學(xué)生的注意力不集中,可以適當(dāng)調(diào)劑一下氛圍。面向?qū)ο蟪绦蛟O(shè)計課程的特點(diǎn)是學(xué)生不僅要掌握知識,更要掌握技能,擁有進(jìn)行小型系統(tǒng)開發(fā)的能力。所以只通過多媒體設(shè)備傳遞知識,學(xué)生的注意力很難集中,為了提高學(xué)生的動手實踐能力,教師如果能夠直接現(xiàn)場書寫代碼,這種方式更直接,更容易吸引學(xué)生的注意力。
3.4強(qiáng)調(diào)與其他專業(yè)課之間的關(guān)系
在教學(xué)過程中強(qiáng)調(diào)《面向?qū)ο蟪绦蛟O(shè)計C++》與后續(xù)課程之間的關(guān)系,并且通過實例驗證以更好的激發(fā)學(xué)生學(xué)習(xí)的興趣及積極性。例如訪問數(shù)據(jù)庫或聊天室的建立,涉及到《數(shù)據(jù)庫技術(shù)》這一課程,并與《計算機(jī)網(wǎng)絡(luò)》、《TCP/IP協(xié)議》相關(guān)。
5.采用側(cè)重學(xué)生實踐能力的考核評價方法
學(xué)生的動手實踐過程非常重要?!睹嫦?qū)ο蟪绦蛟O(shè)計C++》的實踐是通過不同系統(tǒng)開發(fā)來完成的,系統(tǒng)完成的時間先后、完成度、系統(tǒng)功能的擴(kuò)展都作為評分的標(biāo)準(zhǔn)。為了避免抄襲,要求學(xué)生的項目名、類名中包含自己的名字,每個類、成員名旁要求有注釋。最終的成績實踐占60%,期末試卷成績占30%,平時成績占10%。
通過以上措施的實施,學(xué)生對《面向?qū)ο蟪绦蛟O(shè)計C++》的興趣增加,完成的代碼行數(shù)大約2100行,對93名學(xué)生做問卷調(diào)查后結(jié)果如表1、表2所示。
表1 不同項目興趣程度
表2 知識點(diǎn)掌握程度
從表1、2可以看出,興趣與掌握程度基本成正比,將近七成學(xué)生通過學(xué)習(xí)實踐基本掌握了C++語言,可以進(jìn)行小型系統(tǒng)的開發(fā),學(xué)生對游戲的興趣最高。數(shù)據(jù)庫訪問程序因為涉及到后續(xù)課程內(nèi)容,學(xué)生的積極性不是很大。其中對教學(xué)內(nèi)容完全沒有興趣或完全沒有掌握的學(xué)生大部分是C語言基礎(chǔ)差,函數(shù)、指針等沒有掌握,對新的知識也就提不起興趣,所以前期課程的掌握對后續(xù)課程的學(xué)習(xí)非常重要。
文章主要論述了在《面向?qū)ο蟪绦蛟O(shè)計C++》教學(xué)過程中,以興趣為導(dǎo)向,調(diào)整教學(xué)方法及內(nèi)容,使學(xué)生盡可能掌握用C++開發(fā)系統(tǒng)的能力。教學(xué)過程中應(yīng)多與學(xué)生進(jìn)行交流,授課時控制課堂節(jié)奏,應(yīng)適當(dāng)增加實踐課時。學(xué)生如何能夠更好的掌握技能,這也是今后教學(xué)中努力的方向。
[1]駱斌,邵棟,任桐偉.軟件開發(fā)的編程基礎(chǔ)[M].機(jī)械工業(yè)出版社,2012.
[2]呂金城.淺談?wù)n堂興趣激勵與高等數(shù)學(xué)教學(xué)改革[J].教育與職業(yè),2006,(05):88-89.
[3]鄭莉.C++語言程序設(shè)計[M].清華大學(xué)出版社,2015.
[4]沈煒,莊巧莉.基于內(nèi)部視角的C++面向?qū)ο蠼虒W(xué)實踐[J].中國校外教育,2010,(04):161-162.
[5]國偉.《C#面向?qū)ο蟪绦蛟O(shè)計課程》教學(xué)改革探討與實踐[J].科技創(chuàng)新導(dǎo)報,2013,(02):154.
[6]李秉璋.以提高應(yīng)用能力為目標(biāo)進(jìn)行計算機(jī)專業(yè)課教學(xué)-“面向?qū)ο蟪绦蛟O(shè)計”教學(xué)改革探索[J].計算機(jī)教育,2006,(12):28-31.
(責(zé)任編輯張劍妹)
G642
A
1673-2014(2016)05-0092-03
長治學(xué)院教改項目(JY201502);2015年山西省高等學(xué)校教學(xué)改革項目(2015113);山西省教育科學(xué)“十二五”規(guī)劃2014年度規(guī)劃課題項目(GH-14031)。
2016—05—16
韓冰(1983—)女,山西沁水人,講師,碩士,主要從事圖形圖像方面研究。