姜麗梅,張榮華,劉 麗
(華北電力大學(xué)(保定) 計(jì)算機(jī)系,河北 保定 071003)
2006年3月,美國卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)科學(xué)系主任周以真(Jeannette M Wing)教授在美國計(jì)算機(jī)權(quán)威期刊Communications of the ACM定義了計(jì)算思維(computational thinking):計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)和理解人類行為,它涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動[1]。隨著計(jì)算機(jī)技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大,計(jì)算思維的重要性日益明顯,計(jì)算思維能力培養(yǎng)也成為當(dāng)前各階段教育的能力導(dǎo)向之一。計(jì)算思維作為一種與計(jì)算機(jī)及其特有問題的求解緊密相關(guān)的思維形式,人們根據(jù)自己工作和生活的需要,在不同的層面上利用這種思維方法去解決問題[2]。經(jīng)過近十年的教學(xué)研究和實(shí)踐,這一先進(jìn)的教學(xué)理念已被相當(dāng)多的人接受,得到國內(nèi)眾多知名院校的支持。國內(nèi)眾多高校的專家學(xué)者都已提出,將計(jì)算思維能力培養(yǎng)作為計(jì)算機(jī)基礎(chǔ)課程的改革方向,這對于提升大學(xué)生科學(xué)思維能力,培養(yǎng)創(chuàng)新人才具有重大意義[3]。
計(jì)算機(jī)圖形學(xué)作為高等院校計(jì)算機(jī)核心課程之一,與計(jì)算思維有著天然的聯(lián)系。以計(jì)算思維為核心的教學(xué)模式不應(yīng)僅著眼于“知識”即事實(shí)的學(xué)習(xí),更強(qiáng)調(diào)用計(jì)算思維進(jìn)行引領(lǐng),更多地訓(xùn)練學(xué)生的思想、方法、意識和能力。如何以計(jì)算機(jī)圖形學(xué)課程為載體培養(yǎng)計(jì)算思維能力,引導(dǎo)學(xué)生學(xué)習(xí)并掌握這種思維方法,將其有效地用于問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解,是當(dāng)前課程研究的方向之一。
計(jì)算機(jī)圖形學(xué)理論性強(qiáng)、概念抽象性高、實(shí)際應(yīng)用性強(qiáng),受傳統(tǒng)教學(xué)理念的影響,大多數(shù)國內(nèi)高校的計(jì)算機(jī)圖形學(xué)教學(xué)模式并沒有跟上圖形繪制硬件的發(fā)展和時(shí)代的要求。傳統(tǒng)的計(jì)算機(jī)圖形學(xué)教學(xué)基于固化算法的功能和固定的GPU結(jié)合編程語言,偏重于把現(xiàn)有計(jì)算機(jī)圖形學(xué)的原理、方法和基本的圖形繪制算法傳授給學(xué)生,學(xué)生只能被動地接受已有算法的功能實(shí)現(xiàn),忽視了對學(xué)生創(chuàng)新意識和創(chuàng)新能力的培養(yǎng)。對于實(shí)際操作,又僅僅從上層軟件的操作層面鍛煉學(xué)生的應(yīng)用能力,學(xué)生很難從理論深度深入理解上層軟件的工作原理,勢必造成學(xué)生在學(xué)習(xí)計(jì)算機(jī)圖形學(xué)原理和知識時(shí)只知其“然”而不知其“所以然”的局面,違背了當(dāng)今本科教育全面發(fā)展的培養(yǎng)目標(biāo)。尤其是對于計(jì)算機(jī)專業(yè)的學(xué)生,除了需要系統(tǒng)完善的知識,理解并掌握計(jì)算機(jī)圖形學(xué)的基本概念、理論和算法,更需要加強(qiáng)系統(tǒng)認(rèn)知能力、算法分析能力、計(jì)算思維能力、程序設(shè)計(jì)能力的培養(yǎng)。
過去十幾年中,GPU得到了迅速發(fā)展,尤其是可編程GPU及眾多高級著色語言的出現(xiàn),使得傳統(tǒng)計(jì)算機(jī)圖形學(xué)教學(xué)模式的缺陷日漸凸顯。功能固定的GPU雖然圖形繪制性能和速度較高,但是應(yīng)用程序編程人員并不能控制計(jì)算機(jī)內(nèi)部圖形生成過程,進(jìn)一步限制了對學(xué)生探索知識能力和創(chuàng)新意識的培養(yǎng)。對于基于可編程GPU的圖形繪制應(yīng)用程序來說(以O(shè)penGL應(yīng)用程序?yàn)槔?,所有的繪制都是通過可編程GPU的頂點(diǎn)著色器、片元著色器以及其他著色器來控制的,因此新的可編程結(jié)構(gòu)為三維圖形應(yīng)用程序開發(fā)人員提供了極大的靈活性,也對高等學(xué)校計(jì)算機(jī)圖形學(xué)課程的教育教學(xué)提出了更高的要求[4]。
計(jì)算機(jī)圖形學(xué)是研究如何利用計(jì)算機(jī)生成、處理和顯示圖形的一門學(xué)科,包括圖形描述、圖形生成、圖形變換、圖形存儲、圖形輸出。計(jì)算機(jī)圖形學(xué)涉及范圍非常廣泛,不僅涉及計(jì)算機(jī)的各個(gè)學(xué)科,還涉及線性代數(shù)、計(jì)算幾何、機(jī)械設(shè)計(jì)、光學(xué)、物理學(xué)、工程制圖等多個(gè)專業(yè)和學(xué)科。需要認(rèn)識到,計(jì)算機(jī)圖形學(xué)中蘊(yùn)含著計(jì)算思維的概念,而如何構(gòu)建能夠體現(xiàn)計(jì)算機(jī)圖形學(xué)核心思想和方法的教學(xué)內(nèi)容,突出計(jì)算思維方法的訓(xùn)練,在掌握課程知識的基礎(chǔ)上,引導(dǎo)學(xué)生學(xué)習(xí)、掌握這種思維方法,有效地將其用于計(jì)算機(jī)問題以及非計(jì)算機(jī)問題甚至跨學(xué)科問題的求解,是當(dāng)前課程的改革方向,需要從教學(xué)理念、教學(xué)內(nèi)容、教學(xué)方法等方面采取有效措施以提升教學(xué)效果。
教育部大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會構(gòu)建了計(jì)算思維的表述體系:計(jì)算、抽象、自動化、設(shè)計(jì)、通信、協(xié)作、記憶和評估。在計(jì)算機(jī)圖形學(xué)課程中,“計(jì)算”與“自動化”這兩個(gè)概念又是關(guān)注的重點(diǎn),這也是由課程內(nèi)容所決定的[3]。應(yīng)當(dāng)認(rèn)識到:計(jì)算機(jī)圖形學(xué)中滲透著計(jì)算思維,應(yīng)當(dāng)啟發(fā)學(xué)生使用計(jì)算思維解決各種計(jì)算機(jī)圖形學(xué)相關(guān)的實(shí)際問題。
(1)計(jì)算機(jī)圖形學(xué)研究如何在計(jì)算機(jī)上生成、處理和顯示圖形,模擬畫家繪畫、設(shè)計(jì)師設(shè)計(jì)等過程并展現(xiàn)他們的思維方式,有助于深刻理解從問題分析、系統(tǒng)設(shè)計(jì)、問題解決的過程[5]。
(2)圖形的幾何變換、光柵化、隱藏面消除等圖形學(xué)的具體求解問題,需要利用計(jì)算機(jī)科學(xué)的基本概念進(jìn)行求解,也體現(xiàn)了計(jì)算思維方法,二者存在聯(lián)系和區(qū)別。
(3)計(jì)算機(jī)圖形系統(tǒng)由軟件系統(tǒng)和硬件系統(tǒng)組成,軟硬件系統(tǒng)開發(fā)和設(shè)計(jì)是計(jì)算機(jī)類專業(yè)學(xué)生的重要技能。
傳統(tǒng)的計(jì)算機(jī)圖形學(xué)教學(xué)基于固化算法的功能固定的GPU結(jié)合一種或幾種編程語言介紹計(jì)算機(jī)圖形學(xué)的基本原理、方法和技術(shù),而該課程內(nèi)容多、理論難度大、實(shí)踐性強(qiáng),導(dǎo)致學(xué)習(xí)難度增加、學(xué)生學(xué)習(xí)積極性不高等問題,陳舊的教學(xué)內(nèi)容還限制學(xué)生獲取具有較強(qiáng)應(yīng)用背景和前沿性的技術(shù)知識,勢必會限制學(xué)生的創(chuàng)新意識和探索能力,也不利于學(xué)生實(shí)踐能力和創(chuàng)新能力的培養(yǎng)。
結(jié)合多年計(jì)算機(jī)圖形學(xué)課程的教學(xué)實(shí)踐和當(dāng)前計(jì)算機(jī)圖形學(xué)技術(shù)的發(fā)展,提出的對教學(xué)內(nèi)容的調(diào)整方案主要包括以下內(nèi)容。
1)以計(jì)算機(jī)圖形學(xué)相關(guān)原理、方法和技術(shù)為主要內(nèi)容,以可編程GPU的圖形繪制流水線為主線安排教學(xué)內(nèi)容,見圖1[4]。

圖1 圖形繪制流水線
強(qiáng)調(diào)以流水線形式描述圖形數(shù)據(jù)到圖形顯示的繪制過程,更能突出計(jì)算機(jī)圖形學(xué)中蘊(yùn)含的計(jì)算思維。
(1)頂點(diǎn)處理模塊的主要功能是通過執(zhí)行頂點(diǎn)著色器程序(vertex shader)確定頂點(diǎn)的位置坐標(biāo)以及程序員希望的其他輸出數(shù)據(jù),比如頂點(diǎn)的法向量和紋理坐標(biāo)。隨著現(xiàn)代可編程GPU的發(fā)展,頂點(diǎn)著色器變成了更加通用的編程單元,可以處理任何與頂點(diǎn)相關(guān)的數(shù)據(jù),比如編寫頂點(diǎn)著色器程序生成對象的動畫效果。在圖形生成過程中,對象頂點(diǎn)經(jīng)過在不同坐標(biāo)系之間的變換,每一次變換可以用一個(gè)矩陣來表示,對象頂點(diǎn)在坐標(biāo)系的多次變換可以表示為矩陣的相乘或者級聯(lián),最終表示為一個(gè)復(fù)合矩陣(計(jì)算、設(shè)計(jì)、自動化)。
(2)裁剪之前將頂點(diǎn)組裝成像線段和多邊形這樣的圖元,然后裁減掉裁剪體外部的對象,保留裁剪體內(nèi)部的對象(計(jì)算、自動化、抽象、記憶、評估)。
(3)光柵化模塊將裁剪模塊得到的圖元進(jìn)一步處理成幀緩存中的片元(計(jì)算、記憶、自動化、抽象、設(shè)計(jì)、評估)。
(4)片元處理模塊主要執(zhí)行片元著色器程序(fragment shader),利用光柵化模塊生成的片元來更新幀緩存中的像素,確定三維圖形每個(gè)片元的顏色和可見性。每個(gè)片元的顏色可以由程序指定,也可以利用基于物理的真實(shí)感光照模型來計(jì)算,這樣的光照模型考慮了對象的表面屬性和場景中的特定光源(計(jì)算、評估、設(shè)計(jì))。
目前,現(xiàn)代可編程GPU已經(jīng)演化成一種具有統(tǒng)一渲染架構(gòu)的并行流水線結(jié)構(gòu),圖1所示的流水線上各個(gè)模塊之間是并行執(zhí)行的,并且流水線上著色器本身也是基于頂點(diǎn)或片元數(shù)據(jù)并發(fā)執(zhí)行的(協(xié)調(diào))。
(5)利用圖形繪制流水線,不僅在各個(gè)模塊內(nèi)容的學(xué)習(xí)中能認(rèn)識到計(jì)算機(jī)思維的抽象、自動化等概念,而且對圖形生成的流程有整體認(rèn)識。在計(jì)算機(jī)圖形系統(tǒng)構(gòu)成、輸入輸出設(shè)備、圖形軟件教學(xué)過程中,可體現(xiàn)計(jì)算思維中的記憶、通信、設(shè)計(jì)思維訓(xùn)練,認(rèn)識由簡單問題到復(fù)雜問題、復(fù)雜問題分解為簡單問題的過程。
2)根據(jù)學(xué)生的實(shí)際學(xué)習(xí)情況,壓縮部分理論陳舊的知識,及時(shí)把最新技術(shù)和最新研究成果引入理論教學(xué)中,開闊學(xué)生們的視野。
在掌握基本原理和基本概念的同時(shí),結(jié)合圖形繪制硬件的發(fā)展,增加利用高級著色語言控制可編程GPU進(jìn)行圖形繪制的相關(guān)原理、方法和技術(shù)這部分課程內(nèi)容,增加WebGL和Three.js等第三方庫的教學(xué)實(shí)踐。
3)引入計(jì)算機(jī)圖形應(yīng)用案例,鼓勵和引導(dǎo)學(xué)生圍繞計(jì)算機(jī)圖形學(xué)相關(guān)內(nèi)容,靈活選擇切入點(diǎn)設(shè)計(jì)并開發(fā)圖形應(yīng)用,熟練掌握計(jì)算機(jī)圖形學(xué)基礎(chǔ)知識,提高明確問題、分析問題、解決問題的能力,將實(shí)際應(yīng)用中蘊(yùn)含的計(jì)算思維與計(jì)算機(jī)圖形學(xué)中的計(jì)算思維聯(lián)系起來,實(shí)現(xiàn)對學(xué)生計(jì)算思維能力和創(chuàng)新能力的培養(yǎng)。
總之,教學(xué)內(nèi)容的調(diào)整不僅符合學(xué)校“厚基礎(chǔ),強(qiáng)能力,重實(shí)踐”的原則,也有助于培養(yǎng)學(xué)生基于圖形繪制的計(jì)算思維能力。計(jì)算思維的核心概念是經(jīng)過高度概括和理論總結(jié)的,還不能成為直接的教學(xué)材料,其培養(yǎng)要滲透在傳授學(xué)科知識、訓(xùn)練應(yīng)用能力的過程中[6]。通過計(jì)算機(jī)圖形學(xué)課程的學(xué)習(xí),逐步提煉計(jì)算思維的具體表現(xiàn)形式與過程,引導(dǎo)學(xué)生在不同的應(yīng)用情景中梳理運(yùn)用計(jì)算思維解決問題的全過程,最終將利用信息技術(shù)解決問題的過程遷移到學(xué)習(xí)和生活的其他相關(guān)問題解決過程中。
計(jì)算機(jī)圖形學(xué)的內(nèi)容抽象性很高,存在一些晦澀難懂的概念。同時(shí),計(jì)算機(jī)圖形學(xué)具有很強(qiáng)的應(yīng)用背景,但實(shí)踐難度大。為了取得良好的教學(xué)效果,改進(jìn)傳統(tǒng)的以講授為主的教學(xué)方式,采用多種教學(xué)手段相結(jié)合,成為計(jì)算機(jī)圖形學(xué)教學(xué)的最佳選擇。
(1)采用“所見即所得”的方式,包括開發(fā)界面直觀友好的教學(xué)演示軟件,選取有指導(dǎo)意義和教學(xué)意義的代表性的案例,通過教學(xué)演示軟件形象地展示復(fù)雜圖形生成過程,將計(jì)算機(jī)圖形學(xué)抽象的思維過程形象地表達(dá)出來。
(2)將研究性教學(xué)引入到教學(xué)過程中,強(qiáng)化學(xué)生發(fā)現(xiàn)問題、分析問題和解決問題的能力。
(3)改變傳統(tǒng)的教師講授、學(xué)生參與的教學(xué)模式,研究雙主互動教學(xué)模式,加強(qiáng)學(xué)生在教學(xué)過程中的主體地位,提高學(xué)生學(xué)習(xí)的積極性和主動性。
(4)以課程實(shí)驗(yàn)為契機(jī),讓學(xué)生自主設(shè)計(jì)并實(shí)現(xiàn)三維場景繪制,設(shè)置OpenGL基本圖形繪制、3D建模和真實(shí)感圖形繪制綜合實(shí)驗(yàn),調(diào)動學(xué)生思考和探究的積極性。計(jì)算思維遠(yuǎn)不止計(jì)算機(jī)程序設(shè)計(jì),還要求能夠根據(jù)待求解問題在抽象的多個(gè)層次上思考、設(shè)計(jì)和實(shí)現(xiàn),因此,鼓勵學(xué)生自主完成游戲開發(fā)、移動圖形計(jì)算等新形式題目,培養(yǎng)學(xué)生的項(xiàng)目設(shè)計(jì)、實(shí)現(xiàn)和實(shí)施的能力,從而加強(qiáng)計(jì)算思維能力培養(yǎng)。
計(jì)算思維能力培養(yǎng)以計(jì)算機(jī)學(xué)科為代表,是近年來計(jì)算機(jī)相關(guān)課程的教學(xué)研究熱點(diǎn)。計(jì)算機(jī)圖形學(xué)教學(xué)改革以計(jì)算思維能力培養(yǎng)為導(dǎo)向,對于提高學(xué)生的綜合能力具有重要意義。特別是結(jié)合當(dāng)前計(jì)算機(jī)軟硬件技術(shù)的新發(fā)展,基于可編程GPU和著色語言介紹計(jì)算機(jī)圖形學(xué)的知識,是培養(yǎng)和促進(jìn)學(xué)生計(jì)算思維能力的有效手段之一,能夠加深學(xué)生對本學(xué)科計(jì)算特征和思維方式的認(rèn)識,進(jìn)一步增強(qiáng)學(xué)生運(yùn)用計(jì)算思維分析問題和解決問題能力。反過來,學(xué)生計(jì)算思維能力的提升有助于更好地理解計(jì)算機(jī)圖形學(xué)的核心內(nèi)容,取得更佳學(xué)習(xí)效果。