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