摘要:計算機圖形學是近年來發展最快的計算機學科方向之一。本文結合二類本科院校培養具有一定創新能力和應用型人才的要求,提出了系統案例教學方法。
關鍵詞:系統案例;教學方法;計算機圖形學
計算機圖形學是近年來發展最快的計算機學科方向之一,是計算機應用專業的必修課程。但在實際的教學過程中,按照傳統的教學方式,我們發現計算機圖形學涉及到大量的數學知識,包括各種生成算法、處理技術和顯示過程,涉及到數學模型和復雜的公式推導,在理解上要求具有比較強的空間想象力,學生理解上比較困難。本文結合二類本科院校培養具有一定創新能力的應用型人才的要求,根據十多年的教學實踐,提出了圖形系統案例教學方法,將計算機圖形學知識和實現圖形系統結合起來,從現有系統中找靈感,從計算機圖形學課程中學理論,搭建自己的圖形系統,使學生真正理解計算機圖形學的本質,達到理論與實踐雙豐收,取得了比較明顯的教學效果。
一、課程特點和教學模式
1.課程特點
(1) 計算機圖形學不僅涉及到圖形硬件、軟件和大量的實現算法,而且與微電子學、信息科學、幾何學、圖論學等專業學科密切相關,并在發展中逐步與圖像處理、模式識別、人工智能、計算機網絡和計算機語音處理結合起來,要求授課教師具有比較全面的知識結構,講解有所側重,合理取舍。
(2) 計算機圖形學需要用到大量的數學模型和算法。計算機圖形學作為圖形顯示和處理的一門學科,具有很深的數學理論基礎和實用技術。計算機圖形學的基礎是數學,任何圖形的顯示都必須首先構造出數學模型,然后再通過算法程序實現圖形的顯示和處理。另一方面,為了在計算機上顯示和處理復雜的圖形,要求人們不斷地學習和研究數學,構造精巧的數學模型和實現算法,這就是計算機圖形學的實質。但對于初學者來說,應當講授較少的數學知識,或者直接采用數學結論,而簡略中間繁瑣的數學推導過程。在講課過程中,如果過分注重圖形學所涉及到的理論知識、數學模型和構造算法,學生就會感到比較抽象和難懂。
(3) 計算機圖形學是一門實踐性很強的課程,不僅要求學習大量的理論知識,而且更多的是要求算法的實現,要求程序的編寫和調式能力,因此需要更加重視實驗環節。學習計算機圖形學的目的在于構建圖形系統,包括計算機圖形硬件的搭建和圖形軟件的編寫。計算機圖形學是設計AutoCAD、Photoshop、CoreDraw等圖形系統軟件的理論基礎。
學習計算機圖形學,要與使用圖形系統軟件區分開來。計算機圖形學是設計圖形系統軟件的基礎,而學習現有的圖形軟件則是為了進行計算機平面設計、動畫設計、影視制作、CAD等具體的應用領域。反過來,參考和學習這些現有的圖形系統軟件可以幫助理解計算機圖形學的知識和方法。
根據用戶和計算機圖形系統的關系,可以把利用計算機圖形學的用戶分為三類:一是圖形理論研究,二是系統設計程序員,三是圖形系統的操作員。
計算機圖形學的目標在于培養前兩種人才,即圖形理論研究與圖形系統實現者,研究圖形學新的理論和技術,編寫各種專業圖形處理軟件,供產品設計人員使用。
2.系統案例教學模式
案例教學作為一種教學手段已經得到廣大師生的認可。該教學法是在教師的精心策劃和指導下,根據教學目的和教學內容的要求,運用典型案例,將學生引入到特定實踐環節情境中,并以學生為中心對案例進行交互式討論和探索的過程。案例教學具有下面四個共同的特點:一是真實性,案例必須是真實可靠的事件;二是典型性,必須是包括特殊情境和具有代表性的問題;三是濃縮性,必須多角度地呈現問題,提供足夠的信息;四是啟發性,必須是經過研究,能夠引起討論,提供分析和反思。
系統案例教學法是以設計實際的系統為目標,制定系統總體框架,結合理論教學,布置相關實驗任務和實踐環節,最后將各個獨立的實驗程序整合在一起,搭建起一個小型實用系統。系統案例教學法要求學習目標要明確,方案設計要合理,理論與實踐要一致。針對計算機圖形學課程,采用系統案例教學法還要注意以下事項:
(1) 以學生為中心,充分發揮學生能動性。由于所定目標軟件系統功能復雜,而課堂教學時間有限,不可能面面俱到。因此,要充分調動學生學習興趣,發揮主觀能動性。學生是案例教學的主角,老師在講授理論基礎上,更重要的是啟發和輔導。
(2) 系統案例教學法是一種模擬系統實踐的教學過程。雖然類似的軟件系統市面上已經有很多,但我們的目的是學生模仿實現,所用到的理論知識在課堂上同步學習,加強學生對理論課程學習興趣,并結合學生自己的理解和體會,親自動手實現自己的系統。
(3) 系統案例教學又是一種動態的、開放的教學方式。課堂上講授的系統理論相同,但系統實現的方法可以不同,在系統實現的過程中鍛煉學生運用各種理論知識、綜合分析和解決實際問題的能力。
(4) 系統案例教學注重的是系統實現的過程,要的是結果,但這樣的要求也反過來促進學生對理論知識的學習,同時也鍛煉了學生實際動手能力。
二、系統案例教學方案實施
計算機圖形學課程內容包括了圖形學的基本概念、圖形系統和圖形標準、基本圖形生成技術、圖形幾何變換、曲線和曲面、真實圖形和計算機動畫等,這些內容是設計一個圖形系統必備的理論體系。為了實現系統案例教學,實施方案如下:
第一步:明確目標、搭建平臺。計算機圖形學第一章概述部分主要講解課程目標和目的、國內外的發展狀況和應用領域,加深學生對課程的認識。圖形系統和圖形標準則是實現圖形系統所用到的硬件設備和軟件系統,以及圖形系統的國際標準。這兩部分為學生明確學習目標、搭建系統平臺奠定了基礎。為了編寫圖形系統,在第三部分講解了Visual C++圖形程序設計,主要介紹Visual C++集成編成環境的使用、圖形設備接口、圖形程序設計方法、鼠標編程以及菜單設計等基礎,目的是通過對Visual C++的學習,掌握Visual C++圖形程序設計的方法,為計算機圖形學原理部分的算法實現提供程序工具和方法。
第二步:系統設計、分步實施。按照課程體系和實際圖形系統的要求,我們精心設計10個實驗項目,覆蓋了計算機圖形學大部分的知識點,包括:
(1) Visual C++圖形程序設計。主要學習Visual C++圖形程序設計的方法,掌握Visual C++集成編成環境的使用、圖形設備接口和常用圖形程序設計、鼠標編程、橡皮筋交互技術、畫刷與畫筆以及菜單設計等,使學生能夠熟練掌握Visual C++圖形程序設計。
(2) 直線的生成。理解直線生成算法思想,寫出實現程序;添加鼠標功能,實現交互式畫直線程序;將10個像素作為步距單位,編出Bresenham算法的示例。
(3) 圓與橢圓的生成。編寫中點畫圓法的掃描轉換程序,考慮原點在(x0,y0)處程序的改動;添加鼠標程序,實現交互式畫圓;編寫中點畫橢圓法的掃描轉換程序;添加鼠標程序,實現交互式畫橢圓;
(4) 區域填充算法。多邊形有序邊表算法程序設計;邊填充算法和邊標志填充算法;簡單的種子填充算法和掃描線填充算法;區域填充圖案程序設計;要求實現種子填充算法、掃描線填充算法和圖案填充算法。
(5) 裁剪算法。編碼裁剪算法程序設計;要求用鼠標畫線技術,實現交互式裁剪效果;
(6) 交互式技術和用戶接口。學習VC++菜單資源編輯器,菜單程序設計舉例;學習Autocad繪圖的基本方法,了解常用的交互式技術;
(7) 曲線與曲面;拋物線程序設計;Hermite曲線程序設計;Bezier曲線的算法實現;B樣條曲線的程序設計。要求加入鼠標和橡皮筋技術,實現交互式生成曲線,并且可以通過調整控制點來隨意修改曲線的形狀。
(8) 二維幾何變換。通過二維幾何變換的數學模型,編寫平移、旋轉、放縮、對稱變換;加入鼠標功能,實現交互式移動圖形;
(9) 真實圖形技術。實現一種消隱技術和光照模型。
(10) 計算機動畫。利用一種動畫技術,實現一個小型動畫。
每個實驗都詳細地列出了實驗目的、實驗任務、實驗步驟、實驗結果分析和實驗總結和思考,通過改進程序和算法,提高學生的思考問題和編程動手能力。
第三步:系統整合、實現系統。利用Visual C++菜單編程、工具欄和圖標技術,選擇實用的繪圖實驗程序,掛在累累菜單上,并設計出工具欄,就可以進行簡易的圖形繪制。
第四步:綜合評價,創新考核。我們學校開設的計算機圖形學是考查課(必修課),主講教師可以比較方便的安排最后的考核方式。按照系統案例法的思想,我們注重理論結合實踐,看重的是系統設計的過程和最后的結果,不能采用一張試卷定成績的方式,而是采用了50+30+20的考核方式,即最后的系統設計技術報告和系統軟件演示占50分,要求技術報告撰寫規范,總體設計和分步實施詳細,總結部分包括理論學習的知識點、系統實現的優缺點以及系統的擴展和展望等。平時的分步實驗結果和實驗報告占30分,督促學生課下及時預習和準備實驗,并寫好實驗報告。平時上課考核和作業占20分。這種考核方式可以將學生的考試壓力分散到平時,也可以保證系統案例教學的效果。
三、效果分析
經過三年系統案例教學方法的實踐,明顯地達到了以下教學效果:
(1) 提高了學生學習興趣。興趣是最好的老師,通過課程講解和引導、系統目標設計、分步實驗實施、學生小組研討等方式,激發學生對該門課程的學習興趣,進而引導學生積極主動的學習。
(2) 鍛煉了學生動手實踐能力。系統案例教學法注重的是理論付諸于實踐,看重的是系統設計的過程和最后的結果,學生必須掌握課程講述的理論知識,理解算法思想,利用VC++編寫出能夠實際使用的程序,包括各種交互式技術的實現,不僅可以鍛煉學生編程能力,而且鍛煉了學生綜合分析和實際解決問題的能力。
(3) 增強了信心。以往學生對于實現大型系統軟件總是望而生畏,不敢涉足,通過該門課程的學習,對于像PHOTOSHOP等大型軟件學生們也有了深刻地認識,有些功能也敢說自己也能實現,增強了學生學習的信心和專業的自豪感。