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