王國強+闞紅星+楊松濤+金力
摘要:針對實際教學(xué)過程中發(fā)現(xiàn)的一些問題,結(jié)合醫(yī)藥軟件開發(fā)專業(yè)的特點,提出了一種結(jié)合慕課的C++程序設(shè)計課程教學(xué)模式。并分別從課前自學(xué)慕課的設(shè)計、課堂理論教學(xué)的設(shè)計、課堂實驗教學(xué)的設(shè)計和課程考核方式的設(shè)計等方面進(jìn)行了詳細(xì)的闡述。
關(guān)鍵詞:慕課;C++程序設(shè)計課程;教學(xué)改革
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)33-0144-03
Abstract: Aiming at some problems in the actual teaching process and the characteristics of medical software development specialty, a teaching mode of C++ programming course combined with MOOC is proposed, which is described in detail from the aspects of the design of self - learning MOOC before class, the design of theory teaching, the design of experimental teaching and the design of course assessment method.
Key words: MOOC; C++ Programming Course; Teaching reform
1 引言
《C++程序設(shè)計》是高級語言程序設(shè)計的一個入門課程,也是安徽中醫(yī)藥大學(xué)的醫(yī)藥軟件開發(fā)專業(yè)本科生的一門必修的基礎(chǔ)課程。這門課的教學(xué)目標(biāo)是使學(xué)生掌握C++程序設(shè)計語言的基本語法、掌握面向?qū)ο蟪绦蛟O(shè)計的基本概念,學(xué)會使用C++程序的集成開發(fā)環(huán)境,并為后續(xù)的專業(yè)課程學(xué)習(xí)打下堅實的基礎(chǔ)。
傳統(tǒng)的C++程序設(shè)計課程教學(xué)存在著重理論輕實踐、學(xué)生學(xué)習(xí)興趣不高、學(xué)生動手能力弱等突出問題,急需一種新的教學(xué)模式來提高教學(xué)效果。慕課(Massive Open Online Course, MOOC)是最近興起的一種新的教學(xué)模式,具有很多優(yōu)點,結(jié)合慕課進(jìn)行混合式教學(xué)可以很好地解決學(xué)生被動聽課、學(xué)生對課堂教學(xué)內(nèi)容理解不透徹、課堂課時不夠等問題[1],也為C++程序設(shè)計課程的教學(xué)改革提供了一種新的思路。
2 研究背景
2007年,美國猶他州立大學(xué)的David Wiley教授和加拿大里賈納大學(xué)的Alee Couros教授分別首次提出了慕課的概念,此后基于慕課的教學(xué)改革和教學(xué)模式引起了國內(nèi)外學(xué)者的廣泛關(guān)注[2]。2012年是慕課快速發(fā)展的一年,目前著名的三大慕課平臺Udacity、Coursera和edX都在這一年被搭建起來;從2013年開始,國內(nèi)的北京大學(xué)、清華大學(xué)、香港中文大學(xué)也陸續(xù)加盟這三大慕課平臺,并積極開展對基于慕課的教育模式的研究[3]。
相比于傳統(tǒng)的教育模式,基于慕課的新型教育模式具有很多的優(yōu)點,比如:學(xué)習(xí)者可以自由選擇學(xué)習(xí)的時間和地點[1];學(xué)生有不理解的知識點可以隨時復(fù)習(xí)之前的慕課,相當(dāng)于接受了老師的單獨輔導(dǎo)[1];慕課打破了教育的壁壘,使得教育更加公平、公開,任何人都能獲得世界上最好的教育[4];慕課教育幾乎可以完成傳統(tǒng)教育的一切內(nèi)容:授課、作業(yè)、考試、頒發(fā)證書等[4]。不過,單一的慕課教育模式也存在著一些不足,比如:培養(yǎng)出來的學(xué)生只追求膚淺的、通用的知識;因為可以多次重修一門課程,學(xué)生缺乏動力和壓力等[4]。而將傳統(tǒng)的課堂教學(xué)和慕課相結(jié)合的混合式教學(xué)模式既可以充分發(fā)揮慕課教育的優(yōu)勢,并可以很好地彌補單一慕課教育方式的不足。
C++程序設(shè)計課程是一門學(xué)習(xí)者眾多、實用性強的計算機(jī)程序設(shè)計語言課程,由于此課程的各個知識點相對獨立和完整,因此非常適合使用慕課的教學(xué)方式[4]。目前,針對C++程序設(shè)計課程的慕課教學(xué)模式的研究還比較少。其中,文獻(xiàn)[1]從需求和定位、知識點劃分、呈現(xiàn)形式等方面介紹了清華大學(xué)“C++語言程序設(shè)計”慕課[5]的設(shè)計。文獻(xiàn)[6]從講課視頻的形式和拍攝場所、錄制腳本設(shè)計、拍攝中的問題、視頻后期制作、其他課程資源建設(shè)等方面介紹了清華大學(xué)“C++語言程序設(shè)計”慕課[5]的拍攝與制作。文獻(xiàn)[2]從課前預(yù)習(xí)和自學(xué)、課堂互動式教學(xué)、課后在線研討、作業(yè)和測試等方面介紹了一種基于慕課的C++教學(xué)改革模式。文獻(xiàn)[7]從教學(xué)方法、教學(xué)模式和綜合評價機(jī)制等方面介紹了一種慕課教學(xué)環(huán)境下的C++程序設(shè)計課程的翻轉(zhuǎn)課堂教學(xué)改革模式。
本文在上述教學(xué)研究的基礎(chǔ)上,結(jié)合安徽中醫(yī)藥大學(xué)醫(yī)藥軟件開發(fā)專業(yè)的特點和學(xué)生的具體情況,提出了一種新型的結(jié)合慕課的C++程序設(shè)計課程教學(xué)模式。
3 結(jié)合慕課的C++程序設(shè)計課程教學(xué)模式
本文提出的結(jié)合慕課的C++程序設(shè)計課程教學(xué)模式的框架如圖1所示,其中,主要通過課前自學(xué)慕課、課堂理論教學(xué)、課堂實驗教學(xué)、課程考核方式四個方面來實現(xiàn)。
3.1 課前自學(xué)慕課的設(shè)計
首先,將原來以2個學(xué)時為單位的課堂教學(xué)內(nèi)容按照知識點劃分為多個小片段,并制作成慕課,以供學(xué)生在課堂教學(xué)之前自主學(xué)習(xí)。每個慕課控制在5~10分鐘,因為學(xué)生在沒有班級同學(xué)陪伴的情況下獨立學(xué)習(xí)慕課時,很難長時間集中精力[1]。例如在設(shè)計“類的構(gòu)造函數(shù)與析構(gòu)函數(shù)”這一章節(jié)[8]的慕課內(nèi)容時,可以將其劃分為以下七個知識點:構(gòu)造函數(shù)的作用和定義、帶參數(shù)的構(gòu)造函數(shù)、用參數(shù)初始化表對數(shù)據(jù)成員初始化、構(gòu)造函數(shù)的重載、帶默認(rèn)參數(shù)的構(gòu)造函數(shù)、析構(gòu)函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,并分別制作成七個慕課。
其次,針對每個慕課設(shè)計相應(yīng)的在線思考題,以引導(dǎo)學(xué)生在學(xué)習(xí)慕課時主動思考并提高學(xué)習(xí)效果。例如可以為“類的構(gòu)造函數(shù)與析構(gòu)函數(shù)”這一章節(jié)的慕課內(nèi)容設(shè)計如下思考題:①類的構(gòu)造函數(shù)和其它成員函數(shù)的差異有哪些?②使用帶參數(shù)的構(gòu)造函數(shù)的目的是什么?③用參數(shù)初始化表對數(shù)據(jù)成員初始化有什么好處?④構(gòu)造函數(shù)的重載和一般函數(shù)的重載有什么不同之處?⑤全部是默認(rèn)參數(shù)的構(gòu)造函數(shù)與重載構(gòu)造函數(shù)能否共存?如果不能,原因是什么?⑥類的析構(gòu)函數(shù)能否被重載?如果不能,原因是什么?⑦調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序是相反還是相同?
同時,為每個慕課設(shè)計相應(yīng)的在線測試題,以幫助學(xué)生復(fù)習(xí)和鞏固學(xué)習(xí)內(nèi)容,并幫助老師了解和驗證學(xué)生學(xué)習(xí)慕課的效果。在線測試題可以分為兩種形式:針對每個知識點的選擇題和填空題,并要求在線提交,然后由系統(tǒng)自動打分。為了避免學(xué)生之間相互抄襲,可以將在線測試題設(shè)計為一個題庫,每個學(xué)生進(jìn)行測試時隨機(jī)生成測試題,并且只允許進(jìn)行一次測試和限制在規(guī)定的測試時間內(nèi)完成。
另外,設(shè)置在線討論區(qū),允許學(xué)生在線提問、討論和老師答疑。為了提高討論的效果,可以按照知識點來劃分討論區(qū),以方便對同一個知識點有疑問的同學(xué)一起討論[1]。
3.2 課堂理論教學(xué)的設(shè)計
目前的課堂理論教學(xué)過程中主要存在以下問題:①過分注重語法規(guī)則的講解,缺乏對學(xué)生解決實際工程問題能力的培養(yǎng);②基本上仍是填鴨式教學(xué),讓學(xué)生感覺枯燥乏味。針對上述問題并結(jié)合慕課,我們重新設(shè)計了課堂理論教學(xué),具體如下所示:
首先,老師根據(jù)學(xué)生課前自學(xué)慕課的測試結(jié)果、在線討論區(qū)所反饋的普遍問題、以往的教學(xué)經(jīng)驗等進(jìn)行重難點的詳解。例如,在課堂上講解“類的構(gòu)造函數(shù)與析構(gòu)函數(shù)”這一章節(jié)的內(nèi)容時,需要詳細(xì)闡述以下幾個重難點:①構(gòu)造函數(shù)的作用:處理對象的初始化;可以對比之前使用一般成員函數(shù)來初始化對象數(shù)據(jù)成員的方式,讓學(xué)生直觀感受到使用構(gòu)造函數(shù)的便捷。②構(gòu)造函數(shù)與一般成員函數(shù)的區(qū)別:構(gòu)造函數(shù)的名字必須與類名完全相同,構(gòu)造函數(shù)沒有返回值,構(gòu)造函數(shù)不需用戶調(diào)用也不能被用戶調(diào)用。③帶參數(shù)的構(gòu)造函數(shù)的作用:對同一個類的不同對象賦予不同的初值。④用參數(shù)初始化表對數(shù)據(jù)成員初始化的好處:方便、簡練,尤其當(dāng)需要初始化的數(shù)據(jù)成員較多時更顯其優(yōu)越性。⑤默認(rèn)參數(shù)的構(gòu)造函數(shù)的好處:提供了建立對象時的多種選擇,它的作用相當(dāng)于好幾個重載的構(gòu)造函數(shù);即使在調(diào)用構(gòu)造函數(shù)時沒有提供實參值也不會出錯,而且還確保按照默認(rèn)的參數(shù)值對對象進(jìn)行初始化。⑥析構(gòu)函數(shù)與一般成員函數(shù)的區(qū)別:不返回任何值,沒有函數(shù)類型,也沒有函數(shù)參數(shù),因此它不能被重載,同時不需用戶調(diào)用也不能被用戶調(diào)用。
其次,老師回答學(xué)生的提問,并進(jìn)行啟發(fā)式的提問請學(xué)生來回答,這樣既加深了學(xué)生對知識點的理解,也帶動了學(xué)生的積極性,提高了學(xué)生的興趣,也鍛煉了學(xué)生的語言表達(dá)能力。
最后,采用案例教學(xué)法,選取和學(xué)生的專業(yè)相關(guān)的合適的案例進(jìn)行分析和講解,以培養(yǎng)學(xué)生解決實際工程中問題的能力。比如:針對醫(yī)藥軟件開發(fā)專業(yè)的學(xué)生,可以用醫(yī)院信息管理系統(tǒng)的設(shè)計與開發(fā)作為案例,給學(xué)生進(jìn)行講解。
3.3 課堂實驗教學(xué)的設(shè)計
目前的課堂實驗教學(xué)過程中主要存在以下問題:①大部分學(xué)生滿足于完成老師布置的實驗任務(wù),自覺深入思考的興趣不大,自主學(xué)習(xí)的熱情不高。②部分學(xué)生懶惰、缺乏學(xué)習(xí)動力,使用U盤拷貝其他同學(xué)程序的現(xiàn)象比較多。③對學(xué)生的工程設(shè)計能力的訓(xùn)練比較少。針對上述問題,我們采取了如下措施:
1)第一堂實驗課很重要,要讓所有學(xué)生都有成就感。因此,選擇一個簡單的題目,先演示給學(xué)生看,然后監(jiān)督學(xué)生上機(jī)模仿練習(xí),并逐一檢查,直到每個學(xué)生都運行成功為止。
2)禁止在機(jī)房使用U盤,機(jī)房中的計算機(jī)不能上網(wǎng),計算機(jī)與計算機(jī)之間不能共享,從而避免學(xué)生之間的相互抄襲。
3)每個學(xué)生固定一個機(jī)位,構(gòu)建服務(wù)器,每個機(jī)位對應(yīng)服務(wù)器中的一個學(xué)生文件夾,每個學(xué)生用的計算機(jī)只能向服務(wù)器上傳或下載自己的文件夾。每次實驗課結(jié)束之后,自動上傳到服務(wù)器的相應(yīng)學(xué)生文件夾,然后系統(tǒng)自動評分,并且不允許下次再修改。
4)每堂實驗課設(shè)計多道題目,難度逐漸增加,好處是:讓能力強的學(xué)生不會無事可做,可以主動學(xué)習(xí)更難的內(nèi)容;減少學(xué)生的懶惰心理,避免依賴其它同學(xué);能夠真實反映每位學(xué)生的實際動手能力,對學(xué)生的實驗成績的打分更加公平、公正和公開。
5)設(shè)計和學(xué)生專業(yè)和實際工程相關(guān)的綜合大作業(yè),由3~5人組成一個小組利用課余時間協(xié)作完成,考核方式為課堂演示和答辯,自主選擇其中1人擔(dān)任組長參與答辯,以項目的完成程度、答辯PPT的制作、口頭表達(dá)能力、回答老師提問的準(zhǔn)確程度等來打分,再由組長給每個組員打分并分配一定的權(quán)重。這樣的綜合大作業(yè)可以很好地鍛煉學(xué)生的團(tuán)隊協(xié)作能力、組織能力和口頭表達(dá)能力。
3.4 課程考核方式的設(shè)計
目前的課程考核方式主要存在以下問題:過分注重學(xué)生對理論知識掌握程度的考核,對學(xué)生實踐能力的考核不足;考試成績高的學(xué)生,動手能力卻差等。針對上述問題并結(jié)合慕課,我們設(shè)計了一種多元考核方式,以全面考核學(xué)生的多種能力和合理評價學(xué)生的學(xué)習(xí)效果。具體的考核指標(biāo)的比重和內(nèi)容如表1所示,主要由以下五個部分組成:
1)課前慕課自學(xué)的考核:主要考核學(xué)生的自學(xué)能力,比重為10%。主要包括觀看慕課次數(shù)、慕課測試的結(jié)果和答題時間長短、在線討論區(qū)中的提問和回答情況等。
2)課堂理論學(xué)習(xí)的考核:主要考核學(xué)生的理論課堂表現(xiàn),比重為10%。包括出勤率、課堂提問次數(shù)、課堂回答問題的次數(shù)和準(zhǔn)確度等。
3)課堂實驗操作的考核:主要考核學(xué)生的基本動手能力,比重為15%。進(jìn)行實驗打分時,不僅要考慮程序是否運行通過、運行結(jié)果是否正確,還要考查程序編寫的規(guī)范性、可讀性和健壯性。
4)綜合大作業(yè)的考核:主要考核學(xué)生的工程設(shè)計能力和綜合能力,比重為15%。學(xué)生進(jìn)行綜合大作業(yè)的答辯時,除了老師提問以外,也讓臺下的同學(xué)們自由提問,由團(tuán)隊成員來回答,根據(jù)制作答辯PPT的質(zhì)量、每個成員的臨場應(yīng)變能力和口頭表達(dá)能力,以及回答問題的準(zhǔn)確性來評分。
5)期末考試的考核:主要考核學(xué)生對基本概念和理論知識的掌握能力,比重為50%。
4 結(jié)論
本文針對目前C++程序設(shè)計課程教學(xué)過程中存在的突出問題,提出了一種結(jié)合慕課的C++程序設(shè)計課程的新型教學(xué)模式。通過這樣的教學(xué)改革,可以充分發(fā)揮互聯(lián)網(wǎng)時代網(wǎng)絡(luò)資源的優(yōu)勢,提高學(xué)生的學(xué)習(xí)興趣,鍛煉學(xué)生的自學(xué)能力、動手能力、工程設(shè)計能力、團(tuán)隊協(xié)作能力和口頭表達(dá)能力,從而取得更好的教學(xué)效果。
參考文獻(xiàn):
[1] 鄭莉. “C++語言程序設(shè)計”慕課的設(shè)計[J]. 計算機(jī)教育,2015(23):120-122.
[2] 袁友偉,張雪峰,仇建. 基于MOOC的C++教學(xué)改革[J]. 杭州電子科技大學(xué)學(xué)報(社會科學(xué)版),2016(4):64-69.
[3] 葉從歡,王光偉,黃蘭英,等. 面向程序設(shè)計課程的Mooc教學(xué)模式研究[J]. 科技視界,2015(36):80+138.
[4] 王之元,易曉東,李姍姍,等. 面向MOOC的程序設(shè)計語言課程教學(xué)設(shè)計[J]. 計算機(jī)教育,2014(2):55-58.
[5] 鄭莉. C++語言程序設(shè)計 - 鄭莉 - 清華大學(xué) - 頂你學(xué)堂 - 中文慕課(MOOC)平臺[EB/OL]. http://www.topu.com/mooc/3704, 2016-10-20.
[6] 鄭莉. “C++語言程序設(shè)計”慕課拍攝與制作[J]. 計算機(jī)教育,2016(2):178-182.
[7] 陳晉音,俞山青,毛國紅. 面向C++程序設(shè)計課程的翻轉(zhuǎn)課堂教學(xué)改革[J]. 計算機(jī)教育,2015(19):39-44.
[8] 譚浩強. C++面向?qū)ο蟪绦蛟O(shè)計[M]. 2版.清華大學(xué)出版社, 2014: 68-81.