鄧正杰 蔣文娟 莫壯堅(jiān)
摘要:高級(jí)語(yǔ)言程序設(shè)計(jì)在高校信息技術(shù)類(lèi)專業(yè)中非常重要。為鞏固學(xué)生在學(xué)習(xí)高級(jí)程序設(shè)計(jì)語(yǔ)言后解決問(wèn)題的能力,該文提出一種基于圖形的高級(jí)程序設(shè)計(jì)語(yǔ)言的鞏固教學(xué)方法。該方法主要采取以圖形的形式表述課程知識(shí)點(diǎn),設(shè)計(jì)圖形繪制相關(guān)課題給學(xué)生訓(xùn)練,幫助學(xué)生理解、提高學(xué)習(xí)興趣,分組討論、實(shí)踐并考核。經(jīng)過(guò)兩屆學(xué)生的檢驗(yàn),方法可行,效果良好。
關(guān)鍵詞:圖形;程序設(shè)計(jì);鞏固教學(xué);高級(jí)語(yǔ)言;DirectX
中圖分類(lèi)號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)20-0111-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Abstract: The advanced computer language programming is very important for the information technology students in universities. In order to strengthen the ability of the students to solve problems after learning the advanced programming language, this paper presents a method for the teaching of strengthening the advanced computer language programming based on the graphics. The method mainly takes the form of graphics to express the knowledge subject of the course, and the design the relative drawing subjects to let the students train, help the students to understand, improve their study interest, and group the students to discuss, practice and examine. The experiments on the two grades, shows that the method is feasible and the effect is acceptable.
Key words: graphics; programing; strengthen teaching; high-level language; DirectX
1 引言
自從計(jì)算機(jī)發(fā)明出來(lái),直到現(xiàn)在,它仍對(duì)人們的生產(chǎn)、生活產(chǎn)生著巨大的影響。計(jì)算機(jī)在各個(gè)領(lǐng)域中的普及和應(yīng)用,使得高級(jí)語(yǔ)言程序設(shè)計(jì)成為信息技術(shù)類(lèi)專業(yè)的核心課程。由于高級(jí)程序語(yǔ)言與自然語(yǔ)言的差異性,算法邏輯性強(qiáng)、概念抽象,以現(xiàn)有方式講授,學(xué)生在學(xué)習(xí)高級(jí)程序設(shè)計(jì)語(yǔ)言時(shí),非常吃力。在一些高等院校中,雖然學(xué)生上完高級(jí)程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)兩門(mén)課程,已經(jīng)掌握一定的編程基礎(chǔ),但是僅是在理論層面上和簡(jiǎn)單知識(shí)點(diǎn)上,還未能用于解決實(shí)際問(wèn)題或復(fù)雜問(wèn)題。因此,有必要在后續(xù)實(shí)踐課程、必修課或選修課中,融入程序設(shè)計(jì)的要求,以使學(xué)生在畢業(yè)前,掌握足夠的能力。
2 相關(guān)工作
“十三五”期間的《教育部關(guān)于加強(qiáng)高等學(xué)校在線開(kāi)放課程建設(shè)應(yīng)用與管理的意見(jiàn)》希望能夠通過(guò)多種方式使用在線開(kāi)放課程,以達(dá)到人才的培養(yǎng)目標(biāo)。范江波等[1,2]提到教師的教學(xué)應(yīng)以知識(shí)習(xí)得為目的,從“知識(shí)型教學(xué)”向“能力型教學(xué)”轉(zhuǎn)變,主導(dǎo)教學(xué)過(guò)程,設(shè)計(jì)課上和課下相結(jié)合,翻轉(zhuǎn)與討論相結(jié)合,促進(jìn)學(xué)生的深度學(xué)習(xí)。教師要啟發(fā)學(xué)生的興趣,讓學(xué)生喜歡上編程,同時(shí)課上講精、講清知識(shí)的脈絡(luò)。
在高級(jí)語(yǔ)言程序設(shè)計(jì)教學(xué)中,往往會(huì)采用多媒體或計(jì)算機(jī)教學(xué),課堂大多以理論灌輸為主,學(xué)生只能被動(dòng)地接受這種灌輸,整個(gè)教學(xué)過(guò)程缺乏師生間的溝通,學(xué)生的自主學(xué)習(xí)性便無(wú)法充分調(diào)動(dòng)。實(shí)踐環(huán)節(jié),由于課時(shí)不足、學(xué)生理解能力有限、實(shí)踐內(nèi)容及實(shí)踐方法不合適等原因,教師并未有效培養(yǎng)學(xué)生的創(chuàng)新能力,導(dǎo)致學(xué)生在實(shí)踐過(guò)程中只能根據(jù)指導(dǎo)書(shū)步驟來(lái)輸入代碼,甚至不清楚所輸入代碼的含義[3]。
在實(shí)驗(yàn)過(guò)程中,學(xué)生理解能力或?qū)W習(xí)態(tài)度不一致,導(dǎo)致學(xué)習(xí)步調(diào)不一。針對(duì)某些學(xué)生的某些問(wèn)題進(jìn)行輔導(dǎo),讓其他學(xué)生等待,是一種浪費(fèi)。制作精美的微課件和微視頻,可以滿足人們對(duì)可視化畫(huà)面的使用愛(ài)好,增添趣味性和吸引力[4]。張榮等[5,6]提出在進(jìn)行教學(xué)設(shè)計(jì)的過(guò)程中,創(chuàng)設(shè)學(xué)習(xí)情境是一個(gè)重要原則。他們使用大家熟悉的人物圖像作為角色排隊(duì)來(lái)講述排序算法,利于激發(fā)學(xué)生的學(xué)習(xí)興趣。陳靜在文章[7]中針對(duì)課堂教學(xué)形式單一,理論與實(shí)踐脫節(jié);“學(xué)而不知所用”感強(qiáng)烈等問(wèn)題,提出一種基于任務(wù)驅(qū)動(dòng)的高級(jí)語(yǔ)言程序設(shè)計(jì)課程改革,其間讓學(xué)生兩到三人一組,合作設(shè)計(jì)完成任務(wù),相互討論學(xué)習(xí),消除知識(shí)茫然感。但是它并未涉及任務(wù)內(nèi)容或形式。陳彥君等[8]提到對(duì)于高級(jí)語(yǔ)言程序設(shè)計(jì)課程,注重編程能力的培養(yǎng),筆試不能很好地測(cè)驗(yàn)出來(lái),應(yīng)通過(guò)實(shí)踐測(cè)評(píng)學(xué)生程序設(shè)計(jì)能力,線下課堂交流考查學(xué)生學(xué)習(xí)結(jié)果,培養(yǎng)學(xué)生理論與實(shí)踐并重的素養(yǎng)和能力。
基于圖形的教學(xué)在初等或中等教育中,已經(jīng)使用得很多。王婷[9]提到從小人們學(xué)習(xí)知識(shí)都是由看圖識(shí)字、看圖說(shuō)話來(lái)展開(kāi)的,從圖的方式去理解事物是一種最直觀的方法。針對(duì)初中生的編程教學(xué),有很長(zhǎng)一段時(shí)間是采用Visual Basic來(lái)實(shí)踐,雖然它是可視化的編程工具,但是功能程序部分仍然是要文本編輯,學(xué)生在學(xué)習(xí)過(guò)程中容易覺(jué)得編程學(xué)習(xí)枯燥乏味。現(xiàn)在已經(jīng)有很多轉(zhuǎn)換成使用圖形化編程來(lái)代替。比如:Scratch、Hopscotch、Alice等,還有Code.org在線平臺(tái)。用戶可以通過(guò)類(lèi)似玩積木拼搭的方式,用一塊塊代表不同代碼的圖形模塊進(jìn)行編程,構(gòu)建出可以運(yùn)行的程序,可以是應(yīng)用或游戲。讓學(xué)生對(duì)程序設(shè)計(jì)學(xué)習(xí)產(chǎn)生興趣,激發(fā)自主學(xué)習(xí)性和創(chuàng)新思維[10]。
當(dāng)前學(xué)習(xí)程序設(shè)計(jì)等課程,也可以采用圖形的方式,解釋復(fù)雜的原理過(guò)程。還使用該方法把一段文字轉(zhuǎn)換成了一個(gè)知識(shí)圖。通過(guò)一種圖形化存儲(chǔ)的動(dòng)態(tài)分析方法,將抽象的內(nèi)存分配、變量值的變化過(guò)程直觀地展示給學(xué)生,幫助學(xué)生理解相關(guān)知識(shí)點(diǎn)[11,12]。該方法主要是涉及知識(shí)點(diǎn)的圖形化,還未讓學(xué)生使用這些知識(shí)去開(kāi)發(fā)一些讓自己可直觀看到的東西。
在實(shí)際教學(xué)過(guò)程中,由于每一門(mén)課都會(huì)涉及的很多其他內(nèi)容,所以不可能面面俱到,只要有關(guān)系,就必須講,而是有側(cè)重點(diǎn),課時(shí)有限等原因,甚至把不重要的內(nèi)容透明化。比如:在C語(yǔ)言程序設(shè)計(jì)過(guò)程中,并不會(huì)去解釋main函數(shù)如何被調(diào)用。在講授圖像處理過(guò)程中,使用Matlab作為開(kāi)發(fā)工具,將隱藏文件讀取、圖像顯示等功能代碼。
3 基于圖形的鞏固教學(xué)思路
針對(duì)上過(guò)高級(jí)語(yǔ)言程序設(shè)計(jì)課程的學(xué)生,在解決問(wèn)題的能力上還有欠缺,需要借助后續(xù)的實(shí)踐課程或其他專業(yè)課程來(lái)加強(qiáng)。基于圖形的高級(jí)語(yǔ)言程序設(shè)計(jì)鞏固教學(xué)思路,在知識(shí)點(diǎn)描述上,使用圖形讓學(xué)生更直觀地理解所述內(nèi)容;在程序設(shè)計(jì)上,借助DirectX圖形程序設(shè)計(jì)開(kāi)發(fā)類(lèi)庫(kù),讓學(xué)生進(jìn)行圖形開(kāi)發(fā),提高學(xué)生學(xué)習(xí)的興趣。該教學(xué)思路主要從以下方面開(kāi)展。
3.1 用圖形展示知識(shí)結(jié)構(gòu)
對(duì)于還未開(kāi)展過(guò)大項(xiàng)目開(kāi)發(fā)的學(xué)生來(lái)說(shuō),一個(gè)DirectX圖形項(xiàng)目代碼,涉及的內(nèi)容太多。若讓學(xué)生自己看懂整個(gè)項(xiàng)目代碼,理清思路,是比較困難的。而實(shí)際上,當(dāng)前的主要任務(wù)也不是搞懂整個(gè)項(xiàng)目,而只是需要能夠了解框架,能夠使用該框架,加入必要的代碼來(lái)繪制特定圖形。因此,在線下,課前,教師需要把整個(gè)項(xiàng)目的框架,通過(guò)框圖的方式展示給學(xué)生,僅需要對(duì)后面可能會(huì)修改的區(qū)域做相對(duì)詳細(xì)的介紹。圖1給出DirectX SDK中帶的實(shí)例Tutorial01的項(xiàng)目的解析框架圖。該框架以wWinMain函數(shù)為主體,其間調(diào)用到InitWindow、InitDevice、Render等函數(shù)。圖中粗略介紹各個(gè)函數(shù)的調(diào)用關(guān)系和函數(shù)內(nèi)的主要功能。
通過(guò)這樣一個(gè)框架圖,學(xué)生可以了解到整個(gè)項(xiàng)目的運(yùn)行,而又不用陷入各種細(xì)節(jié)中去,無(wú)法理清頭緒。教師在講解過(guò)程中,可以側(cè)重于CreateWindow和ClearRenderTargetView兩個(gè)函數(shù),讓學(xué)生知道基于該項(xiàng)目,可能會(huì)修改到的地方及其用途。
3.2提出創(chuàng)新性圖形繪制任務(wù)
在傳統(tǒng)的命令行式窗口中,輸出只能是以可打印的字符形式出現(xiàn),因此,傳統(tǒng)的任務(wù)通常是要求用字符打印出不同圖案,或者對(duì)序列排序后打印出來(lái)等等。跟傳統(tǒng)的方法不一樣,這里采用圖形窗口程序?yàn)榛A(chǔ),教師可以根據(jù)基礎(chǔ)項(xiàng)目的內(nèi)容,要求學(xué)生在此基礎(chǔ)上開(kāi)展各種圖形的繪制。比如:前面的Tutorial01項(xiàng)目,可以要求修改窗口大小、變換背景顏色、讓背景色隨著時(shí)間不斷漸變。這樣讓學(xué)生直觀地看到自己修改的效果,提高學(xué)習(xí)興趣。
若對(duì)基礎(chǔ)項(xiàng)目?jī)H進(jìn)行單個(gè)簡(jiǎn)單的修改,那么跟傳統(tǒng)的方式差別不大,因此,需要構(gòu)思一些相對(duì)復(fù)雜的任務(wù),但把任務(wù)分解,各個(gè)子問(wèn)題不用太大,避免需要花費(fèi)太多時(shí)間才能理解,而失去信心。比如:隨著課程的開(kāi)展,逐漸深入,InitDevice函數(shù)將變得更加復(fù)雜,如圖2。基于這個(gè)項(xiàng)目,就可以引申出,修改著色器、增加頂點(diǎn)、修改變換矩陣等等??梢砸髮W(xué)生繪制圖形式的問(wèn)題:畫(huà)點(diǎn)、畫(huà)線、擦除、正弦線,跟其他課程知識(shí)相結(jié)合。
3.3小組開(kāi)發(fā)和考核
在相同班級(jí)中,學(xué)生的水平也是參差不齊的,而且有些學(xué)生想對(duì)于跟教師,更習(xí)慣跟學(xué)生交流,因此,該鞏固教學(xué)采用分小組的形式來(lái)開(kāi)展討論和開(kāi)發(fā)。小組共同分析所給任務(wù),討論思路,接下來(lái)每個(gè)人都進(jìn)行編寫(xiě)代碼。分組的時(shí)候,主要以自愿為主,根據(jù)具體情況做微調(diào)。這樣他們相互溝通順暢些,同時(shí)避免強(qiáng)強(qiáng)聯(lián)手,弱者聚群,起不到相互指導(dǎo)的作用。通常分小組的一個(gè)弊端,就是有些學(xué)生會(huì)僅掛名,不動(dòng)手。這就需要在考核的時(shí)候規(guī)避這個(gè)問(wèn)題。采取逐個(gè)答辯的方式來(lái)考核。答辯的時(shí)候,需要教師對(duì)整個(gè)任務(wù)有深入的了解,針對(duì)學(xué)生的代碼,抽取具體功能代碼段進(jìn)行問(wèn)答,以此來(lái)得出學(xué)生的評(píng)價(jià)。當(dāng)學(xué)生對(duì)所問(wèn)問(wèn)題都能回答到位,基本上也就掌握所作任務(wù)了。
4 教學(xué)開(kāi)展效果
依據(jù)前面敘述的教學(xué)方法,切實(shí)使用到了兩屆學(xué)生的課程中。第一屆為選修課“計(jì)算機(jī)圖形與動(dòng)畫(huà)技術(shù)”,共31人選修;第二屆為必修課“圖形圖像處理”,共53人上。根據(jù)上課開(kāi)展的成績(jī)統(tǒng)計(jì)如圖3。從成績(jī)分布來(lái)看,基本上成正態(tài)分布,能夠區(qū)分學(xué)生的水平層次。學(xué)生反應(yīng)良好,從課程學(xué)習(xí)過(guò)程中,不僅學(xué)到計(jì)算機(jī)圖形相關(guān)的內(nèi)容,還提高了程序設(shè)計(jì)能力。
5 結(jié)論
該文針對(duì)上完高級(jí)程序設(shè)計(jì)語(yǔ)言課程后,能力還未能解決實(shí)際問(wèn)題,需要鞏固的情況,提出一種基于圖形的高級(jí)程序設(shè)計(jì)語(yǔ)言鞏固教學(xué)方法。在其他課程開(kāi)展過(guò)程中,以圖形的方式展示主要的知識(shí)脈絡(luò)和架構(gòu),再以圖形設(shè)計(jì)內(nèi)容為學(xué)生設(shè)計(jì)題目,并進(jìn)行分組實(shí)現(xiàn)和考核。經(jīng)過(guò)兩屆學(xué)生的使用檢驗(yàn),方法可行,效果良好。當(dāng)然,知識(shí)架構(gòu)的圖形化和題目設(shè)計(jì),對(duì)不同的課程需要,仍需要相應(yīng)的分析和設(shè)計(jì)。
參考文獻(xiàn):
[1] 范江波,張建兵.高級(jí)語(yǔ)言程序設(shè)計(jì)混合式教學(xué)的系統(tǒng)構(gòu)建與實(shí)踐[J].教育教學(xué)論壇,2018(44):130-131.
[2] 李華新,李望秀.地方高校計(jì)算機(jī)專業(yè)混合式實(shí)踐教學(xué)模式探究[J].現(xiàn)代教育科學(xué),2016(04):51-56.
[3] 楊博寧.高級(jí)語(yǔ)言程序設(shè)計(jì)混合式教學(xué)體系構(gòu)建[J].計(jì)算機(jī)產(chǎn)品與流通,2019(01):243.
[4] 彭瓊,彭浩,劉雯萱.基于微課的“高級(jí)語(yǔ)言程序設(shè)計(jì)”教學(xué)模式改革研究[J].微型電腦應(yīng)用,2018,34(12):8-10.
[5] 張榮,江寶釧,郭立君,葉苗群,程劼.《高級(jí)語(yǔ)言程序設(shè)計(jì)》探究式教學(xué)設(shè)計(jì)研究[J].教育教學(xué)論壇,2018(16):190-191.
[6] 雷斌,陳麗.計(jì)算機(jī)教學(xué)改革初探[J].現(xiàn)代教育科學(xué),2014(06):174.
[7] 陳靜.高級(jí)語(yǔ)言程序設(shè)計(jì)課程思考與改革[J].課程教育研究,2018(08):225.
[8] 陳彥君,王朋嬌.“互聯(lián)網(wǎng)+教育”背景下基于O2O模式的《高級(jí)語(yǔ)言程序設(shè)計(jì)》教學(xué)改革研究[J].軟件導(dǎo)刊,2017,16(11):233-234+237.
[9] 王婷.圖形化教學(xué)方法[J].課程教育研究,2013(20):52-53.
[10] 張靜潔,裘國(guó)永.圖形化編程在初中程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].科教導(dǎo)刊(下旬),2018(03):111-113.
[11] 袁太文.一種C語(yǔ)言指針作為函數(shù)參數(shù)的圖形化分析方法[J].福建電腦,2016,32(01):129-131+20.
[12] 畢婉文.利用思維導(dǎo)圖改進(jìn)“計(jì)算機(jī)應(yīng)用基礎(chǔ)”課堂教學(xué)[J].現(xiàn)代教育科學(xué),2012(06):178-180.
【通聯(lián)編輯:王力】