朱紅 珂璟
摘要:針對C++程序設(shè)計課程的教學(xué)現(xiàn)狀,分析傳統(tǒng)教學(xué)方法所面臨的問題,提出設(shè)計制作基于FLASH的C++程序設(shè)計課程的交互式多媒體課件,介紹課件的制作技術(shù)與方法,說明課件的應(yīng)用情況和效果。
關(guān)鍵詞: FLASH;多媒體課件;C++程序設(shè)計
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)26-0183-02
1 多媒體課件的開發(fā)應(yīng)用是現(xiàn)代化教育的發(fā)展趨勢
隨著“互聯(lián)網(wǎng)+”技術(shù)的不斷深入,“互聯(lián)網(wǎng)+教育”作為一種新的教育形式,在教育領(lǐng)域的各個方面都得到了廣泛的應(yīng)用。利用多媒體交互式技術(shù)替代傳統(tǒng)的教學(xué)模式也成為教學(xué)改革的重點(diǎn)。多媒體課件將文字、圖像、視頻和聲音等因素融合成一體,增強(qiáng)學(xué)生的感性認(rèn)識,增加知識的直觀性和趣味性,促進(jìn)學(xué)生的學(xué)習(xí)積極性,從而提升課堂的教學(xué)質(zhì)量[1]。
隨著人們生活節(jié)奏的加快和科學(xué)技術(shù)的發(fā)展,人們的學(xué)習(xí)方式也在不斷的發(fā)生變化,以視頻為載體的“微課”受到了廣泛的歡迎。微課程的教學(xué)內(nèi)容都是選擇比較小的知識點(diǎn)或教學(xué)活動中的某個教學(xué)環(huán)節(jié),具體到C++程序設(shè)計這門課程,也就是課程教學(xué)中的重點(diǎn)、難點(diǎn)和算法等相關(guān)的知識點(diǎn)。這些內(nèi)容以前都是以PPT的形式展示的,隨著計算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)的日益發(fā)展和成熟,刻板的靜態(tài)幻燈片已不能滿足需求,而基于FALSH的交互式多媒體課件具有豐富的表現(xiàn)力,良好的交互性和共享性,能夠形成立體的信息交流和互動,在制作“微課”方面具有獨(dú)特的優(yōu)勢,真正體現(xiàn)“教師是主導(dǎo),學(xué)生是主體”的教學(xué)理念[2]。
2 制作C++程序設(shè)計多媒體課件
2.1 FLASH課件的特點(diǎn)
在C++程序設(shè)計的教學(xué)中,由于知識點(diǎn)眾多,尤其是指針和面向?qū)ο蟛糠指拍畛橄?,所以這門課程一直存在課時量少,課容量大,教師講課速度過快等問題;學(xué)生普遍反映課程內(nèi)容枯燥,隨堂掌握知識程度低,語法難懂,算法難以理解[3]。基于FLASH制作的多媒體課件,可以制作多種動畫效果,具有豐富的表現(xiàn)形式,同時還有良好的互動性;文件體積小,演示方便,即適合作為課件在課堂上講解,也適合作為微課在課前預(yù)習(xí)和課后復(fù)習(xí),滿足學(xué)生的各種學(xué)習(xí)需求。
2.2 FLASH課件制作的技術(shù)和方法
C++程序設(shè)計共有15個章節(jié),教學(xué)內(nèi)容從數(shù)據(jù)類型、函數(shù)、數(shù)組、指針到面向?qū)ο蟮念惖姆庋b、繼承、多態(tài)等,所涉及的語法句式繁雜,知識點(diǎn)眾多。雖然每個章節(jié)的內(nèi)容不同,但是由于講述的是算法語言,所以大部分章節(jié)課件的設(shè)計可以分為以下4個部分。
1) 概念解釋(語法描述)。
對于初次學(xué)習(xí)算法語言的學(xué)生來說,很多程序語言的概念是抽象的,比如數(shù)據(jù)類型,靜態(tài)變量等,這些概念用文字、圖像這些靜態(tài)元素很難直觀地表現(xiàn)出來。在多媒體課件中,可以充分利用FLASH的色彩、動畫優(yōu)勢,結(jié)合具體的語句、內(nèi)存環(huán)境進(jìn)行描述,以達(dá)到提高學(xué)生的學(xué)習(xí)興趣,降低學(xué)習(xí)難度的目的。例如講解“數(shù)據(jù)類型”這個概念,就從動畫演示計算機(jī)的工程過程開始,引出CPU對內(nèi)存的讀寫過程,重點(diǎn)演示數(shù)據(jù)在內(nèi)存中均是以二進(jìn)制的形式存在的,如果不事先指定數(shù)據(jù)類型,計算機(jī)本身是無法正確地識別數(shù)據(jù)的。這樣,就解決了為什么在算法語言中所有數(shù)據(jù)都要聲明數(shù)據(jù)類型,而這也是初學(xué)算法語言的學(xué)生所面臨的第一個難點(diǎn),因為在非計算機(jī)的環(huán)境中是不需要這個步驟的。
2) 程序分析。
所有的語法、算法都是與具體的程序有關(guān)的,而程序的運(yùn)行過程是在計算機(jī)內(nèi)部,學(xué)生是無法看見的,PPT課件只能演示靜態(tài)的圖形,無法實(shí)時跟蹤程序的運(yùn)行過程。因此,在傳統(tǒng)的教學(xué)中,講解程序時,教師都要在黑板上實(shí)時畫一些內(nèi)存結(jié)構(gòu),演示數(shù)據(jù)的交換、計算過程,由于課堂時間和環(huán)境的限制,這種講解基本上都是簡單、概括性的,無法進(jìn)行詳細(xì)、深入的跟蹤和演示。
交互性的FLASH多媒體動畫課件很好地解決了這個問題,在C++程序設(shè)計的課件中,有大量的程序?qū)崟r演示,為了保持整個課件的風(fēng)格上的一致,課件中都采用了相類似的方法處理程序的運(yùn)行問題。在時間軸上,主要分5層展示,分別是背景層、文字層、程序?qū)?、運(yùn)行層和輸出層。分為靜態(tài)和動態(tài)兩個部分。
① 靜態(tài)部分。背景層和文字層是靜態(tài)的,即在整個程序的運(yùn)行過程中是不變化的。背景層表現(xiàn)的是標(biāo)題和程序與說明的背景模板,將程序與說明的背景疊加在課件的原始背景之上,相當(dāng)于在教室掛了個黑板講解程序,吸引學(xué)生的注意力;文字層表現(xiàn)的是靜態(tài)的文字,在這一部分中就是題目和源程序。
② 動態(tài)部分。程序?qū)?、運(yùn)行層和輸出層是屬于動態(tài)部分的。這三層都是用關(guān)鍵幀設(shè)置的。動畫是分幀播放的,先運(yùn)行程序?qū)拥年P(guān)鍵幀,其后是運(yùn)行層的關(guān)鍵幀,如果有輸出,再運(yùn)行輸出層的關(guān)鍵幀,之后又是程序?qū)印\(yùn)行層→輸出層這樣反復(fù)循環(huán)播放,直至程序運(yùn)行結(jié)束。
程序?qū)邮浅绦蛎織l語句動態(tài)的運(yùn)行過程,具體的制作方法是將每一條運(yùn)行的語句拷貝下來,與文字層的位置重合,然后將這條語句轉(zhuǎn)換成一個影片剪輯,在影片剪輯中采用了遮罩的技術(shù),用一個箭頭劃過要運(yùn)行的語句,運(yùn)行前后語句的背景和文字的顏色均不同,這樣執(zhí)行這個影片剪輯的時候就可以很清楚地看到程序運(yùn)行的當(dāng)前位置;運(yùn)行層是根據(jù)具體程序的執(zhí)行情況,給出程序動態(tài)的運(yùn)行過程,比如數(shù)據(jù)的走向,指針的位置變化,存儲器空間的變化過程等;輸出層是運(yùn)行輸出語句后當(dāng)前屏幕的實(shí)時輸出狀況。
把每幀中具體的動畫制作成影片剪輯屬性的元件,放置在相應(yīng)的幀上,這樣播放到該幀時,動畫就自動開始播放。課件采用了交互式的演示方式,每一條語句都是由按鈕控件控制向上或向下執(zhí)行,這樣可以根據(jù)實(shí)際需要控制演示時間,也可以很方便地制作成小視頻,形成“微課”的形式自動播放。圖1所示為“指針與一維數(shù)組”這一節(jié)中講解演示例1程序時的課件播放效果。
圖1 程序分析部分動畫演示
3) 算法演示。
C++程序設(shè)計中涉及到大量的算法,用程序設(shè)計語言編寫的算法與數(shù)學(xué)、物理中的解決問題的方法還是有很大的差別的,需要對計算機(jī)的運(yùn)行、存儲機(jī)制有全面的了解,熟悉基本數(shù)據(jù)類型、自定義數(shù)據(jù)類型在計算機(jī)中是如何存儲、賦值的,熟悉地址、數(shù)據(jù)在內(nèi)存和CPU中的作用等,而所有這些又都是在計算機(jī)內(nèi)部進(jìn)行的活動,學(xué)生是無法看見的,因此算法的講解和解釋一直是程序設(shè)計類語言教學(xué)中的難點(diǎn)。
針對教學(xué)活動中出現(xiàn)的大量的有關(guān)算法的問題,我們歸納總結(jié)了C++程序設(shè)計課程中應(yīng)該掌握的各類算法,建立了一個由flash動畫制作的算法資源庫。對每一類算法,用動畫詳細(xì)演示了算法實(shí)現(xiàn)的過程、步驟,對實(shí)現(xiàn)算法的程序也給出了詳細(xì)地講解。每種算法獨(dú)立成章,即可以在課堂上進(jìn)行講解,又可以供學(xué)生在課前課后反復(fù)觀看。由于動畫生動、形象,又與程序同步,實(shí)時地描述了程序在計算機(jī)及存儲器中運(yùn)行的過程,因此對學(xué)生而言,有較深刻的印象,達(dá)到了很好的效果。
例如,“將一個數(shù)按次序插入到已排好序的數(shù)組中”是算法語言中的一個經(jīng)典問題,在多媒體課件中,用動畫的方式來動態(tài)地演示算法是如何實(shí)現(xiàn)的,具體步驟見圖2。首先從后向前遍歷數(shù)組,判斷數(shù)組元素是否大于要插入的數(shù)據(jù)7,當(dāng)大于要插入的數(shù)據(jù)時,數(shù)組元素依次向后覆蓋(圖2.a,2.b),直到遍歷到不滿足條件為止。這時,將數(shù)據(jù)插入到當(dāng)前數(shù)據(jù)元素的下一個位置處(圖2.c)。雖然用連環(huán)畫的形式也可以將算法過程描述出來,但是用動畫的方式使得學(xué)生掌握算法的過程會更加連貫和直觀。
圖2 將數(shù)據(jù)7插入有序數(shù)組的動畫演示
4) 程序設(shè)計。
學(xué)習(xí)算法語言的最終目的就是設(shè)計程序,因此程序設(shè)計的思路與方法也是初學(xué)者的難點(diǎn)。在程序設(shè)計這個環(huán)節(jié),多媒體課件采用的是“任務(wù)提出——算法分析——程序說明”這三個步驟,在算法分析中,可以根據(jù)具體要求演示程序的輸入輸出過程,使學(xué)生對要完成的任務(wù)有一個直觀的認(rèn)識,有助于培養(yǎng)學(xué)生建立邏輯思維的認(rèn)知和能力。
在C++程序設(shè)計多媒體課件中,為了增強(qiáng)交互性,每一章都有“導(dǎo)航”菜單,方便跳轉(zhuǎn)到不同的小節(jié);在每一節(jié)中,利用鼠標(biāo)右鍵的功能制作了快捷導(dǎo)航菜單,可以跳轉(zhuǎn)到具體的概念說明或例題等知識點(diǎn)的位置,方便教師講解;同時,還增加了“畫筆”的功能,可以拖動屏幕下方的畫筆在課件上標(biāo)注重點(diǎn),添加注釋。
3 C++程序設(shè)計多媒體課件的應(yīng)用
由于FLASH軟件動畫功能靈活多樣,具有豐富的色彩、形狀表現(xiàn)力,且交互性強(qiáng),特別是利用FLASH技術(shù)制作的文件因為占用的數(shù)據(jù)空間比較小,適合通過網(wǎng)絡(luò)的渠道進(jìn)行上傳和大范圍的傳播,因此,基于FLASH制作的多媒體課件比傳統(tǒng)的PPT課件具有明顯的優(yōu)勢。
交互式C++程序設(shè)計多媒體課件以章節(jié)的順序完成了整個課程全部內(nèi)容的制作,在教學(xué)應(yīng)用上主要體現(xiàn)在以下3個方面:
1) 科學(xué)組織實(shí)現(xiàn)碎片化的學(xué)習(xí)方式。
碎片化學(xué)習(xí)是大數(shù)據(jù)時代出現(xiàn)的一種新型學(xué)習(xí)方式,其特點(diǎn)是利用移動終端,在零散時間內(nèi)快速獲取信息。碎片化的學(xué)習(xí)更適合現(xiàn)代人快節(jié)奏的生活方式[4]。將多媒體課件中的概念解釋(語法描述)經(jīng)過適當(dāng)?shù)呐湟糁v解,并根據(jù)具體內(nèi)容提出目標(biāo)和任務(wù),通過錄屏的方式制作成5~10分鐘的“微課”,在課前分發(fā)給學(xué)生,指導(dǎo)學(xué)生觀看,自主學(xué)習(xí)。因為課件本身就是視頻的形式,且在制作時已充分考慮了趣味性和直觀性,這樣就使得“微課”的制作簡單可行。
2) 豐富課堂形式,根據(jù)教學(xué)內(nèi)容實(shí)現(xiàn)多種教學(xué)方式的混合教學(xué)。
無論是演示教學(xué)法、任務(wù)驅(qū)動教學(xué)法、情景教學(xué)法或討論教學(xué)法,基于FLASH制作的多媒體課件都比傳統(tǒng)的PPT課件更有表現(xiàn)力和感染力。例如在講授循環(huán)結(jié)構(gòu)這一節(jié)的內(nèi)容時,就是用的情景教學(xué)法,用一個小豬吃食物長大的例子來描述前一時刻的小豬和吃了食物后的同一小豬的關(guān)系,從而推導(dǎo)出循環(huán)體:小豬+食物→小豬。通過這些生動有趣的例子,給學(xué)生留下了深刻的印象,進(jìn)而幫助他們理解循環(huán)迭代的本質(zhì)。
3) 導(dǎo)航功能齊全,互動性好,支持學(xué)生自主學(xué)習(xí)。
基于FLASH的交互式C++程序設(shè)計多媒體課件具有功能全面的導(dǎo)航系統(tǒng),可以輕松地定位到某一知識點(diǎn)或具體的例題,還可以操縱按鈕,進(jìn)行回看或快進(jìn),適合學(xué)生在課后根據(jù)自身的學(xué)習(xí)進(jìn)度進(jìn)行自主學(xué)習(xí),更好地理解課程的難點(diǎn)和重點(diǎn)。
經(jīng)過一年的教學(xué)實(shí)踐,采用C++程序設(shè)計多媒體課件替代PPT課件,取得了較好的效果,學(xué)生期末考試的優(yōu)秀率由11%上升到19%。在C++程序設(shè)計課程結(jié)束后,有1學(xué)分的實(shí)踐課程:C++課程設(shè)計,內(nèi)容是學(xué)生自己改編一個大型的程序,在本年度的C++課程設(shè)計中,取得的效果更加矚目,其中優(yōu)良率占70%,優(yōu)秀率由10%上升到20%,說明多媒體課件在培養(yǎng)學(xué)生的邏輯思維能力方面具有一定的優(yōu)勢。
4 結(jié)束語
綜上所述,交互式C++程序設(shè)計多媒體課件結(jié)合了長期的實(shí)踐教學(xué)經(jīng)驗,考慮了初學(xué)者的思維理念和實(shí)際情況,充分利用了FLASH動畫的特點(diǎn),直觀展示了數(shù)據(jù)與程序在計算機(jī)內(nèi)部的存儲、運(yùn)行情況,模擬了鍵盤、顯示器等外設(shè)與計算機(jī)內(nèi)存的輸入輸出過程,生動形象地講述了面向?qū)ο蟮某绦蛟O(shè)計的各種概念和算法。尤其是“程序分析”和“算法演示”部分,應(yīng)用動畫實(shí)時跟蹤程序運(yùn)行的每條語句和算法每個步驟運(yùn)行的結(jié)果,不用教師再進(jìn)行另外的畫圖講解,解決了本課程課時量少與課容量大的矛盾,有效地吸引學(xué)生視線,調(diào)動了學(xué)習(xí)興趣,提高了學(xué)習(xí)能力。
參考文獻(xiàn):
[1] 黃娟. FLASH交互式課件的設(shè)計與制作:以“計算機(jī)應(yīng)用基礎(chǔ)”課程課件設(shè)計為例[J].電腦知識與技術(shù),2018(3):208-209.
[2] 程曄.基于“任務(wù)-過程”的FLASH交互式課件開發(fā)與運(yùn)用:以“國際貨運(yùn)代理實(shí)務(wù)”課程實(shí)踐為例[J].現(xiàn)代商貿(mào)工業(yè),2017(34):177-178.
[3] 李雪飛,李晶,余琍,等. 面向?qū)ο蟪绦蛟O(shè)計類課程實(shí)踐教學(xué)改革[J].計算機(jī)教育,2017(7):118-121.
[4] 吳仁英,王坦. 翻轉(zhuǎn)課堂:教師面臨的現(xiàn)實(shí)挑戰(zhàn)及因應(yīng)策略[J]. 教育研究,2017(2):112-121.
[通聯(lián)編輯:王力]