绪论:写作既是个人情感的抒发,也是对学术真理的探索,欢迎阅读由发表云整理的11篇计算机图形学课程范文,希望它们能为您的写作提供参考和启发。
关键词:计算机图形学;计算机仿真;科学计算;程序设计基本方法;可视化
中图分类号:G642
文献标识码:B
1 “计算机图形学”的学科特性
所谓“计算机图形学”是计算机仿真(即按模型计算以生成图像)与科学计算(即通过在计算机上建立模型并模拟物理过程来进行科学调查和研究)的一种基本形式,是研究图形数据模型在计算机内部的产生、设计与构造过程,它是显示图形不可分割的前提(这相当于画家作画之前,对绘画作品的设计思想、表达方式、绘画构思、作品内容与结构等的创作与思考过程;只有当这个绘画作品设计方案成熟之后,画家才动笔绘画);而图形显示是用点、线、面、色彩、纹理等可视化的数学方式表达这种数据仿真计算结果的数学含义、或表达仿真过程中各种实体仿真模型与场景效果的物理含义的一种直观表达方式。参考文献[1,2]已向读者证明这一结论,只有这样,才能较好的理顺“计算机图形学”课程的授课关系,使读者建立用计算机生成图形的完整概念。
我们用这一指导思想主导“计算机图形学”教育20多年,并用“计算机图形学”的授课内容解决了多年来国内计算机程序设计课程没有解决好的计算可行性(可计算性的实现前提)这一教学难题,使该课程成为初学者学习计算机程序设计基本方法、认识图形数据模型构造与显示的一般规律、进行可视化应用程序开发三位一体教学目的的最佳选择,并有效地弥补了从算法语言、数据结构到软件工程之间关于应用程序编程系统训练与计算机仿真等教学环节的缺失。这种教学方法使“计算机图形学”的教学内容完全纳入了计算机科学的教育体系,同时使“计算机图形学”与“数据库”、“网络通信”这三门课程成为现代计算机应用程序的三个基本特征(数据计算、数据存储与检索、数据联网通信)的典型代表,由此转变了“计算机图形学”课程的教育观念与教育思想。在教学过程中,作者曾遇到学生们提出的多种学习问题,今整理成文,以飨读者。
2学习“计算机图形学”的原因与重要性
为什么要学“计算机图形学”,这是计算机专业选修“计算机图形学”课程的读者关心的首要问题。众所周知,计算机科学是处理信息技术(IT)的一门学科,通信科学是传输信息技术的一门学科。对于信息技术而言,常用于表达信息数据含义的4种方式分别是①数字与字符方式表述;②图形方式显示;③播放声音表述;④用机械力表达(即把电信号转换成机械运动)。这4种表达信息数据含义的方式又称信息数据的多媒体表达方式(即多媒体技术)。其中,用图形显示这种方式表达信息数据的含义符合人们观察了解事物运动规律的习惯,而且信息容量大,直观方便,同时是人们获得外部世界信息来源的主要依据;也就是说信息数据的可视化是信息技术与计算机科学发展的一种潮流与必然趋势。随着计算机工业的发展与进步,实际应用课题与现代程序设计对信息数据的可视化处理要求已经越来越高,这就要求人们深入研究并掌握图形显示的一般规律,才能更好的为计算机信息数据的可视化服务。
按现代教科书对“计算机图形学”的新定义,“计算机图形学”代表了计算机应用学科的一个重要发展方向――科学计算、计算机仿真、计算机辅助设计、信息数据的可视化、动画与游戏、虚拟现实、数字娱乐,其编程应用还涉及程序设计方法。它们代表了当今计算机技术的发展潮流与应用水平,是解决计算机专业人才出路的有效途径之一;而“计算机图形学”是该方向的公共基础课程,是目前国内计算机本科教育应当加强的内容。显然,仅仅靠学习计算机程序设计语言、数据结构、编译原理、操作系统、数据库、软件工程、形式语言与自动机理论等课程还不能完全使学生的能力直接达到开发这些应用软件的目的,因为原则上这些课程是为用户使用计算机的计算功能而系统量身打造的软件使用工具(数据结构、软件工程除外),它们的教学目的是为用户掌握并研制这些软件工具服
务、而不是为用户使用这些软件工具系统地开发应用程序而开设的课程。计算机专业主要沿这条主线向前发展:研究、设计、制造计算机硬件设备,为用户使用计算机的计算等功能提供一切便利的手段、方法与软件辅助工具,这包括总结用户使用计算机的基本类型与模式,而对于复杂且很难全面概括使用计算机的方法等、则留给一般用户自己解决,这或许是计算机专业本科课堂教学没有介绍对数据计算类型的应用软件系统开发要遵循的基本规律与发展模式的原因之一,“计算机图形学”的教学正好可以弥补这个缺陷。
由于计算机教育本身并不能直接提供认识世界、改造世界的能力,加之我国没有掌握具有国际竞争能力的计算机硬件与系统软件的核心开发技术,这使中国大量的优秀人才在计算机专业上的最后发展受到了严重制约。而“计算机图形学”的仿真方法为计算机专业人员的发展提供了这样一种新的学习方法与重新选择的机遇,它能为计算机专业人员学习其他行业的专业知识(即学习新专业的物理、数学方法)、成为其他行业的专家助手,进行新行业系统仿真与系统设计以获得新生;由于各行业都有各自的研究领域与待解决的研究问题、研究方法与理论研究模型等,当用计算机仿真的方法对这些研究课题进行辅助研究,并用图形等可视化的方法表达计算机仿真研究的中间结果与最终成果时,这将使计算机的应用走向深入。
科学研究的目的就是探索未知世界、认识世界、改造世界、造福于人类自己,而“计算机图形学”的教育正是遵循这样一条主线:通过物理实验认识待解决问题的本质,并用数学模型的方法来描述这种物理现象的变化过程,从而达到用计算机程序设计的方法来仿真光线在自然界中的传播,以及光线在照相机中传播而生成图像效果,这类物理仿真过程是科学研究方法中的一种基本形式,这种科学研究方法的教育思想(包括人文精神)是国内计算机专业本科课堂教育所欠缺的(计算机专业往往专注于数理逻辑思想的基础训练)――即“计算机图形学”的教育,不仅拓展了计算机专业人才的知识领域,也为其毕业增加了就业渠道,同时能培养计算机专业人员的基本科学研究素养,这正是目前国内计算机教育改革所追求的目标之一。
需要说明,全日制普通本科教育是普适教育,它需要建立各专业自己的知识框架,学习基本的概念,了解基本的范畴,明确其发展方向,计算机专业也是如此。本科教育重在基础,提高本科教育质量与水平并非拔高与创新,而是要做到全面、均衡的发展,除要求学生掌握本学科专业已成熟的系统理论知识外,还需培养学生用学科的基本思想与方法独立自主分析问题、解决问题的能力,这种理论与实践相结合的教育方法,能确保学生今后得到稳步的发展。“计算机图形学”就是培养学生利用计算机、数学、物理等学科的系统知识解决实际应用问题能力的一种有效方法,这样培养的学生才能适应社会竞争与选择的需求;只有在研究生阶段,通过再次系统学习、阅读原著与相关论文并参与项目开发等活动,达到全面提升对学科的认识能力,并向某一个研究方向发展、去探索未知世界的变化规律、解决前人没有解决好的难题、逐步走入学术研究的殿堂(即创新教育);当然人们也能在日后的工作中慢慢积累这种工作能力。
文献[2,3]系统论述了“计算机图形学”课程在计算机科学教育中的作用与地位。目前很难找出一门具有像“计算机图形学”类似重要性与多样性的其它计算机本科专业基础课程,能使读者正确掌握数据计算类型的计算机应用程序设计的基本方法,并使计算机这一工具直接服务于社会,这是我们应该重视“计算机图形学”教育的根本原因。
3学习“计算机图形学”的方法
由于“计算机图形学”属于计算机应用软件的范畴,因此,数据计算类型的应用软件的设计方法就是学习“计算机图形学”应该遵循的原则。就“计算机图形学”课程的学习而言,它要求:
(1) 全面掌握程序设计语言的特性与数据结构的基本内容,是实现“计算机图形学”编程的基础。
(2) 掌握建立解决实际应用问题的数学模型与软件系统的概念,是计算机程序设计的两个关键点。软件系统是一个能自动运行的综合执行程序,它能从输入、存储、运算处理、输出等方面全面处理用户在某个领域中提出的诸多数学模型并完成其模型描述数据的加工任务,使用户很容易明确这种软件的组成、功能与使用范围。一般利用二维图形的简单性,可以较完整的介绍二维图形软件系统这一概念。软件系统的概念是目前程序设计语言与数据结构课程中所欠缺的关键内容。
(3) 正确的认识“计算机图形学”与计算机仿真的相互关系。“计算机图形学”的重点与难点在三维图形的数学模型研制(包括照相机模型,灯光模型,颜色模型,照明模型,物体的几何模型,物体表面的材质与纹理模型等)与模型描述数据的构造上;由于计算机图形学追求像照相机拍照一样的三维真实感图形显示效果,这决定了要在计算机中使用物理学仿真的方法(仿真光线在自然界中的传播所产生的显示效果或把这种传播效果映射至物体的表面上)才能达到这一目的,这自然需要读者对相应的物理知识有个基本的了解才能进行。
(4) 需要了解一些计算机仿真的基础知识,以确保“计算机图形学”的物理仿真教学过程不会出现偏差。
计算机仿真的主要过程分系统、模型、编程实现(仿真算法)、评估四个步骤。这里①系统是指相互关联又相互作用着的研究对象的有机组合,它决定了被研究考察对象的组成与边界范围。②计算机仿真一般可以用数学模型(简称模型)的方法代替实物研究对象,事实上模型也可以是对现实世界的事务、现象、过程或系统的简化描述,但它反映了实际问题最本质的特征和量的关系。目前“计算机图形学”所述的模型多限于对所研究对象的物理性质、运动变化规律等特性的一种数学描述,它使人们能解释那些难以直接观察到的事物的内部构造、事物的变化以及事物之间的关系――即模型描述了现实世界中有显著影响的因素和相互关系。但这种描述有一定的使用条件与限制范围,研究的目的不同,对该研究对象的数学模型的描述方法以及模型的种类会不一样。③仿真(编程实现)就是在模型上做实验,从理论上测试构建的理想系统的动态行为特性,以评估系统的效能。④系统的用途不一样,评估的方法也不同,人们往往用事先约定的一组指标来评估仿真系统的结果;当所得仿真结果没有达到预期的理想效果时,人们往往不断改进仿真模型与仿真算法。例如计算机图形系统,用途可以是显示三维图形,查看它的真实感逼真显示效果就是人们主要关心的问题;模型的运动与操作(如游戏),看它的操作性与故事情节等如何表达用户的情感与智能(简称好玩)就是人们关心的主要问题;机械设备的综合运动与仿真,考察所设计的复杂设备的工作性能就是人们关心的主要问题;电气系统的系统仿真,能考察系统工作参数如何设计以满足用户的不同需求;作战系统的仿真模拟,能考察作战人员的训练水平、武器性能、指挥作战方式对作战进程的不同影响与作战效能,等等。
(5) 努力把图形学所介绍的各种模型与算法(算法是对模型描述数据的加工与变换处理的步骤与方法,“计算机图形学”中的主要算法有各种线段图形的生成与实面积多边形的填充算法、着色算法、消隐算法、纹理映射算法、阴影算法,光线跟踪算法与辐射度算法)都编写成程序代码,这使读者能直接体验自己的学习效果,也是其它课程不容易做到的。编程时要考虑算法的复杂度,特别是按照软件系统的方法把编写的程序代码组成一个系统整体,这是形成成熟商品软件很重要的前提。显然,此时软件系统中的各种数学模型反映了仿真系统中研究对象之间的相互关系。
(6) 掌握“计算机图形学”打造的绘图工具,是可视化应用软件编程的重要基础。用“计算机图形学”知识研制的工具常用的有OpenGL与Direct3D等三维图形标准,虚拟现实建模语言VRML。而三维动画与CAD等软件可以看成是“计算机图形学”为影视制作、游戏建模与计算机辅助设计部门打造的专业计算工具。仅把图形标准与计算机绘图等应用当作“计算机图形学”很不完备,因为它不能在课堂教学中向读者正确、完整、系统地展示计算机图形学学科发展的基本规律,并人为地割裂了计算机图形数据模型的构造与显示这两个过程。
(7) 学会看中英文专业杂志等参考资料,这些参考资料记录了学科的发展历程与学科当前的研究热点(一本教科书不可能全部包含这些内容),且是一种更重要、复杂、深入的学习研究方法,也是目前国内本科教育的弱项(因为国际上最新的研究成果多用英文发表)。只有这样,才能跟踪计算机图形学的最新发展并站在学科发展的前沿、才能开阔人们的视野并有所鉴别,便于读者日后针对用户的多种需求展开开创性创新或针对已有成果的不足、提出修补与改进等渐进性创新等学术研究活动。
(8) 勇于参与课程实践与项目开发,是巩固、检验所学知识、提高实际动手能力的好方法。实际软件开发工作往往是多种知识的综合应用,它需要对实际处理事务有一个比较透彻的了解(用户需求报告)、并建立这些待解决问题的数学模型与系统流程后才能有效进行(按照软件工程的方法组织实施)。
只有把自己开发的软件做成有效商品、服务于社会,才能使所学的知识转变成生产力,才能使自己得到升华;同时也应注意把自己的心得与研究成果总结发表,与人共享;还应参加学术活动,注意留意不同学术流派之间的观点、思想、方法与学术动态,取长补短,形成自己的风格,广结人缘,相互交流,为学科建设添砖加瓦。
(9) 一本计算机图形学教科书的容量使其只能介绍计算机图形学发展历程中产生的最基本、最经典的模型与算法,这些内容是人们耳熟能详的物理原理与相对简单的数学知识在计算机中的综合应用,太复杂的计算关系因会影响图形的显示速度而一般不采用;目前计算机图形学教科书的理论体系已成熟且“计算机图形学”的教学内容已经构成了一个大系统,这使“计算机图形学”的教学过程变得简单、容易。
4目前国内“计算机图形学”教育未受到重视的原因分析
既然如此,为什么目前人们感觉“计算机图形学”教育的受重视的程度不如数据库与网络通信等计算机应用软件呢?笔者认为其原因之一在于:这是因为“计算机图形学”造就的工具即图形标准的特殊应用环境要求限制了它在很大一部分应用程序中的具体应用;三维图形标准目前仅仅在游戏领域获得了商业上的成功,一些应用软件不调用图形标准也能自己绘图;国内的计算机应用程序可视化的开发要求暂时还较低;关键是作为学科领头羊的美国人目前还没有把“计算机图形学”课程作为计算机本科专业的核心课程,这是因为他们对“计算机图形学”课程的本质与其在计算机学科中的作用与地位认识不到位所致,美国人图形学这种教育现状(目前多以图形标准的原理讲授为主)和局限性与美国人在3D游戏、计算机动画、计算机辅助设计等应用软件的开发上执世界牛耳之地位不相称。
当然,早期计算机图形学教科书编写内容、体系的不够成熟,也影响了人们对“计算机图形学”课程的认识与学习的积极性。例如仅停留在数学公式与算法的层面上介绍二维、三维图形的生成而不注重其建模思想与方法的介绍,且人为的把物体几何模型的构建与其图形显示分解成“计算机辅助几何设计”与“计算机图形学”这两门课程,这直接导致图形学课程教学内容缺少被处理的图形显示对象,加之计算机课程与图形学的教育又没有软件系统的概念,这样安排虽然能满足图形标准等商业软件的发展需求,但却很难让初学者全面掌握“计算机图形学”学科系统性的概念、思想和方法与学科发展的基本规律――用数学模型的方法指导编程实践,在计算复杂性可接受的条件下,针对已有成果中存在的不足,不断用新的数学模型与仿真算法等方法对其进行改进,使图形学的数学仿真过程不断的逼近现实物体模型(包括刚体、软体、流体、气体)的构造、运动、变形、切割和拼接与反光效果的显示这一真实的物理变化过程。即初学者没有用计算机生成图形的完整概念,这也是以往人们认为计算机图形学课程难教、难学的主要原因。
由于“计算机图形学”的绘图原理不像数据库软件那样,数据库的功能可以被所有的应用程序所调用;也不像通信软件那样,所有要联网的计算机都离不开通信技术与网络技术,而计算机显卡工业、3D游戏、计算机动画、计算机辅助设计等产业的市场份额小于数据库与计算机通信等产业的市场份额,即应用软件的商业价值决定了它们在人们工作与学习中的地位。
参考文献:
[1] 魏海涛. 计算机图形学(第2版)[M]. 北京:电子工业出版社,2007.
关键词:双语教学;专业英语阅读;计算机图形学
中图分类号:G642
文献标识码:B
在当今社会全球化发展的时代背景下,计算机和英语已经成为学生必须掌握的工具。对于计算机专业的学生来讲,计算机的很多技术文献(指令)都是英文的,能熟练阅读英文资料、文献和书籍是顺利完成计算机专业课程学习的一个必要条件。
1计算机图形学课程实施双语教学的目标
计算机图形学(Computer Graphics)是计算机科学学科发展最活跃的分支之一,在国民发展的各个领域中发挥着重要的作用,2002年该课程被批准成为北京工业大学十门首批设立的双语教学课程之一。
双语教学是指使用汉语和英语这两种语言进行教学,而不是纯英语教学,它应该是两种语言的合理应用,包括讲授内容的针对性、学生的理解性、专业知识的主导性,主要目的不是学习英语,而是为了使学生通过外语这一语言工具探索世界,并适应社会多样化的需求。
在教育部举办的一次有关双语教学的研讨会上有专家指出,高校开展双语教学可以得到三个层面的收获:一是外文专业词汇和外文水平的提高,二是学科知识和能力的掌握,三是吸收国外先进的理念。
要在计算机图形学课程中有效实施双语教学并取得良好效果,必须首先清楚双语教学的目标,并在教材选择、教学方式、课堂母语使用度、双语教师的选择及考核方法等具体实施过程中贯彻执行。
传统的英语教学往往以生活语言及文学语言为主要教学内容,强调学生的生活交际能力。很多学生虽然通过了四、六级英语考试,但在阅读很普通的英文专业资料时仍然困难重重,毕业论文的摘要破绽百出。因此,专业课双语教学应致力于为学生创造使用外语进行学术思维和交流的氛围,作为传统英语教学的有效补充,提升学生应用英语进行工作交流的能力。
具体而言,课程开展过程中,学生逐步能听懂英文授课、英文学术报告,进而参与和主持英文学术讨论和辩论;准确、全面地理解教材内容,流畅地阅读专业文献,用英文撰写作业或与专业相关的描述性、说明性、叙述性和论述性文章。
学生通过语言关后,还要通过英语这一工具获得新的知识并将知识化为实际工作能力。计算机专业的双语教学要致力于在专业教育上保证教学内容的先进性,教学内容与国际接轨,激发学生双语学习的积极性,同时要开拓学生专业知识的深度和广度,这就对双语教学的专业课任课教师提出了更高的要求。
2计算机图形学双语教学的模式
通过这些年在双语教学中的实践探索,作者摸索出了一些有效的教学方法,并对其中一些必须面对的问题进行了深入的思考。
(1) 教材的选择。原版教材的使用可以帮助教师学习和借鉴国外现代的教学理念、先进的教学方法和手段,有选择地吸收新的教育思想和与国际接轨的人才培养新体系。尤其该学科专业领域的资深学者所编写的教材,往往具有独特的逻辑结构和思维方式,使学生能够清晰准确地理解所学课程的内容。
从目前国内进行的双语教学实践来看,学生更欢迎原版教材,普遍认为原版教材内容更加实用,更能采用符合国际惯例的方式处理专业事务和信息。但是,原版教材在某些方面脱离我国国情,不适合高校原有教学体系的情况,影响了学生专业知识的系统性和完整性。这就需要任课老师认真选择适合学生使用的教材。
(2) 大纲的制定和学时的调整。由于使用两种语言授课,且学生接受能力有限,双语教学过程中为了让学生理解透彻所授内容,难免出现课程进度减缓的情形。因此,教学大纲可以允许与纯母语教学有一定出入,任课教师可根据经验确定向学生传授的知识系统结构。对国外教材没有必要照搬,对基础理论和重点内容一定要讲清、讲透,就是多占用一些课时也在所不惜。
(3) 讲授的方式。目前学生间英语水平相差较大,在讲课时要由浅入深,一开始可以适当使用较多的中文,循序渐进地增加英文内容。作者在每次上课时总要抽出十分钟的时间用英文回顾一下上次课所讲的主要内容,让学生对所学知识有一个整体回顾,又能在熟悉的语言环境中锻炼英文的理解能力。由于计算机图形学是基础课程,以学习基础知识为主,一些专业术语采用渐进式加入,简单的内容用全英文讲解,在算法、原理等核心内容部分用中文讲解,最后用英文对所讲内容进行总结。这样既营造出一个英文学习的环境,又用中文让学生很好地理解本章节所学的重要知识点。随着学生英文学习能力的增加,在课件中加大英文的内容,直到全部使用英文课件。这样学生在学习过程中不会因为外语水平而失去对这门功课的学习兴趣。
当然这也需要任课教师具备很好的技巧,在适当的语境中完成英文的转化,让学生学会专业知识的同时又提高了专业英语水平。在一些较难的知识点中,作者会通过肢体语言、板书等方式来帮助学生理解概念,避免由于语言滞后造成学生的思维障碍。教师还需循序渐进地增加专业词汇,在课堂上有针对性地把原版教材中的基础理论、关键概念和词汇提取出来进行讲解。通过老师细致的观察及时捕捉学生的反馈,若发现学生没有很好地反馈,就要用中文及时讲解一下,使学生充分理解这一知识点,再用英文来讲授。
3双语教学的思考
(1) 教师队伍。尽管国内多数高校在试行双语教学的过程中不断强调要重视双语教师师资的培养,但是即使是有留学经历的教师,完全用英语授课也有困难。教师水平成为顺利推广双语教学的瓶颈之一,这将是一个长期努力探索的过程。
值得注意的是,双语教师的培养不同于一般的专业授课教师的培养,也不应等同于英语专业的教师培养,必须两者兼顾。专业课英语大多属于科技英语,准确无误地使用专业英语进行口头和书面表达应当是双语教师在自我提升过程中必须做到的。
另外,双语教师本身应是热爱双语教学的,能够以最大的热情投入到双语教学中去。双语教学具有很大的难度,不是业务水平高或是英文底子好就可以胜任的。因为,双语课程除了要讲好一门课,还要运用好一门外语,更重要的是,必须将两者都很好的兼顾。熟练运用两种语言授课,合理分配两种语言整合知识点,必须成为双语教师对自身的要求。如果双语教师的热情不够,往往会造成虎头蛇尾的情况。
中图分类号:G642 文献标识码:A
“计算机图形学”是研究如何利用计算机显示、生成和处理图形的原理、方法、技术的一门学科,是计算机科学中发展最活跃、应用最广泛的分支之一。在计算机科学与技术专业新一轮教学改革中,确定了计算机科学方向的16门主干核心课程,计算机图形学就是其中之一。
1 “计算机图形学”实验课程存在的问题及改革的方向
国内“计算机图形学”的教学过分强调图形学的数学基础,使得“计算机图形学”成为计算机及其相关专业学生很难掌握的一门课程。这种强调数学基础的教学方式适合数学基础优秀的学生,对于数学基础一般的学生难以适用,往往造成很多学生有厌学、为难的情绪。如何让学生更好地掌握图形学的相关理论知识呢?注意到图形学的输出结果和相关应用是最吸引学生的,于是,通过“计算机图形学”实验的演示、验证和开发,来巩固学生对计算机图形学知识的理解,就显得非常有必要。
计算机软硬件技术的发展,致使计算机图形学实验开展的范围和形式也发生了一些改变。十年前,计算机图形学的实验往往在Turbo C下,用graphics.h下定义的图形函数进行程序的编写。在这个环境下,只能进行一些最基本的二维图形生成、填充、变换的实验,程序复杂,不能进行三维图形生成、纹理贴图、光照、视点变换等等这些实验,极大的限制了计算机图形学实验的开展。如今,计算机技术有了飞跃式的发展,改革计算机图形学实验势在必行。
我校的计算机科学与技术专业从2002年开始,在计算机图形学实验中引入了OpenGL,所有实验都要求在安装了GLUT的Visual C++ 6.0的环境下进行。
八年的教学表明,利用OpenGL开展图形学实验,对学生理解相关的图形学知识,提升学生学习的兴趣,提高学生在图形图像方面的程序开发能力非常有好处。结合多年教学的经验,针对计算机图形学实验中引入OpenGL后一些需要注意的问题,特撰写本文,希望对从事计算机图形学教学的老师有一定的借鉴作用。
2我校“计算机图形学”实验内容的设置
我校计算机科学技术专业的“计算机图形学”课程目前所使用的教材为Donald Hearn和M.Pauline Baker编著的《Computer Graphics with OpenGL,Third Edition》,该教材取材丰富,以开放图形库OpenGL为基础,介绍计算图形学的基础理论、基本概念和基本算法。教材提供了大量的示例程序,学生可将教材示例程序在PC上运行,从而获得对教学内容的直观理解。该教材的采用,极大的方便了用OpenGL展开实验教学。该课程是专业必修课和双语课程,4个学分,讲授54学时,实验36学时。
2.1实验平台的选择
OpenGL是一个发展成熟的、性能卓越的三维图形标准,它是20世纪后20年在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。目前,包括Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL作为三维图形标准,许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Inventor等等。OpenGL具有七大功能:建模、变换、颜色模式设置、光照和材质设置、纹理映射、位图显示和图象增强、双缓存动画。OpenGL 的基本函数都做到了硬件无关,甚至是平台无关,开发的软件可以在各种硬件和操作系统上应用。相比较而言,微软的Direct3D虽然也是十分优秀的图形应用接口,但它只用于Windows系统,具有一定的局限性。因此,选用OpenGL作为计算机图形学实验的平台,能非常好的演示和验证各种图形学的算法,能紧贴学科前沿,给学生今后从事图形学相关软件的开发打下良好的基础。此外,OpenGL在3D方面的强大功能,也能极大的激发学生学习的兴趣。
由于OpenGL核心函数库都是平台无关的,所以OpenGL的核心函数库不包含任何输入或窗口函数。原因很简单,因为这两者都严重依赖于特定的平台。但是,无论图形程序运行在何种平台上(Windows、Linux或Macintosh),都不可避免地要和操作系统或本地窗口系统进行交互。面对这种情况,在计算机图形学实验中,我们采取一种折中的策略――借助一个简单的工具集,即OpenGL实用工具集(OpenGL Utility Toolkit,GLUT)。GLUT在标准编程环境中都有相应的实现,其API包含大多数窗口系统所共有的标准操作,并允许我们在应用程序中使用键盘和鼠标。GLUT的使用能让学生避开复杂的Windows编程中的窗口和输入的交互函数,把更多的精力放到图形学的内容上。
2.2图形学实验的开展项目
目前,课程开展的实验内容如表1所示,其中实验类型分为三类:验证性、设计性和综合性。验证性实验是让学生对理论课程学习的图形学基本算法和OpenGL的基本语法进行编程验证;综合性实验是让学生在经过一个阶段的学习后,具有了一定的基本知识和基本技能的基础上,综合运用图形学的多种知识,对学生实验技能和方法进行综合训练的一种复合型实验;设计性实验是一种探索性的实验,不但要求学生综合多种知识来设计实验方案,而且要求学生能充分运用已学到的知识,去发现问题、解决问题,实验中,学生自己选题、自己设计,在教师的指导下进行,以最大限度发挥学生学习的主动性。
表1计算机图形学实验开展项目
实验名称 实验内容 实验类型
实验1
OpenGL编程初步 (1)OpenGL的安装;
(2)OpenGL GLUT 框架的使用;
(3)OpenGL下图形的绘制原理;
(4)OpenGL下基本图元的绘制。 验证性
实验2
二维基本图元的生成 (1)DDA、Bresenham直线生成算法的实现;
(2)中点圆算法的实现;
(3)中点椭圆算法的实现。 验证性
实验3
二维图元的填充 (1)熟悉OpenGL中对颜色的设置;
(2)边界填充算法的理解与实现;
(3)泛滥填充算法的理解与实现;
(4)扫描线填充算法的理解与实现。 验证性
实验4
OpenGL下图形的交互控制 (1)了解glut中的各种回调函数;
(2)用鼠标对图形进行交互控制;
(3)用键盘对图形进行交互控制。 验证性
实验5
OpenGL下的二维图形变换 (1)直接设置投影矩阵,对图形进行平移、旋转、缩放,理解变换的原理;
(2)掌握OpenGL下平移、旋转、缩放变换的方法;
(3)掌握以上方法的组合变换。 验证性
计算机图形学是研究如何利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科,在计算机辅助设计制造、科学计算可视化、地理信息系统、虚拟农业等领域有着非常广泛的应用,是计算机、地理信息系统、电子工程、机械设计等本科专业一门重要的专业基础课,也是许多后续课程(图像处理、模式识别、多媒体技术、虚拟现实、计算机视觉等)的基础课程,在教学计划中占有重要地位和作用。
培养学生的创新和实践能力是研究型大学教育改革目标的核心。通过该课程的学习,不仅使学生能系统地获得计算机图形学的基本知识、必要的基础理论和常用的图形生成算法,同时能提高学生的综合素质,使学生具备一定的研究和创新能力。另外,随着近几年信息技术在农业领域的广泛应用,在农业遥感、地理信息系统、农作物模拟和仿真中涉及大量的计算机图形算法和技术。因此在这门课的讲授内容上增加了一些和遥感、地理信息系统、虚拟农业技术相关的图形基础和算法,并结合教师的研究成果和科研工作的进展,及时将其增加到教学内容中,使这门课程逐渐形成有农业特色的专业基础课。
课程改革决不仅仅是教学内容的更新,更为重要的是学习方式、思维方式转换以及新教育技术的应用。这需要我们从“知识型教学”转换成为“研究型教学”,即以知识为载体,传授本学科的方法论,注重学科发展,提升教学中学生思维能力、交流沟通能力等持久性综合能力的培养。
1研究型教学的实施方案
研究型教学是以提高学生的综合素质和创新研究能力为目标的。为了达到这个目标,我们从跟踪学科前沿能力、发现问题能力、理论联系实际能力、文献阅读能力等以下7个方面来综合培养学生的能力[1],如图1所示。
围绕这几方面的能力,具体做法是强化基础、突出实践、重在素质、面向创新。我们主要在以下几个方面展开了创新性的教学改革研究。
1.1像计算机工程师那样去思考和解决问题
本课程教学理念为:“以应用为背景、以理论为主线、以算法为核心、以合理先进的教学方法为手段、以提高学习兴趣和创新能力的培养为目标”。
学完这门课程,学生应掌握两个技能并达到一个目标,两个技能是:1)学生能编写小规模的图形程序(这里的小并不是贬义,只是代表你有能力做事的规模而已);2)掌握的第二个技能是有能力来理解别人编写的程序。因此要能写、能读程序。
最终的目的是开启学生从其他领域中提炼概述,并研究出如何将其转入计算机图形领域的能力。通过图形学算法的提出背景以及发现、发展和完善过程的讲解,对学生的思维进行训练,提高学生面向问题的求解能力,培养学生的科研素质。
在教材的选取上,不局限于一本教材[2-4],而是选用国内较有影响的几本教材作为参考书。注重基本原理和概念的讲解。因为图形技术的发展日新月异,新的技术和算法层出不穷,学生学习的技术几年后可能会过时,但基本的原理和概念是长期不变的。
1.2突出讲授图形算法中蕴含的思想
计算机图形学课程的主要内容就是讲授图形生成、显示、处理的算法。那么,一个普通、常规的图形算法是如何通过改进和完善变成一个优秀算法的?
算法分析是一种理论研究,是关于计算机程序性能和资源利用的研究,重点是性能。我们是在学习如何计算机程序运行的更快。算法还涉及到其它资源,但我们的关注点主要还是在性能上。
例如,直线生成算法是计算机图形学较底层的一个算法。该算法的性能严重决定着图形生成的效率。因为当完成一个动画算法或真实感图形算法时,直线算法可能被几十万、上百万次地反复调用,因此这种算法要求效率要高。在加、减、乘除、开方、三角函数等运算中,加法是最快的运算,其中整数加法又快于浮点加法。因此像画直线这种底层算法,能够减少一个乘法都是一个了不起的事情。
从讲授通过直线方程的画线算法到数值微分(DDA)算法、再到中点画线算法,最后到Bresenham算法。一步步给学生展示了一个开始需要一个乘法和一个加法的普通直线算法,是如何通过改进和完善其性能,把乘法演变一个浮点运算加法,又把浮点加法变成整数加法的一个精彩过程。计算机科学问题的核心就是算法。
学术大师们在提出、改进和完善算法的过程中所体现出来的一些闪光的思想正是我们所要深刻认识和领会的。什么是创新?这些闪光的思想就是真正的创新!
在讲授其他一些图形算法如多边形的扫描转换和区域填充、裁剪算法、消隐算法等时,并不强调学生掌握和实现算法的具体细节,更重要的是阐述这些算法所蕴涵的一些创新思想,像增量思想、编码思想、图形连贯性思想、分而治之思想等。这些思想不仅用在图形学算法中,而且还用在了数据挖掘、人工智能等领域。
1.3算法讲解与程序演示相结合
计算机图形学课程具有很强的实践性,上机编程实验是其重要环节,基本目标是将学生的计算机操作能力、分析能力、设计能力与编程实践结合起来,引导学生由浅入深地掌握计算机图形学基本理论和算法。
为了让枯燥的算法讲解变得生动起来,作者在教学手段上充分发挥图形学自身特点,将许多算法的原理用Flash做成动画片嵌入到教学幻灯片中,采用生动形象的动画算法讲解,使学生对抽象的图形学算法不仅有一个直观的了解,而且还调节了课堂气氛。许多同学在看过演示之后,不仅对算法有了更为深入的了解,还纷纷跃跃欲试,想要做出更好的程序来,这极大地激发了学生自己动手编程实践的欲望。这些课件对于提高学习兴趣、增强算法的理解性具有很大的作用。
我们安排了8~10个上机编程实验,内容包括画直线圆弧算法、区域填充算法、编码裁剪和梁友栋裁剪算法、二维、三维变换算法、透视变换算法、Bezier曲线算法、B样条算法和简单光照模型的实现。学生通过这些算法的编程实现并改进一些重要算法, 既可以增强对算法本身的理解,也可感受编程的乐趣。
2教学与科研相结合
2.1教师科研与教学相结合
科研是提高课程教学质量的源动力。将科研成果引入教学,一方面丰富了教学内容,提高了学生的学习兴趣;另一方面,也培养了学生的科研创新能力。
我们主持和参与的国家科技基础条件平台中国数字科技馆项目“虚拟农场体验区”、科技支撑项目 “面向农民科技培训的人机交互式三维可视化平台研究”、虚拟农场等课题中都使用到了图形算法和技术,通过课题引导学生将图形学中的各类知识集成到引擎中,面向二次开发和快速开发,大大提高了学生对图形学技术的理解和实践动手能力。
2.2教学与专业文献阅读相结合
一门学科的内容终归是不可能全部在课堂上讲授完的,以“授人以渔”为己任的教师也没有必要这样做。在网络时代没有绝对的老师,所有老师必须成为学生。同样,在网络时代也没有绝对的学生,所有的学生必须学会做自己的老师。
为了培养学生研究创新的能力,除了把教师自己的科研成果介绍给学生,更重要的是培养学生跟踪学科前沿的文献检索、文献阅读与文献综述能力。
基于期刊的影响力和SCI影响因子等标准,我们选择国内外一流期刊20余种,国内期刊如《计算机辅助设计与图形学学报》、《地理学报》、《计算机图形图像学报》等;国外期刊如《Computer Graphics》、《IEEE Computer Graphics and Application》、《International Journal of Geographical Information Science》等。相对来说,这些权威的期刊发表的文章基本上都是高质量的文章。除了从这些期刊里选出一些和计算机图形学算法有关的高质量文献以外,还搜集一些有关计算机图形经典算法的经典文献,主要是一些具有里程碑式的文献!这些经典的文献犹如文学界的世界名著,长久不衰,他们的贡献直到今天都无可忽略!最新文献犹如现代流行小说,要与时俱进,了解计算机图形学领域的一些最新进展。
要求每个学生在这门课程的学习期间,能够阅读至少2~3篇中文文献和1~2篇英文文献(既阅读世界名著,也要浏览现代流行小说)。这样既提高了学生的英语阅读能力,了解该领域的热点和前沿进展,又使得学生能领会大师们的研究思路、逻辑推论和技术方法。
通过两届学生的实验,教学取得了良好的效果。尽管他们只是大二的学生,但已经有几位学生对教科书上的一些经典算法在性能上做了进一步的改进,提高了算法的效率,撰写的几篇学术论文被国内外学术会议录用。
3结语
在研究型课程教学中,教师的作用发生了变化:教师不再是“讲台上的圣人”,而更多地起“场外教练”的作用[5];他们不仅仅传授知识,而是遵循认知规律,以学生为中心,设计教学过程、提供教学资源、提供学习建议,对整个学习过程进行控制,包括在关键环节上对学生进行启发、激励、引导和指导。教师的战略目标都是为了帮助学生们能像一个计算机科学家一样去思考。换句话说,希望赋予学生一种能力,让学生可以用计算机做他想做的任何事。
参考文献:
[1] 苏小红,李东,唐好选. 面向能力培养的计算机图形学课程教学方法[J]. 计算机教育,2010(3):47-51.
[2] 孙家广,胡事民. 计算机图形学基础教程[M]. 北京:清华大学出版社,2009.
[3] 陈传波,陆枫. 计算机图形学基础[M]. 北京:电子工业出版社,2008.
[4] 孙正兴. 计算机图形学教程[M]. 北京:机械工业出版社,2006.
[5] 高虹. 从美国理工科本科教学改革看研究型教学[J]. 物理与工程,2004,14(2):12-14.
Research Teaching of Computer Graphics for Undergraduate Students in Agricultural Universities
ZHAO Ming
计算机图形学是近年来发展最快的计算机学科方向之一,是计算机应用专业的必修课程。但在实际的教学过程中,按照传统的教学方式,我们发现计算机图形学涉及到大量的数学知识,包括各种生成算法、处理技术和显示过程,涉及到数学模型和复杂的公式推导,在理解上要求具有比较强的空间想象力,学生理解上比较困难。本文结合二类本科院校培养具有一定创新能力的应用型人才的要求,根据十多年的教学实践,提出了图形系统案例教学方法,将计算机图形学知识和实现图形系统结合起来,从现有系统中找灵感,从计算机图形学课程中学理论,搭建自己的图形系统,使学生真正理解计算机图形学的本质,达到理论与实践双丰收,取得了比较明显的教学效果。
一、课程特点和教学模式
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.选择合适的教材。应根据本专业学科的特点及专业学生水平选择原版教材,合适的、好的教材可以帮助教师学习国外现代的教学理念和借鉴国外先进的教学方法和手段,因此要综合考虑几个方面的因素,如教材内容的新颖,教材是否反映了新的教育思想和与国际接轨的人才培养新体系,是否为该学科专业领域的资深学者所编写,以便使学生及时了解到该门课程及专业领域的新动态。选择原版教材要切合实际,生词量适中,否则会影响阅读效率,甚至于理解率。鉴于我院计算机应用专业的学生实际情况,我们选用了Zhigang Xiang编著的《Computer Graphics with OpenGL》,该书以OpenGL为开发背景,计算机图形学专业词汇丰富,学生从中不但可以学习英文词汇,还可以学到以OpenGL为开发背景的图形知识。
2.制定灵活的大纲和可调的学时。由于使用两种语言授课,且学生接受能力参差不齐,双语教学过程中最好采用交互式授课,教师多与学生交流,以便让学生理解透彻所授内容,这样就难免出现课程进度减缓的情形,教学计划无法准确执行的情况。因此,教学大纲制订得弹性些,教学计划的执行可以灵活些,授课教师可根据课堂教学的实际情况确定向学生讲的内容,有些内容可以多讲些,有些内容可以少讲些,有些内容可以不讲,没有必要照搬,对于学生没有搞清楚的,可以重复讲,但对基础理论和重点内容一定要讲得清清楚楚、透透彻彻,多花费一些课时也是应该的。
3.授课的方式。在专业方向上,考虑到学生间英语水平参差不齐,在讲课时应注意由浅入深,先适当使用较多的中文,之后慢慢地增加英文内容。在教学方面可以采用多种方式:板书、多媒体、专题讨论、大作业、论文等方式。由于计算机图形学是专业选修课程,以学习图形基础知识和图形算法为主,因此教学过程中可以采用多种方法或多种方式,如一些比较专业的术语:简单的内容可以全用英文讲解,复杂的内容可以英文、中文混杂在一起讲解;在算法、原理等核心内容部分可以先用中文讲解,然后用英文对所讲内容进行总结,这样既营造出一个英文的学习环境,又让学生很好地理解本章节的重点。随着学习的深入,可以在课件中加大英文的比率,直到全部使用英文。这样的教学方法不会因为学生外语水平的原因而失去对这门功课的学习兴趣。这就需要任课教师具备很好的授课技巧,在适当的语境中完成专业知识的授业,让学生提高了专业英语水平的同时又学会专业知识。而在一些较难的知识点中,教师需要通过适当的交互方式来帮助学生理解概念,如用中文对话图片、动画等方式,避免由于语言滞后造成学生的思维混乱甚至错误。此外、教师还要不断地补充专业词汇,在课堂上把教材中的词汇、关键概念、基础理论和原理等有针对性地提取出来进行讲解。教师要仔细观察、经常与学生交流、及时捕捉学生的反馈,若发现学生没有很好地掌握所教知识要点,就要用中文及时讲解一下,使学生充分理解,然后再用英文讲一遍。
4.教学方法的改革。“以多媒体教学为主、板书为辅、现场程序演示、网络教学作为常规教学的补充”,多种教学手段,优势互补。针对计算机图形学课程“内容多、学时少”的特点,提出并采用了“金字塔式”教学法;针对计算机图形学课程重在培养学生思维能力的特点,采用了“发现式”教学法;针对计算机图形学课程实践性、应用性强的特点,提出并采用了“四结合式”教学法:教学与科研相结合,算法讲解与程序演示相结合,理论学习与编程实践和图形软件应用相结合,教师课堂知识讲授与学生课外文献阅读相结合。
5.改革考试方式。有效的考核方式对学生学习计算机图形学课程是一个良好的鞭策,高年级学生具备一定的计算机学科知识,对他们的学习应实行多元化的评价方式。以培养团队合作精神、创新精神和实践能力,应考虑对学生学习的考核方式,应从多个部分去进行。针对本课程实践性强、应用性强的特点,为了考查学生对知识综合运用和理论联系实际的能力,采取了阶段考核成绩累计方式,分别从算法设计与编程实践能力、软件应用与创新能力、文献阅读与综述能力和卷面笔试,四个方面来评定学生成绩。
6.改革传统的答疑方式。借助于面向教师的课程网站(http://class.jmu.省略/C394/Asp/Root/Index.asp)实现全部教学资源上网,实现教师的教学资源的共享,对课程进行统一管理。利用面向学生的在线教学网站(http://class.jmu.省略/C394/Asp/Root/Index.asp)实现教师的个性化教学,同时为实现资源共享、师生自由讨论提供了一个平台。在保留传统的教师与学生面对面答疑方式的基础上,又增加了网络在线答疑方式,拓展“教”与“学”的空间和时间。
三、双语教学的思考
1.师资队伍。双语教师的师资应兼顾英语和专业水平,双语教学具有很大的难度,双语课程不但要讲好专业课,还要运用好外语,最重要的是,必须将两者都很好的兼顾,因此双语课程的任课教师不是专业水平高或是英文底子好就可以胜任的。双语教师本身应热爱双语教学,能够以最大的热情投入到双语教学中去。同时如何使学生能够接受,如何熟练运用两种语言授课,合理分配两种语言整合知识点,必须成为双语教师对自身的要求。如果双语教师的热情不够,备课不充分,往往会造成投入大收效微的情况。第二、双语教师有一定的教学经验,并在在教学准备环节下一定的功夫,必须有能力把握课堂的进度,有能力根据课堂情况对教学活动做出适当的调整。要有仔细分析所授课程的特点,能够揣摩学生的认知心理,并根据学生的认知过程合理地设计教学活动,在讲课中多与学生交流,并注重观察学生的反馈,能根据课上学生的反馈理解情况及时合理地调整教学方案。这就要求双语型教师必须不断创造环境,使自身同时具备用英文思考和表达专业知识的能力。平时要经常跟读词典,力求发音准确。这些是双语教师自身素质所应具备的。
2.积极探索和寻找有效的双语教学方式。由于学生的水平层次差别较大,教师在采用任何教学方式的时候,都应该把施教对象的接受程度因素考虑到,所以在双语教学推行的初期,不应把双语教学的目标和形式定位太高,一下子推广的课程不要太多,可考虑采用以下几种办法试行:先在部分选修课程或部分英语好的学生中试行,课本可采用中英文对照翻译教材,上课可考虑采用中文或英文讲授,慢慢过渡到原版教材,并逐步增加讲授英语的分量、直至用英文授课与考核,学生数及考核比例。如何构思双语教学中教学过程是非常关键的,它决定了一门双语课程是否真正成功的重要因素。简单地说就是课前先英文回顾,然后给出本次课可能用到的关键词,对于简单的关键词可以用英文描述、讲解,对于重点或难点的关键词可以用中文描述、英文讲解,但最后必须用英文对本次课的主要内容做一个总结。对于学生特别感到困难或困惑的,教师应采用从少到多、从易到难的方法进行,即开始时的几次课教师尽量用少量的专业术语的英文解释和简单过渡性陈述讲清楚主要内容,随着学生对双语形式的适应,慢慢加大英文分量,教师授课时可以采用全英文的课件,但在授课时应注意循序渐进,对于简单的概念和理论可以采用英文解释,对于不太难的算法解释可采用中英文两种语言配合解释,最后逐步过渡到全英文简要介绍新的知识点。
3.调动教师双语教学的积极性。双语授课对授课老师的要求较高,不但要求专业知识,还要要求英语水平较高,特别是口语较好。因此要充分调动教师的双语教学的积极性,学校应给予一些特殊政策,如适当提高授课系数,给予授课教师以一定的进修的机会,以积极、稳妥地推进双语教学的开展。
4.提高学习兴趣。对学生兴趣的培养要最好将双语课程和他们今后职业教育相结合。由于很多学生由于外语差的缘故,对于双语课程的学习与开展有一定的畏难甚至抵触情绪,因此双语课程的开展不要摊得太大,最好能开在选修课程里,可以让学生自由选择,有一定数目的可供选择的双语专业课程,这样可以在一定程度上避免学生外语水平参差不齐的情况,同时又兼顾所希望的专业课程内容,使学生的积极性、参与性都能发挥出来,学习效果得到提高。随着学习的深入,再由少数人带动多数人,逐渐过渡到在整个专业展开。
计算机图形学双语教学改革的目的,不但是为了提高学生的英语水平和专业能力,如掌握计算机图形学的基本概念、理论、原理等,为以后学习相关课程和从事相关研究打下坚实的理论基础,更要注重学生的实践能力和综合能力的培养,如掌握相关开发工具软件如C++、OPENGL等开发图形程序,高年级学生即将走向工作岗位或进一步深造,培养创新实践及如何做研究非常重要。要指导学生完成项目中逐步培养这方面的能力,并在做项目过程中提出具体的要求。评价计算机图形学双语教学效果的最终宗旨是提高学生的创新精神和培养学生的实践能力,以求真正达到面向世界、面向现代化的目标。
参考文献:
中图分类号:TP391,G642 文献标识码:A
文章编号:1672-5913 (2007) 24-0080-05
1对图形图像与多媒体知识的要求
1.1CC2004知识领域要求
在CC2004中,和图形图像与多媒体相关的知识领域是人―机交互(Human-Computer Interaction -HC)、图形学与可视计算(Graphics & Visual Computing-GV)、信息系统(Information Management -IM)、网络计算(NetCentric Computing-NC)等几个部分。表1是CC2004列出的五种课程计划中所含人―机交互和图形学与可视计算两个计算机主题的比重。表中的数字表示对应的专业与相应的知识域的相关性,范围从0~5。其中,min值表示该学科报告中列举的学生对相应知识域掌握的典型的最低要求,也是相对于其它专业最低要求的值,max值表示该专业学生对相应知识域掌握的典型的最高要求。
表1 计算机主题的比重
分析CC2004中各课程计划和表1可得出,CC-CS2001对图形图像与多媒体的知识要求最高,所涉及的具体知识单元见表2。
表2 和图形图像与多媒体相关的知识单元
CC-CS2001在附录B的课程描述中,推荐了一些覆盖知识领域和单元的课程,每门课程里对预备课程、课程提纲、覆盖的知识单元、各单元学时做了较为详细的描述。相应地,和图形图像与多媒体有关的中介课程有CS250W人机交互和CS255W计算机图形学等课程,高级课程有CS352图形用户接口、CS355高级计算机图形学、CS356图像处理等课程,但高级课程只给出课程名称,还没有详细描述。
CS250W人机交互课程要求全面介绍人机交互原理和技术,CS255W计算机图形学课程则要介绍计算机图形学的原理和技术,两门课程覆盖的知识单元见表3。
表3 CS250W和CS255W的知识单元
1.2CCC2002和教指委计算机科学规范的要求
CCC2002同CC2001一样,把计算机科学与技术学科的知识体系划分为知识领域、知识单元和知识点等三个相互关联的层次结构。完整的本科课程体系结构由三部分组成,即奠定基础的基础课程,涵盖知识体系大部分核心单元的主干课程,用来完备课程体系的特色课程。根据我国计算机科学与技术学科教育的现状及对典型课程设置的分析,给出了16门课程,分别为计算机导论,程序设计基础,离散结构,算法与数据结构,计算机组织与体系结构,微型机系统与接口,操作系统,数据库系统原理,编译原理,软件工程,计算机图形学,计算机网络,人工智能,数字逻辑,计算机组成基础,计算机体系结构。在教指委的《计算机科学规范》中,也选取部分知识单元组成了15门核心课程,分别是计算机导论,程序设计基础,离散结构,算法与数据结构,计算机组成基础,计算机体系结构,操作系统,数据库系统原理,编译原理,软件工程,计算机图形学,计算机网络,人工智能,数字逻辑,社会与职业道德。可见,计算机图形学都为核心课程之一。
在《计算机科学规范》中,计算机图形学和可视化计算可以划分成以下四个相互关联的领域:
(1) 计算机图形学:计算机图形学是一门以计算机产生并在其上展示的图像作为通信信息的艺术和科学。它有以下几方面的要求:①表示信息的模型的设计和构建应有助于图像的产生和观察;②方便用户使之能够通过精心设计的设备和技术与模型(或者说观察到的图像)进行交互;③能提供绘制模型的技术;④设计出有助于图像保存的技术。计算机图形学的目标是对人类的视觉中心及其他的认知中心有进一步深入的了解;
(2) 可视化技术:主要目标是确定并展示存在于科学的(如计算和医学科学)和比较抽象的数据集中的基本的相互关联结构与关系。展示的主要目标则应当是发掘在数据集中潜在的信息,从而有助于用户增强对它们的理解。虽然,当前的可视化技术主要是探索人类的视觉能力,但是其他的一些感知通道,包括触觉和听觉,也均在考虑之中,以便通过它们进一步发现信息的处理过程;
(3) 虚拟现实:虚拟现实(VR)是要让用户经历由计算机图形学以及可能的其他感知通道所产生的三维环境,提供一种能增进用户与计算机创建的“世界”交互作用的环境;
(4) 计算机视觉:计算机视觉的目标是推导出一幅或多幅二维图像所表示的三维图像世界的结构及性质。对计算机视觉的理解和实践依赖于计算学科中的核心概念,但也和其他一些学科(如物理、数学、心理学等)密切相关。
CC2004和CCC2002的规范中给出的课程建议规定了每门课程的最小核心内容,包括的这些单元是要获得学位必须具备的相应知识。核心单元不是课程的全部,核心单元是课程最小的部分,但不能构成完整的本科课程,每门课程应当包括来自知识体系中的附加选修单元。核心单元不能仅安排在本科阶段的入门性课程中。许多核心单元属于入门的导论性知识,但这不意味着它们必须安排在低年级的入门性课程中,因为有些导论性的知识,只有当学生具有必需的基础知识后才能接受。另外,引论性课程也可以包括选修单元。所以核心这一说法只是意味着必须具备的含义,而并没有限制它必须安排在那些课程里。
从以上国内外计算机专业推荐的教学计划和设置的课程可以得到,涉及到图形图像与多媒体的内容,一般宜设置计算机图形学、数字图像处理、多媒体技术等课程及相关课程,可涵盖的知识有人―机交互、图形学、图像处理、多媒体技术等基础内容,这样才可基本达到规范的要求。
2部分高校课程开设情况
从网上可查到的清华大学、上海交通大学、中国科技大学等几所高校的计算机科学与技术专业本科生培养教学计划中计算机图形学、数字图像处理、多媒体技术等课程设置情况如表4。
表4 涉及图形图像与多媒体类课程开设情况
从表4可看到,近几年在计算机专业里,国内的大学普遍增加了图形图像与多媒体类课程的课程数量和教学时间。
3 存在问题及教改研究
【基金项目】中国地质大学(武汉)教学研究项目,项目编号 200923。
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2013)10-0144-02
一、引言
计算机图形学是研究如何利用计算机显示和处理图形的原理、方法和技术的一门学科。除了是计算机与信息相关学科的一门专业必修课程外,它也是许多非计算机专业本科一项重要的专业限选/选修课程[1]。在以地学专业为主的中国地质大学(武汉),计算机图形学教学也得到了相当的重视。以地空学院为例,其下属的两个专业地球物理与地球信息科学的教学大纲中都明确开设了这门课程。但与其他兄弟院系一样,该课程教学中所达到的实际效果却并不尽如人意。一方面,地质制图以及地学数据的图形表现等知识在学生本科毕业后从事的地学应用工作中占有重要成分;另一方面,传统计算机图形学本身所讲述的内容又无法满足地学专业工作、科研的需要[2]。随着时间的推移,计算机图形学课程所处的地位日渐尴尬,将其从教学计划中取消固然不妥,但又确实达不到应有的效果。认真分析其原因主要有如下两点:
1.从课程的定位来看,作为一门独立学科,计算机图形学本身定位于使用数学算法构造图形的数学模型,并通过程序实现图形的显示和处理。数学建模与算法实现是计算机图形学的核心与基础[3]。该课程涉及的内容也非常之多,包括图形生成技术,计算机辅助制图,计算机视觉等部分[4]。然而作为一个主要培养地学领域人才的高等院校,计算机图形学在地学领域的主要应用集中于数据制图与数据可视化处理。即要求学生能够具备一定计算机图形学基础知识,并能够使用计算机对地学数据进行图形绘制与表现,进一步生产出社会所需求的各种图形产品包括二维地质图以及三维造型,场景演示视频等。因此可见,课程定位与专业需求存在着一定的差别。
2.从教学大纲与教学内容上来看,传统计算机图形学教学基本以清华大学孙家广院士主编的《计算机图形学》内容为范本。教学内容大部分重点集中于图形生成算法,图形标准、图形交互、曲线曲面造型、真实感图形生成与显示算法等章节[5]。这其中的许多知识点都与地学专业应用无关。此外,地学专业的学生往往在离散数学、算法逻辑等方面基础较为薄弱。这就导致授课老师要花更多的时间来将这些知识点讲授清楚,但学生在学习过程中却逐渐失去兴趣。
上述主要原因使得我校地学相关专业中的计算机图形学课程教学无法达到满意的效果。特别是由于课程的一些内容或章节与专业的实际应用偏离太多,更造成了学生们应付考试,老师们照本宣科的现象。许多讲授该课程的老师都或多或少的意识到了这一点,他们努力在教学过程中做出适当的调整,但却苦于缺乏统一的指导思想。
基于此,在校方支持下,笔者与其他授课老师一起开展了面向地学专业的计算机图形学教学改革活动。在这次改革中,老师们将自己的授课经历进行了分享,并着重对地学相关专业计算机图形学教学过程中的问题进行了总结,然后通过讨论交流提出了一系列改革方案。最后将这些方案措施在教学活动中进行验证。实践证明,教改方案可以有效的激发学生的学习热情,并引导他们将理论知识充分运用到实际问题中,有利于培养地学专业高素质人才[6]。
二、改革措施
首先,此次课程改革的目的很明确,即为地学或地学相关专业的学生量身打造适合他们需要的计算机图形学课程。该课程的教学必须真正贴近专业的需要,不再流于形式,为学生将来的工作与研究深造打下良好的基础。具体的改革措施总结如下:
1.深入了解我校地学专业相关院系的专业需求,讨论并制订面向地学领域的计算机图形学教学大纲和教学计划。传统的计算机图形学教学内容涉及到数学、物理、计算机等多个学科[7]。每个学科又涉及到一些相对抽象的理论与复杂算法实现。这些内容均使得地学专业的学生难以在短时间内掌握。此外,随着技术的不断发展,目前计算机图形学的一些教学安排与现实也存在一定的脱节。如许多计算机图形学的实习环节中会要求学生去实现基本图形的生成算法,对许多非计算机专业本科生而言,这一做法的必要性值得商榷。因为就其专业应用领域,大部分的图形生成算法实现都已经固化到了计算机硬件(显卡、GPU)中,现实工作中极少场合需要编程实现这些已经非常成熟的算法[8]。
数字媒体技术专业是近年来新增的专业,数字媒体技术是通过现代计算和通信手段,综合处理文字、声音、图形、图像等信息,使抽象的信息变成可感知、可管理和可交互的一种技术,主要包含场景设计、角色形象设计、游戏程序设计、多媒体后期处理、人机交互技术。图形学是该专业的核心课程之一。
“3D游戏图形学”是一门在对传统课程“计算机图形学”课程内容进行调整的基础上,针对数字媒体技术专业新开设的专业课。该课程主要介绍三维计算机图形学的基本概念、算法与编程实现,以及3D图形开发技术的最新进展。
本文首先对传统“计算机图形学”课程存在的问题进行了分析,提出了开设“3D游戏图形学”的必要性;然后就“3D游戏图形学”课程的教学内容和实验教学进行了讨论;最后总结我们的经验与不足。
二、开设“3D游戏图形学”课程的必要性
近年来,随着计算机软硬件技术的进步,计算机图形学技术发展很快,在各方面的应用也越来越广,特别是以动画、游戏为代表的数字娱乐产业的迅猛发展,极大地推动了计算机图形学相关学科的发展,但是目前计算机图形学的教学内容无法紧跟最新技术的发展,存在以下一些问题:
1.多以二维图形和理论讲述为主。对直线、圆、曲线等基本图形算法讲述较多,但是目前的图形学应用主要是三维的,二维图形算法已经非常成熟和硬件化了。
2.对当前应用领域中所用到的最新图形技术设计较少。随着动画、游戏等技术的发展,计算机图形技术涌现了越来越多的新方法和新技术,但传统课程“计算机图形学”的教学内容陈旧。
3.实践案例教学内容欠缺。目前计算机图形学的教学没有理论结合实践,缺乏讲解具体算法的实现方法,要么主要将理论,要么讲程序语言OpenGL的简单使用方法,与实际应用需要严重脱节,使得学生学习一学期后也无法进行具体的图形编程。
为此,迫切需要开设一门教学内容与时俱进、理论与实践并重的课程,不仅要把经典计算机图形学的基本原理讲透,而且能适当融合当前三维计算机图形技术的最新发展,并结合具体实践开展案例教学。基于这一考虑,我们开设了“3D游戏图形学”这门课程。
三、课程教学内容设计
“3D游戏图形学”总学时数48学时,理论教学33学时,实验教学15学时。理论教学内容分为以下9讲:
第1讲为计算机图形学基础,主要介绍计算机图形学的定义、研究范畴,计算机图形学的发展历史和应用领域,图形系统构成、输入输出设备,以及计算机图形学的发展热点,课时为2学时。
第2讲为基本图形生成算法,讲述图形光栅化的基本原理,直线的生成算法包括数值微分法和中点Bresenham算法,圆的生成算法包括简单方程生成圆和圆的中点Bresenham算法以及多边形的光栅化算法,课时为4学时。
第3讲为图形变换,图形变换是计算机图形学领域内的重要内容之一,为将绘制的图形转化成适合在屏幕上显示的二维图形,必须将其经过一系列的变换,包括平移、旋转、缩放、投影等,本讲主要讲述计算机图形系统中最常用的二维图形变换和三维图形变换,课时为4学时。
第4讲为三维场景绘制流水线,主要讲述三维场景显示到屏幕上需要的一系列变换,包括观察空间变换、投影变换、窗口到视区的变换和光栅化显示,课时为3学时。
第5讲为真实感图形光照处理,主要讲述简单光照模型,透明、明暗、阴影及纹理处理,整体光照模型与光线跟踪算法,课时为时。
第6讲为三维场景造型技术,主要讲述三维场景的组织方式,几何剖分技术包括四叉树、八叉树、BSP树等,快速可见性判断与LOD加速绘制技术,课时为4学时。
第7讲为游戏特效绘制技术,主要讲述常用的特效实现基本原理和方法,如广告牌技术、粒子系统技术、精灵动画技术、烟雾火特效技术和眩光特效技术等,课时为3学时。
第8讲为碰撞检测技术,主要讲述碰撞检测的基本原理、基本碰撞检测算法的原理与实现,包括基于图像空间的碰撞检测算法、基于一般表示模型的碰撞检测算法和面向可变形体的碰撞检测算法,课时为2学时。
第9讲为计算机动画技术,主要讲述几种最典型的动画运动生成方法,包括关键帧方法、过程动画、变形动画、基于物理模型的方法和人体动画,课时为2学时。
与传统的计算机图形学相比,本课程偏重最新的三维计算机图形学技术。用较少的课时介绍经典的二维图元绘制算法,然后重点介绍当前用得最广泛的三维图形技术,融合最新的三维游戏图形开发技术。另外,本课程注重理论和实际相结合,在每一章讲完理论后,紧接着介绍如何采用OpenGL进行具体编程,使学生可以利用所学知识做出自己的图形,提高学生的学习兴趣与编程能力。
四、课程实验教学设计
“3D游戏图形学”是一门实践性很强的课程,为了使学生能学以致用,真正掌握目前应用广泛的三维图形技术,做到与时俱进,除了理论教学外,必须辅以足够的实验教学,着重培养学生的编程实现能力,使得学生学习该课程后能够利用OpenGL或DirectX进行具体的三维图形编程。实验教学内容是在保留经典的二维图形编程的基础上增加了三维图形编程项目,实验类型包括基本型、设计型和综合型三种。
一、认真组织课堂教学内容该课程的基本目标是是学生全面而系统地理解计算机图形学的相关概念、原理和知识,具有一定实践体会和相关的编程能力,了解当前的研究热点。计算机图形学这门功课,没有学习积极性和主动性,是很难学好的。难学是学习积极性的主要障碍。因此在教学内容上,应注意以下几点:充分注意学生的接受程度,教学内容要“精”。首先是注重基础,强调基本概念、基本原理,以如何“逼真”地模拟现实世界的物体为主线。其次也要突出重点,对一些要求掌握的算法,要仔细分析,强调其基本思想、基本原理。只要算法的基本思想掌握了,算法的实现就容易理解,对相关算法就可举一反
三、触类旁通。在教学内容上,也应注意“新”。教学内容的选取应跟上学科发展的步伐,介绍一些当前的研究热点(如:真实感图形显示、计算机动画、人机交互技术与虚拟现实技术等)及重要文献,使学生了解学科发展情况,也同时增加课堂教学的趣味性。在教学内容上,还应注意理论与实用软件之间的关系。应介绍计算机图形学的理论、算法在流行的图形设计和动画制作软件中的应用,促进理论学习和实用软件使用形成互动。
二、注重教学方法和手段在教学方法上,注意启发性。如:在讲画线算法前,应思考:为什么在屏幕上画出直线段时,经常出现锯齿?如何解决?等等。这些思考的问题可以引导学生预习和自学,减轻课堂负担,使课堂教学的目标清晰,任务简化。在重要算法的讲授中,首先在清晰的介绍其基本思想和原理,应作到深入浅出,简明扼要,充分利用图形图示的作用,这样使复杂的算法变得易于理解,易于学生的接受。在介绍算法的奇思妙想之后,应注意分析其效率和特点,强调追求高效率、精益求精是算法不断改进的重要原因。在算法讲解中,应避免繁琐复杂的算法推导和连篇累牍的算法分析,这样会使很多学生感到困惑、烦躁,会使学习的积极性下降。
三、恰当设计课前、课后习题习题应与课堂教学、上机实验等环节的工作结合起来。习题可分为课后习题和课前思考题。课前思考题具有一定的引导作用,帮助学生预习和自学,减轻课堂负担,使课堂教学的目标清晰,任务简化。课后习题是对课堂教学内容的消化、吸收、补充、完善和提高。习题一定要精心设计和选择,特别避免作业形式单一、难度较大,否则就会使学生产生畏难情绪。注意循序渐进、难易适度。注重基础,注意多层次、多形式(如判断题、选择题、填空题、简答题、算法设计题和综合应用题等),使学生得到全面的训练。习题应注意启迪学生的思维,培养独立思考的能力,也可大大提高学习兴趣。根据课程教学需要,在参阅一些著名计算机图形学教材的基础上,笔者经过收集整理,编写了教学辅助材料《计算机图形学习题集》。
四、充分重视实验教学计算机图形学课程具有很强的实践性,上机实验是其重要环节。基本目标是将学生的计算机操作能力、分析能力、设计能力与应用实践结合起来,引导学生由浅入深地掌握计算机图形学基本理论和算法。好的实验内容充满了趣味性,又有挑战性,在上机实验中可以提高学生的学习兴趣,必然影响其它教学环节。
五、课程设计必不可少课程设计是计算机图形学实践教学的另一个重要环节,是对学生计算机图形学课程以及相关知识的综合测试,是对学生图形设计的问题分析、算法设计与分析、程序设计和调试等能力的考核,是进一步提高教学质量的有效途径。课程设计在课程教学的中后期完成。课程设计的题目、要求在该课程的中期给出,题目也可自拟。课程设计任务不宜过难,最好在实验课的基础上进行,可以是实验的综合、改进、完善等。要求在规定的期限内完成所有的文档资料(包括源程序清单、可执行程序等),并评定课程设计成绩,作为课程总成绩的重要组成部分。
六、严格教学的过程化管理与考核重视教学的过程化管理与考核是保证教学质量的重要手段。对课堂、作业、实验等环节进行有效的管理,及时发现和纠正每一环节中存在的问题。应在过程中解决教学中的问题,不能让其积累起来,避免学生感到课程的难学,以致学习积极性的下降。过程化考核体现在评定学生的课程成绩时,全面考核各重要教学环节(如上课、作业、实验、课程设计、期末考试等)的学习情况,应充分重视平时的学习情况,鼓励在平时作业、实验、课程设计中独立思考,并有所创新。每次作业、实验都要给出等级,各环节的学习情况都有逐一评定成绩,并按比例记入到课程的总成绩中。总之,计算机图形学是一门不断发展的交叉学科,其教学方法需要在实践中不断探索。我们教学工作者在研究高效率的教学手段和教学方法的同时,还应积极参与教学内容相关的科研工作,从而更加明确教学重点和难点,做到在教学过程中有的放矢,激发学生学习和思考的积极性和主动性。
参考文献:
[1]何援军.计算机图形学
[M].北京:机械工业出版社,2009.2.
[2]吴元斌.“计算机图形学”教学的几点体会
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)38-0051-02
《计算机图形学》既是计算机科学研究领域中一门重要的学科,同时也是建立在传统图学、现代数学及计算机科学上的一门交叉学科。它已广泛应用在于计算机辅助设计与制造、计算机辅助绘图、计算机辅助教学、工业过程控制、计算机动画艺术、科学计算可视化、人机交互和虚拟现实等诸多领域[1]。基于《计算机图形学》领域的巨大发展和《计算机图形学》课程教学中存在的诸多问题,有必要对该课程的教学进行改革,从而提升该课程的教学水平。《计算机图形学》的研究内容主要包括图形软硬件、光栅图形生成、真实感图形计算与显示、曲线曲面造型、人机交互技术、科学计算可视化、计算机动画、自然景物仿真、虚拟现实等[2]。
一、目前教学中存在的问题
《计算机图形学》课程是一门理论与实践结合性强的课程,这导致在实际教学过程中存在以下四个问题。
1.教与学的目的不统一。笔者通过教学过程中与学生的交流发现,大部分学生对本课程的理解不是很正确。他们之所以选修这门课程,主要是因为他们认为通过对《计算机图形学》的学习可以处理漂亮的图片、制作炫目的动画和进行游戏编程等。然而该课程实际上是去探究实现这些操作的原理,是研究更本质的知识。学生一开始对该课程充满好奇和期待,但随着课程的深入讲解,他们会感到本课程的理论知识枯燥,导致学习兴趣不断下降。
2.学生动手能力的不足。《计算机图形学》这门课程要求学生具有较强的编程能力和动手能力,因为要掌握和实现一些图形学基本算法。而在教学中发现,大部分学生的编程能力和动手能力都一般,很多任务不能正常完成,从而间接打击了学生的积极性,使得他们对该课程的兴趣与日递减,最后转为放弃学习。
3.课程设置不合理。《计算机图形学》尽管是计算机科学的一门重要学科,但在计算机科学与技术专业并不是核心课程,因此在课程设置中只是将该课程作为高年级的方向选修课开设。很大部分选修学生不是真心想学习该课程,再加上这些学生对课程的理解也存在着偏颇。基于这个现状,任课教师也就只能在实际授课时力求简单,从而导致教师无法完成必需的教学内容。
4.实践教学重视不够。传统教学模式只重视理论而忽视实践,一方面表现在实践课时安排上(本校课堂教学的课时是实践教学的两倍);另一方面是开设的实验更多的只是算法验证性实验。这使得原本很重要的实践活动转变为形式,这势必阻碍学生运用所学图形学理论知识提升其自身的创新能力。
二、教学改革具体措施
1.板书与多媒体相结合。多媒体教学作为现代教育的有效手段,确实具有传统教学无法比拟的优势,它信息量大、效率高、趣味性强,使教师的授课更便捷,让算法的演示更形象具体,从而有利于激发学生的学习热情,使教学效果达到最优化。因此,目前基本上所有的高校都采用多媒体方式进行授课。但其实对于图形学这门课程,由于其涉及到大量的数学推导,比如,基本图形的生成、图形几何变换和曲线曲面造型等,在多媒体教学的同时,需要运用板书进行相关数学推导,这可以使学生在教师板书的过程中学会思考,从而更好、更正确地理解各种图形算法。
2.加强实例教学。由于图形学课程需要掌握很多算法,因此在讲解图形学算法时,不能只讲理论,这样太空洞。应围绕具体的实例进行教学,借助计算机技术(比如flash)对一些算法进行动画模拟演示,从而使算法的描述更加形象化和具体化。这一方面有利于学生更快更好的掌握这些算法;另一方面也可以激发学生学习的热情和积极性。比如,在讲解“多边形填充4连通边界填充算法”时,利用flash演示像素入栈出栈原理,如图1所示,更直观地展示算法的基本思想,从而充分调动了学生的学习积极性,使其具备主动学习的能力。不过因为课时有限,演示实例不能太复杂,能把算法讲解清楚即可。
3.加强实践能力的培养。《计算机图形学》理论和算法是比较深奥和难懂的,不是很容易掌握,但其实验结果却是直观和生动的。该课程具有很强的实践性和应用性,因此上机实验是其重要环节。在教学过程中需要继续加强学生实践能力的培养,引导学生把所学的基本理论知识应用于实践操作,不断提高学生发现问题、分析问题和解决问题的能力。《计算机图形学》在本校的总学时数为48学时,其中的实验课时数为14学时,这14个学时7次实验基本能够满足课程实践教学的需要。本课程的实验根据难易程度可分为如下两个层次[3]:①基本实验。主要是为了锻炼学生对算法的理解能力、算法到程序的转换能力以及用VC编程实现算法的能力,主要包括基本图形(直线、圆和椭圆)算法、线型和线宽的处理、字符的生成技术、线段的裁剪、二维和三维图形的几何变换和投影变换、曲线绘制等,要求学生能够独立完成。②综合实验。这类实验包括多边形裁剪算法、多边形区域填充算法、区域图案填充算法、多面体的消影、画家隐面算法和Z-Buffer隐面算法等,它们无论从算法复杂性上还是程序编写难度上都要高于基本实验。可以考虑将学生分成若干小组,以小组的形式在规定的时间内完成。
参考文献: