陳曉 李碧濤
摘 要
C++是計算機專業(yè)領域一門基礎的,也是重要的課程,它起到承上啟下的作用。讓學生直接學習C++面向對象編程是不合適的,會使學生難以有效的理解C++語言及面向對象技術。本文提出了若干C++面向對象程序設計的改革方案,有助于學生更好的學習C++的編程技術,面向對象程序設計的理念。
關鍵詞
C++;面向對象程序設計;教學改革; 微課;翻轉課堂
中圖分類號: G642.0;TP312.1-4 ? ? 文獻標識碼: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 06 . 10
0 引言
計算機科學與技術(計科)專業(yè)是高等教育的一個基本專業(yè),涉及了許多的課程,構建成了一個完整的體系。計科專業(yè)的學生最基本的能力就是要會編程。而程序設計是計科專業(yè)的必修課程,其中C語言,C++語言和JAVA語言是計科專業(yè)主流的教學語言[1]。一般來說學習的過程都是先學習C語言,再依次學習C++和JAVA兩門語言。其中C++面臨著承上啟下的關鍵作用,讓學生從面向過程的C語言過渡到面向對象的編程語言中[2],即是對C語言的鞏固,也是對JAVA學習的先導,有著十分重要的地位。國內高校不斷的探索和研究C++的教學方法,希望達到良好的教學目的,讓學生編程能力加強的同時,也建立起面向對象的基本概念的思維模式[3]。
1 現(xiàn)階段計科專業(yè)C++教學面臨的問題
C++在編程語言里面屬于難學、難懂的一門編程語言。如何讓學生學好C++,是個不斷探索的過程[4]。
近年來國內高校對C++面向對象程序設計的改革有如下幾種方式[5]:
(1)增加實例教學,如動機理論,遷移理論等。
(2)將面向對象的理論知識整合到程序設計教學中。
(3)以面向對象的觀念來分析現(xiàn)實的實例,然后代碼化來增強理解。
上述教學方法的探索和研究在一定程度上提高了學生對于C++面向對象程序設計的理解,但是這還不夠。因為如下幾點:
(1)教學方式還是使用的非常傳統(tǒng)的教學方式如理論教育、課后作業(yè)等。
(2)授課方法還是傳統(tǒng)的板書和講解,而重點內容也偏向基礎理論。
(3)學生上課的時候缺乏實際編程操作,使得學生難理解,難應用。
在這樣的情況下,一學期的工作下來,常常使得學生所掌握的也僅僅只是應對書上的題目,而不能對實際問題進行良好的分析,學不會使用計算機去分析解決問題[6]。
2 C++教學的改革
教學的改革不是單方面的內容,應該從幾個方面去改革。包括知識點的側重,教學方式,授課方法等。在本文看來,C++的教學改革內容應該從以下幾個方面入手。
2.1 使用交叉教學的方式
學習C++的學生都已經學習過先修課程C語言,而計科專業(yè)的學生程序設計的入門緩慢,基礎不穩(wěn)。C++教學課程的難點往往集中在面向對象的理念,指針和引用的區(qū)別上。而教學的重點就要落在這些方面。
因此,在教學的時候,應該先安排2-4個課時來引導學生對C語言中的指針與結構體部分進行復習。在復習的過程中選擇以生活中的實例分析并結合一些綜合題目進行講解,在復習結構體部分的時候,適度的引入面向對象的小部分知識,使學生能夠理解C和C++的不同,對面向對象有一些初步的認識,在后面講解類的時候,形成半新知識半復習的狀態(tài)。在以后講解C++的時候,也可以和結構體部分進行對照,讓學生有更深層次的理解,能夠明白萬事萬物皆對象。在復習指針的時候,讓學生更進一步的強化地址的概念,有助于后期理解多態(tài)是一種地址指向而不是賦值。
2.2 增強上機實驗
如果有條件,類似于C++,JAVA等計科的編程課程應該安排在機房上課。在上課的時候,講完部分內容就讓學生練習,形成強化記憶。實驗課上,不應該只是讓學習練習書的例題以及課后題,本文建議是安排一個綜合的實驗,如最后做成一個軟件的方式來引導學生實驗。一個良好的綜合實驗可以讓學生循序漸進地掌握知識,而且前后呼應,內容承接。不會如單純地做練習,做過就忘,沒有傳承性。前面的知識后面可以用到,后面編程的時候又可以復習前面的內容,是一個良好的環(huán)形。一個整體的實驗,可以達到讓學生驗證、理解和鞏固知識的目的。
該實驗由老師主導,引導學生分組討論研究,但是要獨立完成。每次完成一部分,直到最終有成品。一個軟件的制作成功,其效果遠大于單純的練習,會讓學生有極大的興趣。
每次實驗課讓學生完成一部分內容,并要求課后提交實驗報告,可以達到督促學生認真按時完成,深化編程思想,了解程序設計與軟件制作的整個流程。而教師也可以通過學生的實驗報告了解學生學情,以便在以后的理論講解中查漏補缺,讓每個學生都能夠進行全面而有效的學習。最后讓學生之間互相對比自己的作品,互相討論異同,加深對于知識的了解。
2.3 改變授課方法
現(xiàn)在是互聯(lián)網(wǎng)時代,授課方法早已不局限于PPT板書等。出現(xiàn)了多種的現(xiàn)代教學方法,如微課、翻轉課堂、思維導圖、慕課和學習通等[7]。作為21世界的新型教師,應該努力掌握這些新的知識,與學生的授課采用新的方式,即可以使得學生從無聊的課程上解脫,也是一種自我進步。
C++課程難,人的記憶能力和領悟能力是不一樣的。初次上課之后,學生很容易出現(xiàn)記不牢,內容有偏差,和對內容理解不透徹等問題。教師可以自己做成微課等形式對課堂教學進行補充。
微課是指運用信息技術按照認知規(guī)律,呈現(xiàn)碎片化學習內容、過程及擴展素材的結構化數(shù)字資源。其主要特點是:
(1)時間短:通常一節(jié)微課不會超過10分鐘。相對于45分鐘的教學時間來說,微課短小精悍,內容集中。
(2)內容少:因為微課的時間短,所以其問題聚焦,主題突出,結構緊湊,更適合教師講解和學生學習。用微課來突出某個知識點的內容,或者反應某個教學環(huán)節(jié)中的內容,是一種有效的補充。
(3)文件小,易傳播:現(xiàn)在大家都用的是智能手機,手機流量也是大流量時代,微課非常便于學生在線觀摩,可以達到隨時隨地都可以學習的目的。
(4)情景化:微課由于是教師在課下制作,因此可以使用很多其他的資料來輔助教學,這是常規(guī)教學中很難達到的效果,如大量的多媒體資源,以圖形化,可視化的方式來幫助學生理解知識。
除了微課以外,翻轉課堂也是一種重要的教學方式。翻轉課堂打破了舊的教學方式,將學習的決定權由教師轉交給學生。在這種教學模式下,課堂的時間內,學生能夠專注于主動的基于實例的學習,從而獲得更深層次的理解。教師也不需要再戰(zhàn)勝課堂的時間來授課,學生能夠在課前完成自主學習,如以看視頻、聽播客、閱讀電子書,網(wǎng)絡交流,隨時隨地地查閱需要的材料。教師也能有更多的時間與學生進行交流。課后,學生需要自主規(guī)劃學習內容、節(jié)奏、風格和呈現(xiàn)知識的方式,教師則采用講授和協(xié)作來滿足學生的需要與解決學生的問題,其目的是為了讓學生進行更真實的學習。在這種模式下,教師傳統(tǒng)的傳道、授業(yè)等職能可以得到減輕,而將重點放在解惑上,使得學生的知識掌握的更加堅實。
3 結論
時代在變,授課的方式也需要改變。傳統(tǒng)很重要,但與時俱進也很重要。在如今的計科教學中,C++的分量舉足輕重,但是難度系數(shù)也很高。通過一定的教學改革,授課方法的變更,綜合性實驗教學的使用,借助微課、翻轉課堂等新的教學手段,能夠讓學生更好地學習C++面向對象程序設計。即鞏固了C語言的知識,又了解了面向對象的知識,為以后學習打下良好的基礎。
參考文獻
[1]馮博琴."計算機基礎教育新階段的教學改革研究," 中國大學教學, pp. 7-10, 2004.
[2]李秉璋,徐亞平,羅燁,and 黃海軍."以提高應用能力為目標進行計算機專業(yè)課教學——“面向對象程序設計”教學改革探索," 計算機教育, pp. 30-33.
[3]高枚,楊志強,許蘭蘭, and 龔沛曾."C/C++教學改革的探索與實踐," 計算機時代, pp. 8-10, 2005.
[4]薄文娟."C++教學改革與探索," 環(huán)球市場信息導報, pp. 122-122, 2017.
[5]孫毅,劉玉蘭,and 逯柳."《C++程序設計》課程教學改革與實踐," 科學中國人, 2017.
[6]邰非."基于實踐的C++互動教學模式的建立," 高教學刊, pp. 127-128, 2017.
[7]焦建利."微課與翻轉課堂中的學習活動設計," 中國教育信息化, 2014.