摘要:為有效提高計(jì)算機(jī)圖形學(xué)的教學(xué)質(zhì)量,本文在分析教學(xué)過程中存在的主要問題基礎(chǔ)上,結(jié)合計(jì)算機(jī)圖形學(xué)的學(xué)科性質(zhì)、特點(diǎn)及學(xué)生的實(shí)際情況,從教學(xué)內(nèi)容、理論教學(xué)和實(shí)踐教學(xué)等環(huán)節(jié)探討了該課程的教學(xué)思路和方法,以期為計(jì)算機(jī)圖形學(xué)的教學(xué)工作者提供一定的參考。
關(guān)鍵詞:計(jì)算機(jī)圖形學(xué);教學(xué)方法;上機(jī)實(shí)踐
計(jì)算機(jī)圖形學(xué)是伴隨著計(jì)算機(jī)及其他外圍設(shè)備的發(fā)展而產(chǎn)生的,是一門研究怎樣利用計(jì)算機(jī)表示、生成、處理和顯示圖形的原理、算法、方法和技術(shù)的學(xué)科[1-2]。目前,計(jì)算機(jī)圖形學(xué)已經(jīng)成為計(jì)算機(jī)學(xué)科中發(fā)展最活躍、應(yīng)用最廣泛的分支之一,成為許多計(jì)算機(jī)從業(yè)人員的必備素質(zhì)之一,也是計(jì)算機(jī)及相關(guān)專業(yè)本科生的一門專業(yè)選修課。該課程在我校已經(jīng)開設(shè)了多年,其教學(xué)任務(wù)是本著理論與實(shí)踐相結(jié)合的原則,以基本概念、算法原理和實(shí)踐技術(shù)為主線,使學(xué)生掌握計(jì)算機(jī)圖形生成與處理技術(shù)的基礎(chǔ)知識(shí)、基本原理和方法,培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力。然而,歷年的教學(xué)工作中發(fā)現(xiàn),由于該課程學(xué)科內(nèi)容豐富、理論難度大、實(shí)踐性強(qiáng),且作為專業(yè)限選課學(xué)時(shí)又有限,導(dǎo)致了學(xué)生對所學(xué)內(nèi)容不易掌握,疲于應(yīng)付,甚至產(chǎn)生學(xué)生厭學(xué)、教學(xué)低效等現(xiàn)象。
因此,如何提高學(xué)生的學(xué)習(xí)興趣,增加課堂信息量,解決課時(shí)少與內(nèi)容多的矛盾、理論與實(shí)踐的矛盾,是計(jì)算機(jī)圖形學(xué)教學(xué)工作中一個(gè)非常值得思考的問題。本文面向計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),在分析計(jì)算機(jī)圖形學(xué)教學(xué)中存在問題的基礎(chǔ)上,針對該課程的學(xué)科特點(diǎn)和學(xué)生的特點(diǎn),根據(jù)筆者近年來在教學(xué)實(shí)踐中的親身體會(huì),探討一種新的教學(xué)思路和方法。
1計(jì)算機(jī)圖形學(xué)的學(xué)科特點(diǎn)
計(jì)算機(jī)圖形學(xué)是一門理論和實(shí)踐兼顧、綜合性很強(qiáng)的交叉學(xué)科,涉及內(nèi)容和應(yīng)用領(lǐng)域都很廣泛。它涵蓋了計(jì)算機(jī)科學(xué)、數(shù)學(xué)、物理學(xué)等其他相關(guān)學(xué)科的知識(shí),學(xué)科交叉繁雜,且整個(gè)學(xué)科的發(fā)展日新月異。同時(shí),該課程對高等數(shù)學(xué)、線性代數(shù)等基礎(chǔ)數(shù)學(xué)有較高的要求,以數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)高級(jí)語言、圖形基本原理等為先導(dǎo)課程。因此,要將這樣一門課的內(nèi)容保質(zhì)保量地傳授給學(xué)生,不是一件容易的事,需要積極探討新的教學(xué)方法和教學(xué)思路。
2教學(xué)中存在的問題
在教學(xué)實(shí)踐中,筆者發(fā)現(xiàn)該課程的教學(xué)問題主要體現(xiàn)在以下幾個(gè)方面:
1) 理論基礎(chǔ)要求高,教學(xué)效果差。計(jì)算機(jī)圖形學(xué)理論性強(qiáng),部分算法抽象且以數(shù)學(xué)為依托,教學(xué)過程中過分強(qiáng)調(diào)課程的數(shù)學(xué)基礎(chǔ),側(cè)重于算法原理的推導(dǎo),而多數(shù)學(xué)生數(shù)學(xué)功底薄弱,故在學(xué)習(xí)過程中表現(xiàn)出畏難情緒;同時(shí),其先修課程都是在低年級(jí)開設(shè)的,容易遺忘,而在計(jì)算機(jī)圖形學(xué)的課堂上又不可能花太多的時(shí)間進(jìn)行先修課程的復(fù)習(xí),從而使其成為部分學(xué)生難以逾越的障礙。
2) 教學(xué)內(nèi)容多,知識(shí)點(diǎn)分散。計(jì)算機(jī)圖形學(xué)涉及的方法原理很多,教學(xué)內(nèi)容易面面俱到,導(dǎo)致學(xué)生只掌握了分散的知識(shí)點(diǎn),沒有形成一條完整的知識(shí)鏈,學(xué)生對所學(xué)知識(shí)無所適從,失去學(xué)習(xí)的目標(biāo),極大影響了學(xué)生的學(xué)習(xí)熱情;同時(shí),教學(xué)內(nèi)容只局限于經(jīng)典的算法原理,面向?qū)W科前沿動(dòng)態(tài)的內(nèi)容涉及較少,不利于開闊學(xué)生視野,激發(fā)他們自主學(xué)習(xí)的意識(shí)和興趣。
3) 實(shí)驗(yàn)課比例較小且實(shí)踐環(huán)節(jié)滯后。計(jì)算機(jī)圖形學(xué)也是一門實(shí)踐性很強(qiáng)的學(xué)科[3-4],上機(jī)實(shí)踐是培養(yǎng)學(xué)生動(dòng)手能力的主要手段,也是學(xué)好這門課的必要手段。但是,由于總課時(shí)的壓縮,實(shí)驗(yàn)課時(shí)很少,僅提供8學(xué)時(shí),使原本很重要的實(shí)踐活動(dòng)變成了搭配;上機(jī)實(shí)習(xí)平臺(tái)采用的是目前已不作為主要開發(fā)工具的Turbo C,致使學(xué)生不能在實(shí)驗(yàn)中獲得將來就業(yè)環(huán)境下需要掌握的編程知識(shí),上機(jī)興趣不高,同時(shí)大部分學(xué)生本身的編程能力也不強(qiáng),最終導(dǎo)致學(xué)生喪失編程的興趣和能力。
4) 學(xué)生積極性不高。計(jì)算機(jī)圖形學(xué)開設(shè)在大三上學(xué)期,大部分同學(xué)把精力用在考研和考公務(wù)員等方面,而這門課不是考研的必考課,學(xué)分也不高,因此,大多數(shù)同學(xué)認(rèn)為圖形學(xué)不重要,學(xué)習(xí)的積極性不高,整個(gè)學(xué)習(xí)過程都很被動(dòng)。
3教學(xué)思路探討
計(jì)算機(jī)圖形學(xué)的教學(xué)目標(biāo)之一,就是通過本課程的學(xué)習(xí),使學(xué)生對計(jì)算機(jī)圖形學(xué)有一個(gè)全面、感性的認(rèn)識(shí),理解并掌握部分經(jīng)典算法,了解當(dāng)前的研究熱點(diǎn)。根據(jù)這一實(shí)際要求,提出了計(jì)算機(jī)圖形學(xué)課程的總體教學(xué)思路。在教學(xué)中,以基本理論和算法原理為主線,以Turbo C、OpenGL等軟件為載體,對圖形學(xué)內(nèi)容進(jìn)行整體優(yōu)化,加以創(chuàng)新處理,采用多種教學(xué)方式,加強(qiáng)理論與實(shí)踐的結(jié)合,通過正確引導(dǎo),激發(fā)學(xué)生的興趣,挖掘?qū)W生的潛能,最終培養(yǎng)學(xué)生的邏輯思維能力和實(shí)際動(dòng)手能力。以下筆者將根據(jù)自身的教學(xué)實(shí)踐來闡述該課程教學(xué)過程中的認(rèn)識(shí)和做法。
3.1上好緒論課,激發(fā)學(xué)生的學(xué)習(xí)興趣
教學(xué)過程中調(diào)查發(fā)現(xiàn),大多數(shù)學(xué)生對計(jì)算機(jī)圖形學(xué)采取的是一種敬而遠(yuǎn)之的態(tài)度。首先,他們通過計(jì)算機(jī)圖形學(xué)在娛樂、廣告等領(lǐng)域的廣泛應(yīng)用充分感受到該課程的生動(dòng)有趣及實(shí)用性,對該課程飽含熱情;而與此同時(shí),在他們的印象中,計(jì)算機(jī)圖形學(xué)涉及學(xué)科很多,尤其數(shù)學(xué)公式很多,很多內(nèi)容難以理解和掌握,故他們又對學(xué)好這門課充滿懷疑。也正是這種期望與現(xiàn)實(shí)的失衡成為打擊學(xué)生學(xué)習(xí)熱情的“元兇”。因此,我們應(yīng)該重視緒論課,并以此作為突破口,通過查閱大量資料,結(jié)合目前圖形學(xué)的發(fā)展動(dòng)向,根據(jù)所講授內(nèi)容,充分利用多種教學(xué)手段,將圖形學(xué)知識(shí)融匯貫通起來,讓學(xué)生在不知不覺中了解并接受計(jì)算機(jī)圖形學(xué),解除他們的疑惑,鼓舞他們的熱情。如在介紹圖形學(xué)在虛擬現(xiàn)實(shí)的應(yīng)用時(shí),可以插入一段視頻,模擬人在虛擬場景中漫步,不但可以講明具體應(yīng)用,而且學(xué)生易于接受,印象深刻。
3.2教學(xué)內(nèi)容
計(jì)算機(jī)圖形學(xué)內(nèi)容深而廣,知識(shí)更新快,教學(xué)工作者需要在有限的學(xué)時(shí)內(nèi),即兼顧基礎(chǔ)知識(shí)又能反映計(jì)算機(jī)圖形學(xué)的研究進(jìn)展,因此,教學(xué)過程中,在教學(xué)內(nèi)容上要注意以下幾點(diǎn):
1) 根據(jù)學(xué)生的接受程度,精選核心內(nèi)容,壓縮或屏蔽部分知識(shí),使學(xué)生專注于必要知識(shí)的學(xué)習(xí),從而提高教學(xué)效率和教學(xué)質(zhì)量。我們的教學(xué)內(nèi)容主要包括:圖形變換、光柵圖形學(xué)、幾何造型、圖形裁剪及真實(shí)感圖形繪制。其中,前兩部分相比較而言,是基礎(chǔ),內(nèi)容較簡單,講解要深入一些,保證該部分理論具有“點(diǎn)”的深度,如幾何變換,包括;平移、旋轉(zhuǎn)、縮放等變換,以及幾何變換的矩陣表示形式和復(fù)合變換的多矩陣組合形式,此外還要說明齊次坐標(biāo)引入的必要性;幾何造型中,尤其是曲線曲面造型部分,要根據(jù)學(xué)生的實(shí)際情況來決定內(nèi)容的深淺。對于曲面,難度較大,理解起來比較困難,不適合本科生的學(xué)習(xí),故其生成算法完全被屏蔽;而曲線的生成算法雖較曲面易理解,但也不能過于深入,這里只重點(diǎn)介紹B樣條曲線和貝塞爾曲線的生成技術(shù)和特點(diǎn),并且講解過程中,結(jié)合現(xiàn)實(shí)生活的例子,引入具體應(yīng)用,如在汽車、飛機(jī)外形設(shè)計(jì)中的應(yīng)用;裁減計(jì)算,也是計(jì)算機(jī)圖形學(xué)的核心,這里重點(diǎn)講解直線段的裁剪算法和多邊形裁剪算法;對于真實(shí)感圖形繪制部分,由于涉及的知識(shí)面廣,理論深,同樣不適合本科生的學(xué)習(xí),故這一部分內(nèi)容只介紹一些基本概念??傊?,上述的內(nèi)容涉及許多概念和算法,要求學(xué)生把重點(diǎn)放在基本概念和算法的思想上,不強(qiáng)調(diào)學(xué)生去掌握和實(shí)現(xiàn)算法的具體細(xì)節(jié),但要求掌握幾個(gè)經(jīng)典的算法。
2) 注重基礎(chǔ),強(qiáng)調(diào)基本原理和基本概念的理解,同時(shí)還要突出重點(diǎn)、重視應(yīng)用。對一些要求學(xué)生掌握的經(jīng)典算法,如Bresenhan算法,掃描線填充算法等,要重點(diǎn)講授,仔細(xì)分析,強(qiáng)調(diào)其基本原理和基本思想,并在學(xué)生理解掌握的基礎(chǔ)上,結(jié)合具體實(shí)例的剖析,告訴學(xué)生理論和實(shí)際應(yīng)用的切入點(diǎn),給予學(xué)生理論結(jié)合實(shí)際的基點(diǎn),激發(fā)學(xué)生興趣,逐步培養(yǎng)他們的科研能力。
3) 制定教學(xué)內(nèi)容時(shí)還應(yīng)跟上時(shí)代步伐,介紹一些最新的學(xué)科前沿和研究進(jìn)展,一方面增加理論教學(xué)的趣味性,另一方面使學(xué)生對學(xué)科前沿有一個(gè)概念性的直觀理解,增加學(xué)習(xí)興趣,拓寬他們的知識(shí)面,從而為學(xué)生從事該領(lǐng)域的應(yīng)用開發(fā)或研究工作打下良好基礎(chǔ)。
3.3理論教學(xué)
計(jì)算機(jī)圖形學(xué)的教學(xué)應(yīng)采取課堂講授為主、上機(jī)實(shí)驗(yàn)為輔、以學(xué)生為主體、教師為主導(dǎo)的教學(xué)模式。為達(dá)到教學(xué)效果,理論教學(xué)應(yīng)從以下幾方面加強(qiáng):
1) 加強(qiáng)可視化教學(xué)。
計(jì)算機(jī)圖形學(xué)的很多算法理論性很強(qiáng),數(shù)學(xué)模型也比較抽象,單純采用文字?jǐn)⑹龈揭造o態(tài)圖片的PPT形式的教學(xué)手段,教學(xué)效果并不理想,尤其是對于一些經(jīng)典或復(fù)雜的算法,效果更差。因此,應(yīng)充分利用目前流行的課件制作工具,如Flash、OpenGL等,制作經(jīng)典算法的仿真演示,使晦澀難懂的原理公式變成栩栩如生的畫面。筆者在講授經(jīng)典算法時(shí),將其原理用Flash做成動(dòng)畫插入到PPT中,使學(xué)生可以直觀感受到算法的效果,提高了課堂氣氛,增加了學(xué)生的學(xué)習(xí)興趣。
2) 注重啟發(fā)式教學(xué)。
平鋪直敘、滿堂灌的教學(xué)方法只會(huì)讓學(xué)生感到枯燥、乏味,從而影響他們的學(xué)習(xí)積極性和主動(dòng)性。尤其在講授以數(shù)學(xué)知識(shí)為支撐的算法時(shí),切忌繁瑣復(fù)雜的公式推導(dǎo)和連篇累牘的算法分析,避免學(xué)生的煩躁情緒,而應(yīng)采用啟發(fā)式教學(xué)方法,通過“提出問題→同學(xué)解答問題→分析問題→解決問題→分析解決方法的優(yōu)缺點(diǎn)”的思路,引導(dǎo)學(xué)生思考,層層深入、逐步展開,充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性。例如在講解多邊形裁剪時(shí),首先啟發(fā)學(xué)生多邊形是由線段組成的,是否可以將線段裁剪方法用于多邊形裁剪?學(xué)生點(diǎn)點(diǎn)頭,然后接著問,那么是否適用呢?學(xué)生進(jìn)入了思考的狀態(tài),這時(shí)借助課件給出采用線段裁剪算法對多邊形進(jìn)行裁剪得到的裁剪結(jié)果,并給出一個(gè)否定的答案,繼續(xù)提問為什么會(huì)不適用?引導(dǎo)學(xué)生進(jìn)一步思考,然后進(jìn)行分析,給出不適用的原因,在線段裁剪算法中,是把一條線段的兩個(gè)端點(diǎn)孤立地加以考慮,而多邊形是由一些有序的線段組成,要求裁剪后的多邊形仍保持原多邊形各邊的連接順序。既然這個(gè)算法不適用,就應(yīng)該尋找一種有效的裁剪算法,接著引入多邊形的逐邊裁剪算法。介紹完逐邊裁剪算法后,繼續(xù)啟發(fā)學(xué)生思考,這種算法是否適用于所有的多邊形?學(xué)生會(huì)給出肯定的回答,這時(shí)進(jìn)一步啟發(fā),如果是凹多邊形,逐邊裁減算法是否適用,如果不適用,如何改進(jìn)?這可能是學(xué)生沒有預(yù)料到的,他們會(huì)對接下來的內(nèi)容表現(xiàn)出濃厚的學(xué)習(xí)興趣,進(jìn)一步分析,當(dāng)多邊形為凹多邊形,且裁剪后的多邊形有兩個(gè)或多個(gè)分離部分的時(shí)候,由于只有一個(gè)輸出頂點(diǎn)表,表中最后一個(gè)頂點(diǎn)總是連著第一個(gè)頂點(diǎn),會(huì)出現(xiàn)多余連線的現(xiàn)象,這就是下一步需要改進(jìn)的地方,而邊界裁剪算法則可以避免這一問題。再如,在講解直線段的繪制時(shí),首先讓學(xué)生自己設(shè)計(jì)一個(gè)算法,這時(shí)幾乎全部的學(xué)生都會(huì)給出直線段生成的普通算法,即根據(jù)直線方程,通過設(shè)置x取值范圍,求出屏幕的一系列點(diǎn),然后提問學(xué)生,從算法效率角度來看,普通算法存在怎樣的問題,引導(dǎo)學(xué)生思考,最后引入直線段的繪制算法。因此,啟發(fā)式教學(xué)方法可以給學(xué)生主動(dòng)思維和積極思維的空間,將學(xué)生一步步帶入算法設(shè)計(jì)中,有效提高教學(xué)質(zhì)量。
3) 做好課前回顧。
以目前課程開設(shè)時(shí)間和學(xué)生的實(shí)際情況,要求學(xué)生課后復(fù)習(xí)課前預(yù)習(xí)似乎是強(qiáng)人所難。為了加強(qiáng)知識(shí)的連貫性,鞏固所學(xué)知識(shí),應(yīng)該在課前拿出較短時(shí)間對上堂課的學(xué)習(xí)內(nèi)容進(jìn)行簡單回顧,然后過渡到新的教學(xué)內(nèi)容。
3.4實(shí)踐教學(xué)
實(shí)踐教學(xué)是理論教學(xué)的深化和補(bǔ)充,是學(xué)好計(jì)算機(jī)圖形學(xué)的重要保證,也是培養(yǎng)學(xué)生動(dòng)手能力的有力武器。因此,教學(xué)過程中要加強(qiáng)實(shí)踐教學(xué),將理論教學(xué)和實(shí)踐教學(xué)密切結(jié)合起來。
1) 實(shí)驗(yàn)題目層次化。
根據(jù)大綱要求,結(jié)合學(xué)生的實(shí)際情況,將實(shí)踐教學(xué)由淺到深分層次進(jìn)行。我們共有8個(gè)學(xué)時(shí)的實(shí)驗(yàn),按照由淺到深的原則安排了4個(gè)小實(shí)驗(yàn):直線生成、圖形變換、裁剪計(jì)算、曲線生成,以及1個(gè)綜合性實(shí)驗(yàn)。對于驗(yàn)證型實(shí)驗(yàn),即那些有代表性的算法,如直線生成、裁剪計(jì)算等,要求每個(gè)學(xué)生根據(jù)教材的子程序親自動(dòng)手實(shí)現(xiàn),加強(qiáng)對課堂所學(xué)基本算法的理解,培養(yǎng)他們的成就感,并且,題目的要求也隨著難易程度發(fā)生變化,如直線生成算法比較簡單,要求學(xué)生實(shí)現(xiàn)的算法必須具有通用性,同時(shí),為增加學(xué)生的學(xué)習(xí)興趣,可以巧妙設(shè)計(jì)實(shí)驗(yàn)內(nèi)容,如在實(shí)現(xiàn)直線生成算法時(shí),可以讓學(xué)生畫線生成漢字;圖形變換主要讓學(xué)生實(shí)現(xiàn)二維圖形的變換,包括平移、旋轉(zhuǎn)、縮放及復(fù)合變換等內(nèi)容,由于這一實(shí)驗(yàn)包含多個(gè)操作,要求學(xué)生增加菜單選擇功能;裁剪計(jì)算要求實(shí)現(xiàn)線段裁剪算法,從易操作的角度出發(fā),要求算法采用交互式的畫線方法;曲線生成算法要求學(xué)生采用根據(jù)參數(shù)曲線定義的方法來實(shí)現(xiàn),對于編程能力強(qiáng)的同學(xué),在曲線生成的基礎(chǔ)上,增加鼠標(biāo)拖動(dòng)控制點(diǎn)改變曲線形狀的要求。對于綜合型實(shí)驗(yàn)項(xiàng)目,學(xué)生可根據(jù)自身學(xué)習(xí)能力和實(shí)踐能力選擇獨(dú)立完成或合作完成,通過綜合型實(shí)踐訓(xùn)練,不但培養(yǎng)了學(xué)生的動(dòng)手能力和創(chuàng)新意識(shí),而且還培養(yǎng)了他們的團(tuán)隊(duì)協(xié)作精神。
2) 開發(fā)環(huán)境多元化。
完善教學(xué)內(nèi)容,擴(kuò)展學(xué)生的知識(shí)面,實(shí)踐教學(xué)采用開發(fā)環(huán)境的聯(lián)合。對于驗(yàn)證性實(shí)驗(yàn),學(xué)生可在Turbo C環(huán)境中實(shí)現(xiàn),而對于綜合性實(shí)驗(yàn),鼓勵(lì)學(xué)生基于OpenGL進(jìn)行編程。讓學(xué)生提前介入到使用OpenGL編寫“應(yīng)用軟件”,不但可以滿足學(xué)生的興趣,還可以提高學(xué)生的實(shí)際動(dòng)手能力。
4結(jié)語
計(jì)算機(jī)圖形學(xué)是一門不斷發(fā)展的交叉學(xué)科,其教學(xué)方法需要在實(shí)踐中不斷探索。我們教學(xué)工作者在研究高效率的教學(xué)手段和教學(xué)方法的同時(shí),還應(yīng)積極參與教學(xué)內(nèi)容相關(guān)的科研工作,從而更加明確教學(xué)重點(diǎn)和難點(diǎn),做到在教學(xué)過程中有的放矢,激發(fā)學(xué)生學(xué)習(xí)和思考的積極性和主動(dòng)性。
參考文獻(xiàn):
[1] 何援軍. 計(jì)算機(jī)圖形學(xué)[M]. 2版. 北京:機(jī)械工業(yè)