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