计算机图形学教学中图形计算思维方法研究

2019-09-09 07:39吴学毅潘向辉
中国教育信息化·高教职教 2019年7期
关键词:计算机图形学

吴学毅 潘向辉

摘   要:图形计算思维是进行图形信息处理相关理论、方法、实践的重要思维方法,是计算思维在图形信息处理领域的应用和扩展。本文对图形计算思维概念进行了研究,并对图形计算思维在计算机图形学教学体系中如何设计和组织进行了探索,总结了3层次图形计算思维模式及其使用的主要方法,并分析其在教学实践中的应用效果。实践表明,将图形计算思维贯彻到教学中均会极大地提升理论课和实践课的教学质量和效果。

关键词:图形计算思维;计算机图形学;教學方法

中图分类号:G434 文献标志码:A 文章编号:1673-8454(2019)13-0075-04

计算思维被提出已有10余年的历史,人们对其内涵、外延、维度、层次结构、表述体系、实践等进行了一系列的研究和探索。[1]由于其发端于发展迅猛的计算机科学,且涉及哲学、心理、社会等学科,又要向人类社会生活的其它领域扩展,至今仍未建立一个完善的体系,存在大量问题需要研究。[2]但不妨碍其作为对计算机学科相关算法、原理、过程的思维方法和规律进行探索和研究的方法论而存在。在大学的计算机学科教学中,分层次、系统性地研究和探索计算思维教育是一种现实可行的方法,即根据计算思维方法层次体系的划分,结合各个专业培养目标需要,在每门课程中结合知识思维特性,探索、总结计算思维的教学规律和方法,系统培养人才的计算思维观念、方法,掌握使用计算思维解决相关领域问题的方法。

计算机图形学是计算机科学、数字媒体技术等本科专业重要的专业基础课,课程特点是理论知识抽象、算法思路多样、知识点众多、实践性很强。有很多学者对在计算机图形学教学中开展计算思维教育进行了探索。周虹等按照Wing的观点将图形学的教学内容划分为问题求解(经典图形学算法)、设计系统(结合OpenGL图形库和多种知识设计复杂的图形系统)和理解人类行为(某些过程性知识与人类思维过程接近),并组织、设计相关的教学体系。[3]李谷伟提出了运用计算思维激发学生学习兴趣,并理解知识的核心问题和求解方法, 通过对问题的引入、寻求解决问题的思路、引出问题的解决方法。[4]但对计算思维在图形学的使用缺少系统性的方法总结和提炼。方佳诚、王勇刚给出了教育部大学计算机课程教学指导委员会对计算思维表述体系的8种分类,并给出了较为经典的图形学算法、过程对应的核心表述方法和参考案例,指出在图形学知识点表述上主要以计算和自动化为核心,且不同课程的知识点表述核心会有所不同。[5][6]但未给出图形学核心算法、过程思维规律的方法总结。本文结合笔者在图形学教学中对计算思维的思考、研究、实践进行了总结,提出了图形计算思维的概念,对如何在图形学教学体系中贯彻和执行图形计算思维进行了研究,分析了图形计算思维中主要方法,并进行了实证研究。

一、图形计算思维的提出

美国K-12教育实践中将计算思维定义为一组认知技能和解决问题的过程,涉及数据的组织和分析、分解问题,程序化的思维技巧、算法思维,并将问题解决过程拓展到社会领域等。[5]该定义较为符合图形计算思维的主要过程。但图形思维拥有自己独特的思考、解决问题的思维方法和规律,而在当前的有关计算思维表述体系中缺少对图形方法的论述。因此,将图形思维纳入计算思维是理所当然的。

图形计算思维包含2个方面。一是广义上的,本文结合计算机学科特点,将其概括为,借助于图形化接口(界面)系统展示事物内在规律和外在过程,通过交互手段接受外部输入(Input),系统内部通过计算仿真(Process)事物的运动规律,将处理结果图形化地输出(Output)到接口。以此来获得对事物规律性的认识,提高人类学习、思考和处理问题的能力。[6]这个过程涉及一系列的思维方法,可称其为可视化思维方法。二是狭义上的,即仅就计算机图形学本身而言,主要涉及3个层次的思维模式:①对图形学基本算法、原理、过程思维过程和规律的认知;②利用图形计算思维进行图形系统设计;③将图形计算思维的方法扩展到其他领域,并解决其他领域的问题。本文仅就狭义图形计算思维在图形学课程教学中相关过程的设计、组织和方法进行讨论。

二、图形计算思维在图形学教学体系中的设计和组织

在图形计算思维教学过程的设计和组织中,不能停留在理论层面,应使学生“既能感受到又能看得见,具体的计算思维”。[6]需要解决“授人以渔”的问题,既需要教师有目的地设计教学环节,并将其落实到各个知识点的教学活动中;同时也需要学生有意识地学习掌握这一思维规律,在学好课程知识的基础上,灵活利用计算思维解决其它问题。首先教师在思想上应高度认识到课程的教学目标包括两部分:一是课程知识的讲授,二是系统性地总结课程中用到的图形计算思维方法,并将其设计、组织到相关教学活动中;其次,深刻领会计算思维的真谛,研究其主要的方法和过程,结合课程的授课目的和知识结构特点,总结提炼课程中所使用的计算思维方法,并与相关的课程知识点结合,讲授其中的思维规律和方法。[7]

在知识体系上,采用“概论→图形系统→图形开发平台→场景创建→几何变换与动画→场景观察→真实感图形绘制→图形交互→光栅图形处理→曲线曲面与图形表示”的顺序来组织教学内容和知识点。这样在知识体系上可以较好地搭建一个容纳3层次图形计算思维模式的教学内容框架。

理论课与编程实践并重已成为应用型人才培养公认的一种教学方式。经典图形学算法理论教学主要体现了问题求解的相关思维方法及规律,实践教学中有关图形学原理、方法和过程的验证实验也属于第1层次思维模式,即对问题求解的实践验证。综合使用图形学理论和方法,通过编程设计开发综合运用多种知识的图形系统,可以满足第2层次思维模式培养需求。通过第1、2层次的学习,能够掌握经典理论的思维规律,掌握高级图形系统开发的思维规律,并以此为工具能够解决其他领域(如虚拟现实、增强现实、游戏设计等)的图形计算思维问题,则属于第3层次。

图形学的显著特点是由大量算法、原理、过程组成,其中贯穿着很多思考问题的方法和规律,初学者很容易陷入一个个不同算法、原理和过程的复杂描述中,而难以领会和掌握其中的思维规律。这就要求教师在超越知识点描述的高度,总结这些经典算法思考、解决问题的思维规律,并结合知识点讲解这一思维规律,从而引导学生自觉学习和掌握思维方法。

在图形系统设计能力的培养中,也存在很多图形计算思维规律和方法,如基于交互的图形系统设计思维方法、图形系统开发框架和基于某种宿主语言的开发思维过程等。

在整个教学过程的设计与组织过程中应贯穿:思维规律和方法介绍落实于知识点的讲解,思维方法随着知识的贯通而养成,图形系统设计能力随着对图形计算思维的理解而得到提升。[8]

三、图形计算思维方法

图形计算思维的养成需要贯穿到教学的具体环节中,深刻发掘课程知识点背后的计算思维方法,并将其与具体的知识点加以融合,是落实计算思维教学的好方法。图形学的知识内容体系主要围绕图形处理过程中的原理、算法、过程、方法来组织展开。其中,既包括相对独立的求解某一问题的算法、过程或方法,也包括作为相对连贯的一系列原理、过程或方法。因此,在其方法论体系中涉及3类思维方法:一是基本图形原理、方法、过程的思维方法,二是图形系统开发的思维方法,三是常规性思维方法。

1.基本图形原理、方法、过程的思维方法

各种原理、算法、方法、过程构成了计算机图形学的主体知识内容,主要用到计算思维表述体系中的计算(状态转换、按时间/空间排序)、抽象(概念模型与形式模型)、自动化(形式化、迭代、递归)等核心概念。[5]除此之外,深入挖掘如下四类图形计算思维规律,介绍清楚其设计思考过程,引导初学者掌握其背后的思维规律,有助于激发其学习兴趣。

每一种原理、算法、方法、过程都有其设计、处理问题的逻辑思维过程,并以形式化方法进行抽象描述。初学者往往会先对这些描述进行字面理解,再去揣摩描述背后隐藏的逻辑思维过程,这样会事倍功半。在教学中总结算法描述背后的逻辑思维过程,再进行算法描述的理解,并以实例解释其实现过程,会达到事半功倍的效果。

一些算法、过程在设计过程中会遵循过程递进的思维规律,单独去看某个算法或过程会使初学者前不知来者后不知去处。将递进思维规律介绍清楚将会有助于初学者按照思维规律去完整理解算法、过程的设计思路。如二维图形光栅化生成算法涉及3个相互联系的递进思维过程:①算法设计的总体思路。对于任何图形的生成和显示均是在光栅显示器等设备上找到一个能够最佳逼近于数学意义上描述图形形状的像素集合的過程。只有理解了这一总前提,才能对后续具体算法的设计思想有一个目的性了解。②总体思路可递进分解为如下的思维主线。a.明确问题的数学或几何意义及相应的数学公式;b.设计特定算法找到最佳逼近的像素点集来显示这些图形;c.所设计的算法针对特定需求有哪些优化方法。③在生成线段、圆所使用的中点算法、Bresenham算法的设计中,又将整个算法分解为3个过程。a.根据图形的几何方程式构造判别条件,根据判别条件的值与0之间的关系确定下一个像素点的坐标;b.根据坐标增量规律计算判别条件之间的递推关系,并确定在起点处的初始判别条件值;c.观察判别条件中有无可能进行一些调整来减少运算的复杂程度,并加以优化。通过以上思维过程的递进分解可以揭示算法设计的思维规律,可使初学者较为轻松地掌握类似算法设计的思维逻辑。

图形学有很多原理、过程描述,使用空间想象思维、类比思维的方法可以帮助初学者更好地掌握这些原理和过程。如在三维场景的构建和漫游中,尽管使用的是含有三维空间坐标顶点信息的函数来设计搭建三维场景,通过改变漫游函数的参数来实现漫游,这一过程完全可以想象成是在计算机虚拟空间像垒砖瓦盖房子似地搭建三维场景,把漫游想象成在虚拟三维空间中的观察活动;而类比方法的使用,最典型的是将三维图形观察过程类比于相机的照相过程,三维场景的搭建、观察坐标系的定义、裁剪体定义、投影变换、图像的显示均与照相过程相似。

在图形计算思维中还涉及一些其他方法,如在几何变换中使用“化非基本几何变换为基本几何变换”的思维方法来解决复合几何变换问题。几何变换背后所使用的矩阵计算方法的揭示使初学者能够从本质上理解几何变换发生的真实过程。在二维线段裁剪算法中巧用区域编码方法解决线段顶点与裁剪窗口边框间关系判断的问题等。

2.图形系统开发的思维方法

任何软件设计都有一套设计框架和思路(即设计框架思维),在程序设计时必须遵循这套框架和思路,再在其框架内扩展自己的功能需求。思维方法包括交互图形系统设计思维方法、图形系统开发框架嵌套到某种宿主平台的开发思维方法。

交互图形系统设计思维方法包括:①交互图形系统界面设计,即分析如何用图形方式来展现内容主题,以及图形部分的输入信息处理方式、响应交互处理的图形渲染过程和图形输出方式。设计用户界面构成元素,如窗口层级关系、菜单、图标、信息显示交互控件、按钮、图形。②图形元素设计,即由哪些几何体组成,几何体分解为哪些几何图元,怎样组合在一起,几何图元由哪些顶点构成,顶点在三维空间的坐标(x,y,z)是什么。③交互逻辑处理算法设计,即根据交互处理功能需要,设计交互设备与图形元素交互事件处理,完成相应功能的逻辑处理算法的设计。

图形系统开发平台与宿主平台的嵌套处理思维过程是指,图形系统开发平台需要嵌套到某些宿主平台方可完成整个系统的开发任务,需要掌握某个图形系统开发平台(如OpenGL等)应用程序开发框架,以及将其嵌套到宿主平台的思维规律。

3.常规性思维方法

计算机图形学是计算机科学的一个分支,在处理算法、过程的设计中遵循计算思维的一般规律和过程。其中,分治思想、森林与树木的关系等是其中使用的重要思维方法。

分治思想是人们处理很多问题时使用的共同方法之一,形象地讲就是大事化小,小事化了。即将一个大的问题分解为一个个相对较小的问题,再对每个小问题进一步进行分解,使其成为一个个利用已有知识、方法可以解决的问题,从而逐层上推,使大问题也可以得到解决。对于图形处理主要体现在两个方面:一是在所有算法设计中均遵循此方法,如凹多边形的识别算法,首先将其分解为根据顶点坐标计算各个边向量,再计算相邻2个边向量间的叉积,最后根据所有叉积的符号的异同来判别其凸凹性;二是在图形系统的开发中,模块化程序设计方法也是这一思想的具体体现。

森林与树木的关系是一种全局与局部的关系,要在森林中不迷路,既要从全局的角度了解森林的总体构成,又要了解每个局部的树木组成。在计算机图形学中,主要体现在整个计算机图形学的知识体系与每个知识单元的关系,以及图形绘制流水线与相关知识单元的关系。这个问题介绍不清楚,往往导致初学者迷失在庞大的图形学知识体系里,不能从总体上把握图形学所要研究和处理的问题。这是一个需要从粗浅的总体了解(即从高空俯视森林),到掌握相关知识点(了解具体树木信息),再回到全局掌握(对整个森林了然于胸)的思维过程。这一方法将贯穿于课程学习的全过程。

四、图形计算思维在教学中的实践应用

除了教给学生课程知识外,更重要的是要教给学生学习、掌握解决类似问题的思维方法,在理论课和实践课教学环节贯彻知识和思维方法并重的教学理念。并进行了理论课教学风格和实践环节设计的变革,很好地提高了教学效果,学生教学打分均在93至96之间。

在理论课教学中进行了如下的教学變革:①将森林与树木的关系思维方法落实到相应的教学环节,使学生既可建立起图形学整个学科研究内容的整体认知,也可学习掌握各个知识点具体的研究内容。注意前后知识点的联系,使学生能够将所学知识串联起来成为一个整体。②将单纯的理论讲授,变为思维过程的启发式分析引导。对于所讲授的原理、算法、过程等,先分析其设计、求解的思维过程,再结合具体实例讲授其每一步求解的过程。尤其在介绍某些算法及其优化方法的比较时,引导学生理解其改进点在哪里、优势是什么,使学生可以体会到“算法之美”,从而提高学生的学习兴趣。③在PPT近20处知识点讲解中,明确给出解决问题的图形计算思维的具体方法和过程,并将其应用到知识点问题的解决过程中。④注重理论与实践教学的有机结合,一是在原理、算法、过程的讲授之后紧接着讲授实现的函数,以及函数参数的变化如何体现在相应的原理、算法、过程中。二是所设计的实践过程体现了单元知识和整体知识。

实践教学环节包括两部分:一是体现为单元知识的编程练习,以验证理论知识为主,如画线、画圆算法、线段裁剪算法、光照模型实现等。二是为期一周的课程设计,是在理论知识和单元编程练习基础上对图形系统开发能力的提升。以GLUT库和Win32 OpenGL控制台程序框架为平台,综合使用内置几何体、显示列表、动画、场景漫游、光照模型、纹理贴图、键盘鼠标交互、菜单等技术综合完成一个集多种技术于一体的作品。掌握每种技术开发框架和图形系统开发思维过程成为本环节培养学生的主要目的。后者是学生收获很大的教学环节,不但使学生将理论与实践紧密结合起来,而且锻炼了学生图形系统设计、开发的能力。每个学生均可按照要求综合运用3种以上技术完成完整图形系统的开发,其中部分学生能够综合运用多种技术开发出主题健康、场景画面优美、功能多样的图形系统。此环节学生获得感最强。

为了对图形计算思维教学效果进行评价,设计了教学效果调查表,并对连续两个年级的学生进行了调查。调查表主要针对图形计算思维是什么、主要的方法有哪些、学生掌握的程度和学生还有哪些建议设置了调查问题。调查结果表明:学生建立了图形计算思维的概念,对主要的思维方法有所了解,能够有意识地使用计算思维去解决类似软件系统设计的问题,但对整体方法掌握有限。

五、总结

本文结合笔者多年的教学经验,提出了图形计算思维的概念,并对图形计算思维如何在计算机图形学教学体系中设计和组织进行了探索,总结了3层次图形计算思维模式及主要方法,并对其在教学实践中的运用进行了研究。实践表明,在教学过程中实施图形计算思维教学,在理论课和实践开发上均会极大地提升教学质量和效果。但系统性地总结和整理图形计算思维方法,如何更为有效地将其落实到教学工作中,如何将其扩展到其它课程的教学过程中,仍有很多研究工作需要开展。

参考文献:

[1]WING J M.Computational thinking[J].Communications of the Acm,2006(3):33-35.

[2]史文崇.全球计算思维研究与实践综述[J].计算机工程与应用,2018(4):31-35,71.

[3]周虹,傅向华,王志强.基于计算思维的计算机图形学教学改革[J].计算机教育,2013(5):55-58.

[4]李谷伟.基于计算思维的计算机图形学教学改革探讨[J].科技资讯,2014(14):152.

[5]方佳诚.中、美、英三国信息技术学科能力比较研究[J].中国教育信息化,2017(21):1-5.

[6]王勇刚.以计算思维为核心的程序设计入门类课程教学研究[J].中国教育信息化,2018(14):30-34.

[7]唐培和,秦福利,王宇等.加强计算思维教育 提升创新创业能力[J].中国高等教育,2018(8):47-48.

[8]战德臣,王浩.面向计算思维的大学计算机课程教学内容体系[J].中国大学教学,2014(7): 59-66.

(编辑:王天鹏)

猜你喜欢
计算机图形学
用面向科学思维的教学方法改进计算机图形学课程教学
论数字媒体艺术教育中专业方向细分的必要性
基于计算思维的计算机图形学教学改革与实践
计算机图形学教学改革浅论