馬振嬰
摘 要 基于高校非計算機專業(yè)的實際教學(xué)需求,進(jìn)行C/C++融合課程的探索和實踐,精心設(shè)計教學(xué)和實驗內(nèi)容,并采用對比式、互動式、聯(lián)想式和啟發(fā)式教學(xué)模式,取得較好的教學(xué)效果。但在教學(xué)中仍需解決學(xué)生個體差異大等各種問題。
關(guān)鍵詞 非計算機專業(yè);C/C++融合課程;網(wǎng)上教學(xué)平臺
中圖分類號:G642.3 文獻(xiàn)標(biāo)識碼:B
文章編號:1671-489X(2017)10-0116-02
1 引言
C和C++是高校兩門重要的基礎(chǔ)選修類程序設(shè)計課程,大部分理工科專業(yè)對兩門課程都有要求。但目前的狀況是基礎(chǔ)和專業(yè)必修課的學(xué)分要求增加,導(dǎo)致基礎(chǔ)選修課的學(xué)分縮減,各專業(yè)在制訂課程計劃時,都只能選擇C和C++其中的一門課程。更由于教學(xué)方面的欠缺,相當(dāng)一大部分學(xué)生(非計算機專業(yè))并不知道C和C++之間的密切聯(lián)系,在求職應(yīng)聘或?qū)嵙?xí)工作中走了不少彎路。
為了解決這個問題,筆者在教學(xué)內(nèi)容和方式上進(jìn)行研究和探索,嘗試將兩門課程進(jìn)行融合教學(xué)。這樣做既可以讓學(xué)生獲取“修一門,得兩門”的益處,還可以讓他們更加深刻地理解面向結(jié)構(gòu)程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計的區(qū)別,為今后進(jìn)一步進(jìn)行程序設(shè)計的學(xué)習(xí)打下良好的基礎(chǔ)。
當(dāng)然,如何在有限的課時內(nèi)進(jìn)行有效的融合教學(xué),并不是一件簡單的事情,需要對教學(xué)和實驗內(nèi)容安排、教學(xué)方式和方法進(jìn)行深入的研究和總結(jié),以避免兩門課程都學(xué)不好的尷尬局面。下面筆者將結(jié)合教學(xué)實踐經(jīng)驗,對這兩個方面進(jìn)行深入探討,以求拋磚引玉。
2 教學(xué)和實驗內(nèi)容的設(shè)計
教學(xué)內(nèi)容設(shè)計 表1是單C、單C++和C/C++融合課程的理論課時設(shè)計(理論32學(xué)時)。在融合課程的教學(xué)安排中,不帶下劃線的是C和C++共有的部分,正常講授即可;帶下劃線的是C++區(qū)別于C的部分,需要用到對比、聯(lián)想和啟發(fā)式等教學(xué)技巧。具體的教學(xué)方法將在下一節(jié)進(jìn)行詳細(xì)討論。
第三章節(jié)(9~12課時)在學(xué)生掌握了函數(shù)的使用后,即可引入對象的概念。沒有在課程剛開始就引入對象編程的原因是,學(xué)生還沒有對變量與函數(shù)有深刻的認(rèn)識,過早引入對象的概念,容易誘發(fā)學(xué)生的畏難情緒,不利于他們的消化和吸收。
單C++課程的后面部分內(nèi)容,這類高級部分安排的課時數(shù)比較少。因為32課時的學(xué)時有限,同時因為非計算機專業(yè)學(xué)生的特點,對他們的要求比計算機專業(yè)的要相對降低一些,所以這類的高級部分和指針的部分可以做相應(yīng)的弱化。
實驗設(shè)計 C和C++的實驗學(xué)時都是32學(xué)時,一共八個小實驗,每個實驗四學(xué)時,具體內(nèi)容安排見表2。C/C++融合課程從第二個實驗開始,就引入面向?qū)ο蟮木幊獭T诿看螌嶒炛?,要求學(xué)生用面向過程和面向?qū)ο髢煞N方式來完成同一個題目。第四個實驗(字符數(shù)組)中,要求用string.h系統(tǒng)庫函數(shù)和string對象兩種方式實現(xiàn)。最后一個實驗中,引導(dǎo)學(xué)生探索使用C++對象代替C的結(jié)構(gòu)數(shù)據(jù)類型的可行性。
3 教學(xué)方式
對比式教學(xué) 俄國教育家烏申斯基說過:“比較是一切理解和思維的基礎(chǔ),我們正是通過比較來了解世界上的一切。”由于C和C++的緊密聯(lián)系性質(zhì),在C/C++融合課程中,筆者大量采用對比教學(xué)方法,如printf(scanf)和cin(cout)的對比,string.h庫函數(shù)和string對象的對比,用兩種方法(基于函數(shù)和基于對象)實現(xiàn)同一個實驗設(shè)計的對比,等等。筆者還做了一些民意調(diào)查,了解學(xué)生更習(xí)慣和掌握哪一種編程方式,并讓他們總結(jié)和分析兩種方式的優(yōu)缺點。
互動式教學(xué) 程序設(shè)計是一門需要和學(xué)生充分交流的課程。課堂內(nèi)外采用Sakai(網(wǎng)上教學(xué)平臺)和雨課堂(手機APP)作為教學(xué)輔助手段,以增加和學(xué)生的互動性。課前教師將課堂內(nèi)容PPT推送給學(xué)生進(jìn)行預(yù)習(xí),課堂上在講完一個知識點后,會推送相應(yīng)的習(xí)題給學(xué)生,學(xué)生將答案返回給教師,教師即可了解學(xué)生對這個知識點的掌握程度。課后的習(xí)題推送和批閱也可以在雨課堂APP上進(jìn)行。
聯(lián)想式教學(xué) 為了增強課堂的生動性,把面向函數(shù)和面向?qū)ο髢蓚€概念和現(xiàn)實生活聯(lián)系起來。面向函數(shù)的編程用“分而治之”的道理來闡述。面向?qū)ο蟮母拍?,則用生活中的人及事物進(jìn)行聯(lián)想。比如:人有身高、體重、外貌等各種屬性,還有跑、跳、畫畫、唱歌、跳舞等各種動作和技能;對象封裝的變量聯(lián)想到人的屬性,對象封裝的函數(shù)聯(lián)想到人的動作和技能等。
啟發(fā)式教學(xué) 由于課時少,教學(xué)內(nèi)容多,又是C/C++兩門課程的融合教學(xué),時間非常緊張。因此,針對非計算機專業(yè)學(xué)生的特點,對各章節(jié)里面那些實用性不強、偏難偏深的點進(jìn)行刪減。未講的部分告訴能力強的學(xué)生課外學(xué)習(xí)。要求學(xué)生課前必須充分預(yù)習(xí),在課堂上只學(xué)習(xí)重難點,利用雨課堂隨時答疑,并積極開展一些啟發(fā)式的探討,要求學(xué)生花一定的時間在課外完成。比如:指針與內(nèi)存地址的關(guān)系,就需要學(xué)生有一定的課外學(xué)習(xí)量才能更好地理解;實驗三的掃雷游戲,教師給出邊界判定方法,然后告訴學(xué)生說這個方法還有很多值得改進(jìn)的地方,從而啟發(fā)學(xué)生進(jìn)行進(jìn)一步的探索。
4 實踐效果
在重慶大學(xué)非計算機專業(yè)對C/C++融合課程進(jìn)行了教學(xué)實踐。課程進(jìn)行當(dāng)中利用Sakai(網(wǎng)上教學(xué)平臺)、雨課堂和QQ答疑群和學(xué)生進(jìn)行了交流。大部分學(xué)生反映,對比學(xué)習(xí)和啟發(fā)式學(xué)習(xí)對他們幫助很大。教學(xué)方式生動靈活,能夠有效激發(fā)學(xué)生對程序設(shè)計學(xué)習(xí)的興趣,學(xué)到的東西比單一的C或C++課程要多。
最終的考核體系是卷面60%+平時40%。從成績來看,優(yōu)良率20%,合格率65%,不及格率15%;和單C課程比較,差別不大。
5 存在問題
由于來自不同省份不同地區(qū),學(xué)生自身的基礎(chǔ)相差太大。有些學(xué)生小學(xué)就開始接觸程序設(shè)計,非常快地接受和適應(yīng)了對比和啟發(fā)式教學(xué);而有些學(xué)生(特別是邊遠(yuǎn)地區(qū)),整門課上完了還沒有弄清楚分支和循環(huán),更別說后續(xù)部分了。如何解決學(xué)生間存在的巨大的個體差異帶來的問題,值得繼續(xù)深入思考和探索。另外,仍有部分學(xué)生感覺程序設(shè)計課程枯燥無味,實用性不強。
6 結(jié)論
從學(xué)生的意見反饋和最后考核的成績來看,C/C++融合課程的教學(xué)設(shè)計方案合理,理論和實驗內(nèi)容安排恰當(dāng),教學(xué)方式和手段行之有效。今后將繼續(xù)完善理論和實驗設(shè)計,改進(jìn)教學(xué)方法,以增強課堂的實用性和趣味性。
參考文獻(xiàn)
[1]黃轉(zhuǎn)群.在程序設(shè)計教學(xué)中引入能動模式,提高課堂教學(xué)有效性[J].中國信息技術(shù)教育,2009(24):91.
[2]劉煒.論如何應(yīng)用對比教學(xué)法進(jìn)行匯編語言教學(xué)[J].中國新通信,2013(4):64.endprint