公務(wù)員期刊網(wǎng) 論文中心 正文

高級語言程序設(shè)計的鞏固教學(xué)

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了高級語言程序設(shè)計的鞏固教學(xué)范文,希望能給你帶來靈感和參考,敬請閱讀。

高級語言程序設(shè)計的鞏固教學(xué)

摘要:高級語言程序設(shè)計在高校信息技術(shù)類專業(yè)中非常重要。為鞏固學(xué)生在學(xué)習(xí)高級程序設(shè)計語言后解決問題的能力,該文提出一種基于圖形的高級程序設(shè)計語言的鞏固教學(xué)方法。該方法主要采取以圖形的形式表述課程知識點,設(shè)計圖形繪制相關(guān)課題給學(xué)生訓(xùn)練,幫助學(xué)生理解、提高學(xué)習(xí)興趣,分組討論、實踐并考核。經(jīng)過兩屆學(xué)生的檢驗,方法可行,效果良好。

關(guān)鍵詞:圖形;程序設(shè)計;鞏固教學(xué);高級語言;DirectX

1引言

自從計算機發(fā)明出來,直到現(xiàn)在,它仍對人們的生產(chǎn)、生活產(chǎn)生著巨大的影響。計算機在各個領(lǐng)域中的普及和應(yīng)用,使得高級語言程序設(shè)計成為信息技術(shù)類專業(yè)的核心課程。由于高級程序語言與自然語言的差異性,算法邏輯性強、概念抽象,以現(xiàn)有方式講授,學(xué)生在學(xué)習(xí)高級程序設(shè)計語言時,非常吃力。在一些高等院校中,雖然學(xué)生上完高級程序設(shè)計語言和數(shù)據(jù)結(jié)構(gòu)兩門課程,已經(jīng)掌握一定的編程基礎(chǔ),但是僅是在理論層面上和簡單知識點上,還未能用于解決實際問題或復(fù)雜問題。因此,有必要在后續(xù)實踐課程、必修課或選修課中,融入程序設(shè)計的要求,以使學(xué)生在畢業(yè)前,掌握足夠的能力。

2相關(guān)工作

“十三五”期間的《教育部關(guān)于加強高等學(xué)校在線開放課程建設(shè)應(yīng)用與管理的意見》希望能夠通過多種方式使用在線開放課程,以達到人才的培養(yǎng)目標。范江波等[1,2]提到教師的教學(xué)應(yīng)以知識習(xí)得為目的,從“知識型教學(xué)”向“能力型教學(xué)”轉(zhuǎn)變,主導(dǎo)教學(xué)過程,設(shè)計課上和課下相結(jié)合,翻轉(zhuǎn)與討論相結(jié)合,促進學(xué)生的深度學(xué)習(xí)。教師要啟發(fā)學(xué)生的興趣,讓學(xué)生喜歡上編程,同時課上講精、講清知識的脈絡(luò)。在高級語言程序設(shè)計教學(xué)中,往往會采用多媒體或計算機教學(xué),課堂大多以理論灌輸為主,學(xué)生只能被動地接受這種灌輸,整個教學(xué)過程缺乏師生間的溝通,學(xué)生的自主學(xué)習(xí)性便無法充分調(diào)動。實踐環(huán)節(jié),由于課時不足、學(xué)生理解能力有限、實踐內(nèi)容及實踐方法不合適等原因,教師并未有效培養(yǎng)學(xué)生的創(chuàng)新能力,導(dǎo)致學(xué)生在實踐過程中只能根據(jù)指導(dǎo)書步驟來輸入代碼,甚至不清楚所輸入代碼的含義[3]。在實驗過程中,學(xué)生理解能力或?qū)W習(xí)態(tài)度不一致,導(dǎo)致學(xué)習(xí)步調(diào)不一。針對某些學(xué)生的某些問題進行輔導(dǎo),讓其他學(xué)生等待,是一種浪費。制作精美的微課件和微視頻,可以滿足人們對可視化畫面的使用愛好,增添趣味性和吸引力[4]。張榮等[5,6]提出在進行教學(xué)設(shè)計的過程中,創(chuàng)設(shè)學(xué)習(xí)情境是一個重要原則。他們使用大家熟悉的人物圖像作為角色排隊來講述排序算法,利于激發(fā)學(xué)生的學(xué)習(xí)興趣。陳靜在文章[7]中針對課堂教學(xué)形式單一,理論與實踐脫節(jié);“學(xué)而不知所用”感強烈等問題,提出一種基于任務(wù)驅(qū)動的高級語言程序設(shè)計課程改革,其間讓學(xué)生兩到三人一組,合作設(shè)計完成任務(wù),相互討論學(xué)習(xí),消除知識茫然感。但是它并未涉及任務(wù)內(nèi)容或形式。陳彥君等[8]提到對于高級語言程序設(shè)計課程,注重編程能力的培養(yǎng),筆試不能很好地測驗出來,應(yīng)通過實踐測評學(xué)生程序設(shè)計能力,線下課堂交流考查學(xué)生學(xué)習(xí)結(jié)果,培養(yǎng)學(xué)生理論與實踐并重的素養(yǎng)和能力?;趫D形的教學(xué)在初等或中等教育中,已經(jīng)使用得很多。王婷[9]提到從小人們學(xué)習(xí)知識都是由看圖識字、看圖說話來展開的,從圖的方式去理解事物是一種最直觀的方法。針對初中生的編程教學(xué),有很長一段時間是采用VisualBasic來實踐,雖然它是可視化的編程工具,但是功能程序部分仍然是要文本編輯,學(xué)生在學(xué)習(xí)過程中容易覺得編程學(xué)習(xí)枯燥乏味?,F(xiàn)在已經(jīng)有很多轉(zhuǎn)換成使用圖形化編程來代替。比如:Scratch、Hop⁃scotch、Alice等,還有Code.org在線平臺。用戶可以通過類似玩積木拼搭的方式,用一塊塊代表不同代碼的圖形模塊進行編程,構(gòu)建出可以運行的程序,可以是應(yīng)用或游戲。讓學(xué)生對程序設(shè)計學(xué)習(xí)產(chǎn)生興趣,激發(fā)自主學(xué)習(xí)性和創(chuàng)新思維[10]。當前學(xué)習(xí)程序設(shè)計等課程,也可以采用圖形的方式,解釋復(fù)雜的原理過程。還使用該方法把一段文字轉(zhuǎn)換成了一個知識圖。通過一種圖形化存儲的動態(tài)分析方法,將抽象的內(nèi)存分配、變量值的變化過程直觀地展示給學(xué)生,幫助學(xué)生理解相關(guān)知識點[11,12]。該方法主要是涉及知識點的圖形化,還未讓學(xué)生使用這些知識去開發(fā)一些讓自己可直觀看到的東西。在實際教學(xué)過程中,由于每一門課都會涉及的很多其他內(nèi)容,所以不可能面面俱到,只要有關(guān)系,就必須講,而是有側(cè)重點,課時有限等原因,甚至把不重要的內(nèi)容透明化。比如:在C語言程序設(shè)計過程中,并不會去解釋main函數(shù)如何被調(diào)用。在講授圖像處理過程中,使用Matlab作為開發(fā)工具,將隱藏文件讀取、圖像顯示等功能代碼。

3基于圖形的鞏固教學(xué)思路

針對上過高級語言程序設(shè)計課程的學(xué)生,在解決問題的能力上還有欠缺,需要借助后續(xù)的實踐課程或其他專業(yè)課程來加強?;趫D形的高級語言程序設(shè)計鞏固教學(xué)思路,在知識點描述上,使用圖形讓學(xué)生更直觀地理解所述內(nèi)容;在程序設(shè)計上,借助DirectX圖形程序設(shè)計開發(fā)類庫,讓學(xué)生進行圖形開發(fā),提高學(xué)生學(xué)習(xí)的興趣。該教學(xué)思路主要從以下方面開展。

3.1用圖形展示知識結(jié)構(gòu)

對于還未開展過大項目開發(fā)的學(xué)生來說,一個DirectX圖形項目代碼,涉及的內(nèi)容太多。若讓學(xué)生自己看懂整個項目代碼,理清思路,是比較困難的。而實際上,當前的主要任務(wù)也不是搞懂整個項目,而只是需要能夠了解框架,能夠使用該框架,加入必要的代碼來繪制特定圖形。因此,在線下,課前,教師需要把整個項目的框架,通過框圖的方式展示給學(xué)生,僅需要對后面可能會修改的區(qū)域做相對詳細的介紹。該框架以wWinMain函數(shù)為主體,其間調(diào)用到InitWindow、InitDevice、Ren⁃der等函數(shù)。圖中粗略介紹各個函數(shù)的調(diào)用關(guān)系和函數(shù)內(nèi)的主要功能.通過這樣一個框架圖,學(xué)生可以了解到整個項目的運行,而又不用陷入各種細節(jié)中去,無法理清頭緒。教師在講解過程中,可以側(cè)重于CreateWindow和ClearRenderTargetView兩個函數(shù),讓學(xué)生知道基于該項目,可能會修改到的地方及其用途。

3.2提出創(chuàng)新性圖形繪制任務(wù)

在傳統(tǒng)的命令行式窗口中,輸出只能是以可打印的字符形式出現(xiàn),因此,傳統(tǒng)的任務(wù)通常是要求用字符打印出不同圖案,或者對序列排序后打印出來等等。跟傳統(tǒng)的方法不一樣,這里采用圖形窗口程序為基礎(chǔ),教師可以根據(jù)基礎(chǔ)項目的內(nèi)容,要求學(xué)生在此基礎(chǔ)上開展各種圖形的繪制。比如:前面的Tutori⁃al01項目,可以要求修改窗口大小、變換背景顏色、讓背景色隨著時間不斷漸變。這樣讓學(xué)生直觀地看到自己修改的效果,提高學(xué)習(xí)興趣。若對基礎(chǔ)項目僅進行單個簡單的修改,那么跟傳統(tǒng)的方式差別不大,因此,需要構(gòu)思一些相對復(fù)雜的任務(wù),但把任務(wù)分解,各個子問題不用太大,避免需要花費太多時間才能理解,而失去信心。比如:隨著課程的開展,逐漸深入,InitDevice函數(shù)將變得更加復(fù)雜?;谶@個項目,就可以引申出,修改著色器、增加頂點、修改變換矩陣等等??梢砸髮W(xué)生繪制圖形式的問題:畫點、畫線、擦除、正弦線,跟其他課程知識相結(jié)合。

3.3小組開發(fā)和考核

在相同班級中,學(xué)生的水平也是參差不齊的,而且有些學(xué)生想對于跟教師,更習(xí)慣跟學(xué)生交流,因此,該鞏固教學(xué)采用分小組的形式來開展討論和開發(fā)。小組共同分析所給任務(wù),討論思路,接下來每個人都進行編寫代碼。分組的時候,主要以自愿為主,根據(jù)具體情況做微調(diào)。這樣他們相互溝通順暢些,同時避免強強聯(lián)手,弱者聚群,起不到相互指導(dǎo)的作用。通常分小組的一個弊端,就是有些學(xué)生會僅掛名,不動手。這就需要在考核的時候規(guī)避這個問題。采取逐個答辯的方式來考核。答辯的時候,需要教師對整個任務(wù)有深入的了解,針對學(xué)生的代碼,抽取具體功能代碼段進行問答,以此來得出學(xué)生的評價。當學(xué)生對所問問題都能回答到位,基本上也就掌握所作任務(wù)了。

4教學(xué)開展效果

依據(jù)前面敘述的教學(xué)方法,切實使用到了兩屆學(xué)生的課程中。第一屆為選修課“計算機圖形與動畫技術(shù)”,共31人選修;第二屆為必修課“圖形圖像處理”,共53人上。從成績分布來看,基本上成正態(tài)分布,能夠區(qū)分學(xué)生的水平層次。學(xué)生反應(yīng)良好,從課程學(xué)習(xí)過程中,不僅學(xué)到計算機圖形相關(guān)的內(nèi)容,還提高了程序設(shè)計能力。

5結(jié)論

該文針對上完高級程序設(shè)計語言課程后,能力還未能解決實際問題,需要鞏固的情況,提出一種基于圖形的高級程序設(shè)計語言鞏固教學(xué)方法。在其他課程開展過程中,以圖形的方式展示主要的知識脈絡(luò)和架構(gòu),再以圖形設(shè)計內(nèi)容為學(xué)生設(shè)計題目,并進行分組實現(xiàn)和考核。經(jīng)過兩屆學(xué)生的使用檢驗,方法可行,效果良好。當然,知識架構(gòu)的圖形化和題目設(shè)計,對不同的課程需要,仍需要相應(yīng)的分析和設(shè)計。

參考文獻:

[1]范江波,張建兵.高級語言程序設(shè)計混合式教學(xué)的系統(tǒng)構(gòu)建與實踐[J].教育教學(xué)論壇,2018(44):130-131.

[2]李華新,李望秀.地方高校計算機專業(yè)混合式實踐教學(xué)模式探究[J].現(xiàn)代教育科學(xué),2016(04):51-56.

[3]楊博寧.高級語言程序設(shè)計混合式教學(xué)體系構(gòu)建[J].計算機產(chǎn)品與流通,2019(01):243.

[4]彭瓊,彭浩,劉雯萱.基于微課的“高級語言程序設(shè)計”教學(xué)模式改革研究[J].微型電腦應(yīng)用,2018,34(12):8-10.

作者:鄧正杰 蔣文娟 莫壯堅 單位:海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院