前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机图形学课程范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:计算机图形学;教学效果;教学方法;学习方法
中图分类号:TP3 文献标识码:A
文章编号:1009-0118(2012)05-0129-02
一、引言
“计算机图形学”是计算机专业教学中的一门重要的专业基础课程,它的后续课程有:图像处理、多媒体技术、模式识别、计算机视觉以及虚拟现实等,在计算机专业的教学过程中占有很重要地位。“计算机图形学”课程最大特点是理论与实践结合较强,传统的教学模式很难满足这个要求,严重影响到课程的教学质量和教学效果。因此,“计算机图形学”课程的教学改革势在必行。
二、分析教学中存在的问题
“计算机图形学”主要研究与计算机图形表示、图形计算、图形处理和图形显示的相关原理与算法,它的内容丰富,涉及了数学、物理学、计算机科学、美学、心理学及艺术学等诸多方面的知识,具有很强的理论性、实践性和综合性。
在几届的课程教学中,作者先后使用偏理论教学和偏实践教学,都没能取得很好的效果。目前国内高校对这门课程的讲授常使用这两种方法。偏理论的教学过于强调理论知识(相关的数学基础知识、算法的推导、程序的实现),学生很难理解和掌握,普遍反映:“上课听得懂,下课再问就不知道了”,学习态度从困惑变成厌倦,因为学生不知道这些知识有什么用。偏实践教学则是从实用角度出发,理论知识涉及得少且浅显。学生兴趣提升了却没有抓住课程的本质,错误的认为计算机图形学就是图片处理和动画制作。总结上述两种教学方法存在以下几个方面问题:
(一)知识点的混淆。由于本课程所学的内容多,学生在学习过程中没有清晰的知识框架和整体思路。知识越学越多、越学越乱。例如,在实际教学过程中,几种扫描转换算法讲授后,有些学生已区分不出各种算法所解决的问题。
(二)内容知其然不知其所以然。计算机图形学涵盖许多原理、算法、程序,这些内容都不容易理解和掌握,大部分学生不感兴趣。这就与他们原本对这门课程的理解有偏差,所以感觉很盲目,没有学习目标,最终丧失学习兴趣和热情。
(三)实践环节得不到应有效果。学生在有限的时间内很难完成对分析能力和编程能力要求很高的实验任务,进一步加深对该课程的排斥。
针对以上出现的问题,在有限的学时内,如何使学生系统地掌握计算机图形学的基础知识、重要的基础理论和生成图形的常用方法,值得深入的探讨。
三、课程教与学的改进
教学方法包含教师的教授方法和学生的学习方法。计算机图形学的教与学都应把握课程的整体结构和发展方向,强调理论学习与实践应用的结合。使学生在深刻理解图形学本质的同时,建立起这门学科的整体框架,为后续课程打基础。
(一)教师的教授方法
教师在学习过程中起着指导和协助作用。如何在课程的基本原理和基本技能传授给学生后,引导学生将所学的知识应用到实践中,去发现图形图像及其相关领域的问题;激励学生积极地分析和解决问题。
1、兴趣培养。古人云:“知之者不如好之者,好之者不如乐之者”,让学生了解计算机图形学与自己的生活、工作、学习密切相关,兴趣就会油然而生。例如,从学生比较熟悉或推崇的某游戏或软件开始,介绍支撑该产品的计算机图形学基本知识和理论;或者展示计算机图形学在计算机动画、科学计算可视化、计算机艺术、多媒体应用等应用领域的最新研究成果和发展趋势。使学生萌生求知欲望,这是非常关键的一步。
2、合理安排。计算机图形学课程内容涉及图形显示处理流程、图形硬件设备、图形系统、二和三维图形的生成和处理算法、裁剪、几何变换、交互技术、三维消隐等方面,每一项内容又包含很多的技术、方法以及经典算法思路。教师不可能在有限的学时数内每个知识点逐个展开讲解,那样也不利于学生对知识的学习和掌握。怎样给学生展现一个清晰的计算机图形学课程内容脉络和整体框架呢?结合学生的认知能力,选择有代表性的讲授,强调基本概念、基本原理、经典算法(如Sutherland-Cohen算法、Bresenham算法、Z缓冲器算法、光线跟踪算法等),做到突出重点、点面结合。例如,圆、椭圆的扫描转换的内容完全可在讲授直线段扫描转换算法后安排学生自学,因为它们的基本思想是相同的。这样,可以用节省的时间传授学生最大量的新知识,同时可以培养学生的自学能力。
3、形式多样。俗话说“一幅画胜过千言万语”,传统的黑板讲解结合生动有趣的多媒体教学,用flash、OpenGL等工具把复杂枯燥的数学推导和算法描述做成动画演示,使复杂问题简单化,抽象问题具体化。例如,Bezier曲线,B样条曲线,NURBS曲线曲面,数学公式抽象难懂,计算量大,学生普遍难以理解。使用OpenGL(OpenGL提供了近350个不同的调用函数,用来绘制复杂的三维景象)制作出他们的三维模型,动态演示算法执行过程,抽象的理论与具体的实物对照,从而加深理解。
4、注重实践。培养学生技术应用能力靠上机实验,合理安排实验课程是关键。学生要在边做边学、边学边做中加深对理论知识的认识和理解。教师结合学生的动手能力,制订切实可行的实验设计方案。
(二)学生的学习方法
学生要熟练掌握计算机图形学课程的知识精髓,课堂学习是远远不够的。要积极主动成为学习的主体,本文提出了几点建议供学生参考。教师也可以根据自身教学的实际情况借鉴使用。
1、扎实的数学基础、很强的编程能力这是学好该门课程的必要条件。例如,连续、一阶连续、二阶连续、曲率、绕率、参数表示、矢量、法向量、矩阵、矩阵运算等,都是计算机图形学中常用到的基础知识。这些都需要学生课前熟练掌握。
2、充分利用网络,开阔眼界。关注计算机图形及其相关学科领域的发展动向;基础算法产生背景、算法的应用领域、相关的学术报告和会议文献等,进而扩展知识的深度和广度。这不仅限于学好这门课程,其它课程也是适用的。
3、理顺计算机图形学课程的学习内容和整体架构,将每个知识点用知识树的形式串联在一起。如果一个问题有多种解决方法,可以采用对比的学习方法,将所学的原理、算法、程序进行比较,找出它们之间的区别与联系。例如:Bezier、B样条、NURBS曲线曲面间的比较,CSG树、边界表示法、八叉树表示等实体造型技术的比较等。
4、认真做好每次上机实验。运用学到的知识,发现问题、分析问题、解决问题,提高动手能力,这是学习的最终目的。
四、结合语
计算机图形学是一门实用较强的综合学科。在了解和掌握现有的和前人积累的知识同时,更重要的是知识的模仿和继承,突出探求知识能力和创新意识的培养。经过几年的教学探索和研究,上述的教学改革可以达到很好的教学效果。
参考文献:
\[1\]龚绍文.大学青年教师教学入门—大学施教学初步\[M\].北京:北京理工大学出版社,2007.
\[2\]潘革生.高等学校计算机图形学教学理念探讨\[J\].广西科学院学报,2008,24(4):380-383.
\[3\]孙家广.计算机图形学\[M\].3版.北京:清华大学出版社,1999.
关键词计算机图形学调查法案例教学法教学改革中图分类号:G424文献标识码:A
信息与计算科学专业作为理学的一个热门专业,其培养目标是培养具有良好的数学知识,掌握信息科学和计算科学的基本理论和方法,受到科学研究的初步训练,能运用所学知识和熟练的计算机技能解决实际问题,能在科技、教育和经济部门从事研究、教学和应用开发和管理工作的高级专门人才。这就需要学生具有较强的综合素质。①②与其他专业相比,信算专业具有一定的数学基础和计算机知识,善于发现问题,具备一定的创新意识,但是动手能力较弱,创新性不强,综合运用所熟悉的数学知识和信息知识的能力不高。计算机图形学(以下简称图形学)作为信算专业的一门选修课,是一门理论、技术与应用相结合的技术应用性课程。该课程是2001年美国计算机学科教程和2002年中国计算机科学与技术学科教程的核心课程之一。③④⑤对于提高学生的动手能力,培养学生的综合素质大有裨益。
1 计算机图形学所存在的问题
信算专业的大多数学生具有学习图形学的动机和欲望,但目前对于图形学实验课程所能提供的具有动手、创新的环境有限,学生无法充分发挥自己的学习潜力,同时难以提高自己的创新能力。同时学生也不善于利用现有的资源和条件,更不能创造出自己所需要的资源和条件。具体表现为:
(1)传统的教学内容。目前的图形学课程教学主要以课堂讲解、传授知识为主。在教学过程中学生的个性,一直沿用相同的的大纲、教材和考试方式,在这种情况下,学生的知识结构和思维方式也很容易与老师相同,缺乏创新、缺乏创见。同时,对于学生的积极性有很大影响。
(2)实验教学模式比较单一,教学效果不够理想。传统的实验教学侧重于验证性的实验教学,从实验的思想到实验算法的确定,基本上都是由教师事先讲解好,学生只是被动的接受和模仿,让学生自己思考的东西较少,很多学生只是盲目敲击代码,并不了解为什么这么做,不利于学生创新能力和综合素质的培养。
(3)对学生评价考核机制还不够科学完善。目前评价学生的标准主要是考试成绩,因而在一定程度上导致学生片面追求考试成绩,忽视其它能力尤其是实验动手能力和创新能力的培养。
2 教学改革的主要内容
2.1 改革课堂教学模式
课堂教学是教学的基本组成形式,学生能力的培养也必须渗透到图形学的教学过程中。教师既要传授知识,又要培养学生的动手能力、创新能力、实验能力等等。同时以此为基础,要结合学生不同的认知水平和生活体验,创设新的教学情景导入新课,激发学生学习的欲望。在教学中,营造一个鼓励学生发言的课堂氛围。采用多种多样的课堂教学形式,鼓励学生提出自己的看法,让学生自觉、主动地学习,以提高学生的创新能力。加强图形学与微分几何、数据结构、概率论与数理统计等各学科之间的交叉综合,有利于学生综合素质的提高;同时融合学科前沿知识,增大课堂信息量,激发学生的创新精神。
2.2 改革实验课教学模式
针对目前《计算机图形学》实验中内容比较单一、编程环境比较旧的问题,使得多数学生为了验证理论教学中学到的算法,刚实验成功一个算法会比较有成就感,但是对后面的实验会在某种程度上失去兴趣,感觉枯燥无趣,对它不感兴趣。充分利用理学院实验室的仪器设备和师资力量,探索和完善实施新的实验教学的方法。
2.3 改革和完善学生的考核体系
评价是教育管理中实施控制的特殊手段,是教育管理的重要环节。传统的培养模式并不利于培养学生的动手能力,主要原因是学生考核过程中采用统一的闭卷考试方式,不能反映出学生的真实的水平和能力,尤其是创新能力和实验能力很难在一张试卷中进行全面考察。因此我们可以采用多样化的考试方式,以及相对比较自由的考试时间,或不采用考试形式考评学生,如通过独立撰写专题报告、课堂演讲、撰写相关的学术性文章、参与相关的科研项目以及相关的程序设计大赛等多种形式进行评价。
3 实施的步骤与方案
(1)通过对2007级、2008级学生进行调查,了解学生为什么选修图形学这门课程?希望通过该课程学到什么?以及学生比较擅长的编程语言,给学生创造良好的编程环境,使得学生先利用自己熟悉的语言实现结果。
(2)通过网上查询及实地考察,借鉴国内外著名大学的经验,结合理学院信算专业的专业特色对教学内容进行改革,使得教学内容与时俱进,与当前的SIGGRAPH中的热门图形学专题相结合,开阔学生的视野。
(3)完善网络课程以期协调好“教师教”与“学生学”的关系。采用多样化的教学方法,从图示内容的渐进性到图形的欣赏性,再到图形的交互性循序渐进,同时将多媒体教学与程序现场演示相结合。
(4)通过课堂实践完成将传授知识与培养能力相结合,采用“以点带面”的方法,每个算法在班内选择1~2个代表学生,讲述自己的算法,修正其编程过程中遇到的问题,以及其他同学有可能遇到的问题,将该过程集结成录像上传到网上共享。
4 教学效果
通过对于2007级、2008级信算专业的学生进行教学改革,我们发现与2006级相比,学生对于实验算法的理解更加深入,成绩优秀的学生比例提高了15%,考试中对于考察算法的题目学生的得分率比较高,多数学生对于计算机图形学的认识有了进一步的提高。
注释
①陈国军.工科《 计算机图形学》 教学改革探索[J].中国石油大学胜利学院学报,2009.23(2):81-83.
②张荣华.高校“计算机图形学”实验教学改革探析[J].中国电力教育,2007(3):134-136.
③张瑞秋等.计算机图形学发展现状与教育改革[J].机械管理开发,2007(4):6-8.
关键词:计算机图形学;可视化;计算机动画;教学改革
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2013)13-3088-02
1 计算机图形学的相关理论
1.1 计算机图形学的定义
随着计算机在生活中的广泛应用,将计算机技术与传统图形学结合起来描述产品已经并非难事。而计算机图形学所研究的正是这方面的知识。因为在现代制造业中,用计算机图形来模拟描述产品变得越来越广泛,所以,现在国内外大学,都将计算机图形学作为一门必修的应用课程。目前国内被采纳的定义是:计算机图形学是研究怎样利用计算机表示、生成、处理和显示图形的原理、算法、方法和技术的一门学科。
1.2 计算机图形学的整体框架
2 计算机图形学的现状分析
2.1 计算机图形学在教学中的发展现状
经历了近半个世纪的发展,计算机图形学无论在数学基础的算法研究,还是软件应用或是硬件发展方面都取得了巨大的进步空间。现在,计算机图形学已经成为工程应用领域传递信息的主要技术和工具,而与它相关的软硬件产业也形成了一个巨大的产业,从事研究这个产业的队伍十分庞大。正是由于此份需求,我国高等院校的理工科专业现在基本都开设了计算机图形学这门课程。
从前面的计算机图形学的整体框架可以看出,此门课课程涉及的内容很广泛,包含了,数学、物理、计算机科学等课程,是一门交叉学科,而且此门课程的学习是以数学基础作为最基础的学习的,所以大多数学生在学习开始的时候都感到这门课程难于理解,枯燥。另外,目前国内的计算机图形学课程的教材基本取材于几本经典教科书,而这几本教科书主要讲述的是上世纪七八十年代的图形学技术,主要强调的亦是数学基础。正是由于这些原因,目前我国计算机图形学教学普遍存在以下问题:
第一、学生期望与教学要求之间的矛盾。在学期开学之初,学生们拿到课本的时候,往往会在计算机图形学的课本上看到的是各种当今最新的计算机图形学的研究成果和各种可以乱真的图形效果,他们认为学习完后既可以绘制出像课本彩页上一样的效果图,所以开始的时候总是对这门课程充满期望。但是由于课时的限制,各个高校对此门课程的教学要求仅仅是掌握计算机图形学的基本概念并且能够完成一些基本图形的绘制,即是计算机图形学的入门课程,要想完成向课本彩页上的那种效果图还需要学生在学习完这门课程后画上几年的时间继续学习和刻苦钻研。学生们在学习这门课程之初的期望和学校对这门课程的教学要求之间存在巨大的落差,随着学生对这门课程的学习时间增长会慢慢的体现出来,而学生们对这门课程的兴趣也会慢慢的递减,最后慢慢失望导致放弃学习。
第二、计算机图形学过分强调数学基础。通过计算机图形学的整体框架我们可以看出,计算机图形学的基础是数学,这是毋庸置疑的,任何图形要显示出来都必须先构造出数学模型,然后才能通过计算机程序实现计算机图形的显示。而目前国内的计算机图形学课程的教材基本取材于几本经典教科书,而这几本教科书主要讲述的是上世纪七八十年代的图形学技术,主要讲述的是计算机图形学的算法,因为这些算法的构思比较独特而且实现的方法又精巧,所以学生比较难于理解。这种算法的逻辑思维比较适合数学基础良好的理科学生,相对工科学生来说,他们就往往会被这些算法所困扰,对这门课程产生畏难心理。
第三、计算机图形学内容过于丰富导致课程泛泛而谈。计算机图形学是一门交叉学科,涉及到微电子学,信息学,计算机科学,图形学,几何学等学科。另外由于计算机图形学的不断发展,它的软硬件更新换代和大量涌出的新算法这些都是计算机图形学教学所要传授的内容。这样就要求计算机图形学的授课教师具有全面的知识结构,并且在传授课程的时候要分清主次,合理取舍。否则的话,各个知识点都讲到就会使得学生在学期后只能学到分散的知识点,而不能将这些分散的知识点连成知识面,不知道学了什么,这样会使他们丧失继续学习的兴趣。
第四、传统教学模式忽视应用实践。计算机图形学是一门实践性强的课程。它要求学生具有较强的动手操作能力和编程能力。如果理论与实践互动性不够,容易造成学生实践动手能力薄弱。
通过以上分析,可以看出在计算机图形学中采用传统的课堂上讲授理论,课下让学生去做实验的教学方式很难达到预期的教学效果,急切需要探讨新的教学思路和教学方法。
2.2 计算机图形学在教学中所能做的改革
根据计算机图形学教改的总体计划和总体目标,我们进行了教学研究,实施了一些教学改革,具体有如下认识和做法:
2.2.1 重视基础知识、突出重点技术
计算机是工科类学科,而计算机的应用专业又是其中应用实践性最强的专业,这使得很多职业高校在进行此专业的专业教学时有忽视理论基础,片面注重操作应用的倾向。这样就违背了我们国家要培养兼顾理论与实践操作的专门人才的培养目标,所以,各大高校必须要重视理论基础知识的教学,计算机图形学的理论基础包括:计算机图形设备的输入、图形在计算机内部的表示、图形在计算机内部的运算,变换原理算法、以及在计算机中存储的图形如何经过图形设备输出,如何将这些点、线、面、体的几何元素在计算机图形设备上表现出来。这些内容确实比较枯燥,甚至远离应用,不像FLASH、PHOTOSHOP等用户图形系统那样可以直接操作,具有所见即所得的图形效果,但是这些却是计算机图形应用系统的基础。传授这些基础知识可以为学生日后的学习与钻研打下基础,帮助他们在日后的学习中加深理解。但是由于计算机图形学的知识太过于广泛,这就要求教师在计算机图形学的教学中分清主次,以点带面,浓缩教学的内容。如:在讲二维图形的生成技术时,就可以将抛物线的二维图形生成技术作为重点,其他的稍作介绍,这样的话即可保证计算机图形学的理论基础,又可突出图形生成技术作为教学重点。
2.2.2 完善教学内容、加强实践能力
随着计算机图形学的飞速发展,这门课程已有相当成熟的数学表示、变换、运算和算法,并且最重要的是它已经被集成到许多图形系统开发平台中。我们的计算机图形学教学的理论基础还停留在最原始的概念上,如各种图形的变换,利用单一的数学方法进行矩阵运算。而这些在现有的图形系统中都可以使用相应的函数和堆栈操作完成。也就是图形学的教学内容还是在矩阵的元素级的运算,而现有图形系统在矩阵级的运算。三维几何体的变换可以借助于操作矩阵堆栈直接应用取景变换。这样理解,我们把计算机图形学教学分为三级:一级:如何用数学模型生成二维图形,二级:如何用二维图形生成三维图像、三级:图形软件的教学。可以看出,在传统的教学中我们只强调了一级教学,而对二级只是简单带过,三级更是由于时间的限制无法介绍。这种情况必须得到改善,我们必须通过这三个层次的教学,使学生认识到:这三部分教学内容的层次是越来越高的,而且每一层次对应着不同应用需求,如:第一层次主要对应简单的二维图形制作;第二层次主要对应二维或没有规则的三维几何体图形制作,且可以有真实效果显示;第三层次对应规则几何体的真实效果显示,但开发工作量远远小于第二层次,主要用于游戏软件、虚拟社区漫游、电脑广告制作等的开发应用。通过对教学内容的完善,加强实践知识传授,使学生可以将所学的知识连贯起来,知道他们所学习的究竟是什么,并掌握如何应用所学的知识。从而提高他们的学习兴趣。
2.2.3 结合实际问题、提高应用水平
从培养目标看,计算机应用专业学生不是应用软件的使用者,而是为这些使用者提供应用软件的软件研发人员。教学时可用一些经典案例,让学生以角色带入,通过这样的教改实践,教学内容覆盖了一、二、三级图形软件,这样不仅可以拓宽学生的知识面,也可以让他们在学校就感受到社会工作时团队的力量。从而提高他们的实践应用水平。
3 结束语
由于计算机图形学的应用广泛,不同学科的特点各不相同,以及学生不同的专业背景,在教学上应因材施教寻求各自合适的模式。但归根结底应把培养学生的综合应用能力及创新能力作为最终目标,为以后学习相关课程和从事相关研究与开发工作奠定坚实的基础。
参考文献:
[1] 唐荣锡,汪嘉业.计算机图形学教程(修订版) [M].北京:科学出版社,2000.
[2] Angel Edward1Interactive ComputerGraphics: A Top-Down Approach with OpenGL [M].2nd ed1USA, Ad-disonWesley: [s1n1], 2000.
[3] 孙家广.计算机图形学[M].3版.北京:清华大学出版社,2006.
[4] James D Foley.计算机图形学原理及实践: C语言描述[M].北京:机械工业出版社,2002.
[5] David F Roger.计算机图形学的算法基础[M].2版北京:机械工业出版社,2002.
关键词:工业信息化;计算机教育;计算机图形学;计算机仿真;程序设计
中图分类号:G642 文献标识码:B
1引言
2008年11月1日,在计算机科学与技术专业教学指导分委员会第三次全体会议上,教育部高等教育司理工处李茂国处长指出:“我国的工业发展正处于转折期,这一转折的重要特点是信息技术对传统工业的改造,这就提出了信息化技术如何更好地渗透到其他学科的问题……高等理工科教育要为工业化的发展和产业改造提供支撑,要为这一转折培养大批合格的人才。特别是计算机科学与技术专业,要认真研究这一转折,不仅要研究如何紧跟学科和专业发展,不断更新教学内容,更要深入研究如何根据工业信息化的需求,加快计算机科学与技术专业的改造,尽快实现专业结构的调整,真正解决结构失衡的问题”。由此,对计算机教育提出了新要求。
2目前国内计算机教育中存在的几个问题
2.1计算机教学模式单一
我国计算机专业的教学模式主要传承美国大学的教学模式,这是因为美国是当今世界上计算机工业与计算机教育最先进、最发达的国家。美国的计算机教育是基于它在计算机的基础、核心地位,并向全世界推销硬件、软件产品这一思路而构造的计算机教育模式,同时用法律方式来保护自己的知识产权,这是美国计算机教育的第一个特点;第二个特点是全美计算机教育体系的完整性,这种教
育对计算机的理论与应用的各个方面都涉及,例如同样一门计算机的主课在各个学校的授课都有不同的特点与主攻方向、并有非常多的辅助课与提高课程、参考文献等供读者选修,直至指导你走向学科的最前沿与其商业开发等。虽然他们各校的计算机的授课不一定很全面、很权威,但全美各个学校的所有计算机课程的集合能构成计算机教育的完整体系,这是他们计算机教育多年来自然形成的相互创新竞争机制、并最后形成均衡发展势态铸就的成果,是我们在进行计算机教育改革时不能忽视、目前暂时没法做到的两点。
由于上述按照美国人计算机专业教学模式培养人才的教学体系在国内占主导地位,这导致国内计算机教育模式单一,绝大部分高等院校培养的计算机专业的学生具有相同的知识结构。而中国社会对计算机的需求不同于美国社会,中国目前还不可能有像美国那样的计算机硬件工业与核心软件商业公司,也不可能像美国那样向全球推销自己的产品等,但国内绝大部分的计算机需求是计算机应用软件的开发、并且各行各业的计算机应用有很大差异,而上述单一的计算机教育模式无形之中把这种多样差异的社会需求排斥在计算机的核心教育之外。
教育部计算机教指委等部门针对这一问题,提出计算机专业按照社会的需求进行“分层分类”教育模式,并出台了多种计算机教学方案供人们选择。而要全面解决这一问题,教育思想的转变是计算机教育深化改革的前提与关键。
2.2课程教学内容不足
常见很多C语言等教科书被冠名为计算机程序设计课程,这类课程明明是介绍算法语言的语句功能、语法与语句的基本操作使用(描述算法的具体实现过程),初学者有了这种知识后,虽能设计一些简单的程序,但由于此时初学者没有数据结构等知识,故他们还不能设计功能齐全的计算机应用程序。西方学者的算法语言教科书一方面是向读者介绍语句的功能与使用,另一方面为算法语言的编译系统课程做铺垫。很多国内教科书试图从算法语言的角度向初学者阐述这门课程似乎就是程序设计的原理或把这种课程冠名为计算机程序设计,已被证明是不全面的。
计算机加工计算各种数据,但计算机中被处理的数据如何在计算机内存中存储、管理并被计算机快速检索得到是“数据结构”课程要解决的主要问题,这个问题解决得好,能大幅度提高计算机解决计算问题的效率。一般计算机专业都是在算法语言与“数据结构”课程之后,通过具体大型编程作业或实际应用课题的训练使初学者掌握程序设计的基本方法。若此时把缺失的软件系统与数学模型等内容都加入到“数据结构”课程的教学中,试图使初学者从理论上直接掌握应用程序设计的基本方法,则会遇到如下困难:(1)无足够的课时;(2)会改变“数据结构”课程的授课性质;(3)是早期不具有多个大规模实用复杂数学模型的通用教学案例。这导致国内计算机程序设计教学停留在经验教学模式上长期徘徊不前。
“软件工程”课程是计算机专业培养初学者从整个软件的生命周期出发、全面介绍软件开发过程中要遵循的规则与采用的基本方法,培养大型软件项目开发过程中的团队协同能力与组织、管理方法等。但在软件工程的课堂教学中,由于前期已讲授过的计算机课程教学内容缺少好的通用教学案例作为软件工程的实习对象,故人们多注重软件工程内容的理论介绍,轻视软件工程中的案例教学,轻视实际软件开发训练与经验的积累,结果往往导致该课程的教学内容空洞,教学效果欠佳!
计算机专业教育注重学科的发展与专业教学,计算机基础教育注重计算机应用的教学,两者应形成互补之势。计算机应用软件的4个基本领域分别是数据计算、数据存储与检索、数据的联网通信、计算机控制。但是国内计算机基础教学只注重数据库与计算机网络的教学,沿用计算机专业用算法语言与数据结构课程的教学模式,并以此来代替数据计算与程序设计课程的教学,而非计算机专业的初学者又没有计算机专业那样充足的课程设计时间、并通过实际应用软件编程训练来掌握程序设计的基本方法,这导致非计算机专业的人员程序设计能力的弱化。
3解决问题的方法
新时期国家工业信息化建设对计算机教育提出的新要求,本质上是加强计算机的应用教学,使各行各业的人员通过选修计算机专业的核心课程,能很快地掌握计算机的编程原理,尤其是把数学建模的结果(它们描述了用户解决实际应用问题的数学框架)转换成计算机程序,而不是按照传统的计算机专业培训方案,通过大量的课时与实习等编程训练掌握程序设计的基本原理与方法。这样将使非计算机专业的人员能有充裕的时间把各自研究领域内的理论研究问题、解决这些问题的理论模型与成果等转换成计算机能接受的数据模型与算法,并能用计算机仿真的方法继续深入研究各种理论问题与实际应用领域的系统设计等工作,使计算机的应用在各个行业走向深入,而不是仅仅停留在用计算机进行各种行业的累积数据存储、管理、查询与联网通信等工作层面上,计算机图形学课程可以较好的承担这个重任,理由如下。
3.1计算机图形学是用计算机仿真的方法在计算机中实现三维图形的显示
计算机图形学教育的核心内容是:①通过建立描述自然景观(虚幻世界)的几何数据模型(包括其运动、变形与碰撞检测)、确定几何模型表面上每点的颜色与亮度的诸多物理数学模型(灯光模型、颜色模型、照明模型、物体表面的材质模型与纹理模型等)、显示图形的照相机模型与图像的融和算法等,或仿真光线在物体之间的相互传播以确定物体表面上每点的颜色与亮度进而在照相机中产生的显示效果(即光线跟踪算法、辐射度算法)或把光线传递的效果(即照片)映射至物体表面上所产生的显示效果(即纹理映射算法),以达到用编程的方法把这些模型的描述数据通过仿真算法转换成在计算机显示器中显示自然景观图像的目的。②在计算机图形学中,光线传播所涉及的所有物理现象均能成为计算机图形学的研究对象,它们构成了光线传播仿真实验所需要的仿真系统。③人们通过比较计算机生成的三维图形的显示效果与实际照片的差异,可不断提出用新的数学模型与仿真算法等对其已有的计算模型进行渐进改进,使计算机图形学的数学仿真过程不断的逼近现实物体模型(包括刚体、软体、流体、气体)的构造、运动和变形与反光效果的显示这一真实的物理变化过程。④即人们很好的用计算机仿真的4个典型过程――系统、建模、仿真算法、评估说明了各种图形在计算机中的生成过程。这里所谓仿真算法即把数学计算模型中模型描述数据的计算处理步骤与方法等用算法语句逐个描述,并用基本的数据结构方法动态地描述、保存待处理模型数据的代码集合,此仿真算法即读者学习计算机图形学课程后的主
要实习任务与练习。计算机图形学的上述全新定义与主要过程,很好地说明了该学科本质属计算机仿真的一种基本形式。
计算机图形学的教学内容很好的展示了科学计算的基本内涵。这是因为科学计算就是用计算机处理科学研究和工程技术中所遇到的数学计算问题,而计算机仿真是科学研究中常用的一种基本方法,计算机图形学属于计算机仿真的一种基本形式并在工程实践中有大量的应用,计算机图形学所涉及的各种建模都是各类数学工具与方法的具体应用,对计算机图形进行基本的运算处理即对数学模型进行各种处理,这种处理属典型的数学计算问题,由此首次证明了计算机图形学为科学计算的一种典型的具体应用形式与载体。当然,更全面的科学计算工具,可以通过学习Matlab软件来获得。
3.2计算机图形学课程讲授的程序设计基本方法对应用软件的开发具有重要的指导意义
所谓计算机程序设计即约定对多种类型的数据进行的各种处理方法,并用算法语言的语句正确地描述这种处理过程所形成的代码集合,这通常被简称为“程序设计=数据结构+算法”。这里有几个问题是该定义所应包含的内容:①该程序设计定义所涉及的数据与处理方法是数学模型的映射,它不是从天上掉下来的。归根到底,数学模型是应用程序设计的基础;②程序编码之前,要理清这多个数学模型之间的相互关系、特别是它们是否能有效的解决用户待解决的问题;③编程的代码是固定的,应提交给计算机并被计算机执行;而用户待处理的问题通常用模型数据来描述,显然程序自动运行所涉及的数据处理流程也是程序设计必需全面考虑的基本问题,这个数据处理流程一般不被上述各数学模型所包含。即要用编程的方法处理用户提交待解问题的模型描述数据、在计算机内存中保存并动态管理这些模型的描述数据、编程处理这些模型描述数据并保存运算处理之后的结果数据、最后输出显示整个问题的处理结果,这4个基本过程是一个完整自动运行的商业软件所具有的最基本的结构,它正确地反映了程序设计所涉及的软件系统与软件结构的基本概念。该内容的介绍是目前多数算法语言与数据结构课程所欠缺的,缺少大型应用软件编程训练的初学者一般缺少这种软件系统与软件结构的基本概念,这是导致初学者程序设计概念不全的原因之一。
计算机图形学的教学是这样解决应用程序设计的基本方法并使读者获得计算机自动生成图形的完整概念:①在计算机图形学中,由于二维图形的简单性,它非常适用于向初学者介绍软件系统的概念。二维图形主要是点、直线、曲线、实面积多边形与颜色等概念,它主要以数学上的几何模型表现形式出现在计算机显示屏中,文献[2]主要用线段图型的生成、实面积图形的生成、图形的基本运算(包括几何变换与集合运算)、图形的观察运算(相当于三维图形的照相机模型的功能)、图形的数据输入(包括编程输入数据、交互输入数据、文件输入数据)、图形的数据结构与数据处理流程等6章完整的讲解二维图形软件系统的概念,该内容很好的说明了“软件系统是一个能自动运行的综合执行程序,它能从输入、存储、运算处理、输出等方面全面处理用户在某个领域中解决特定问题而提出的诸多数学模型并完成其模型描述数据的加工任务,使用户很容易明确这种软件的组成、功能、使用范围与系统流程”。②三维图形学主要是用计算机仿真的方法实现三维图形的显示,而计算机仿真的关键在仿真模型的创建上,并理清各模型之间的相互关系。显然,三维图形中的几何模型(即点、线、面、体、场)的运动、变形与碰撞检测等能很好的表示现实世界中各种物体(物质)运动等物理概念,灯光模型、颜色模型、照明模型、物体表面的材质模型、纹理模型等能很好的描述物体表面各点的反光颜色与亮度等物理过程,或用光线跟踪算法、辐射度算法来仿真光线的传播过程以确定物体表面上每点的颜色与亮度,照相机模型能把场景中的物体三维几何模型描述数据投影变换成二维几何模型数据、裁剪超出显示范围的几何模型数据,并调用二维图形的生成算法等生成对应的图像显示效果、或把纹理照片映射致物体表面上所形成的显示效果;当物体的几何模型、灯光模型、照相机模型运动之后,并在照相机模型中连续显示对应场景中的图像,就是人们所期待的计算机动画效果。③编程实现时,利用二维图形所建立的软件系统的概念,把三维图形模型的数学描述方法转换成程序代码,并把模型的描述数据输入、存储到计算机约定的动态数据结构等图形文件中,再编程实现向动画师提供操作这些模型的运动、变形等控制方法与手段(即计算机动画中的数据运算处理方法),动画师等用户就能从最后的照相机模型中得到所期待的计算机动画结果,此即国内计算机图形学的基本教学内容。若用户实时操作这些模型运动并具有故事情节,还要求实时生成对应的计算机动画,同时配上声音、操纵杆(体验力反馈)等多媒体效果,加上联网功能,就形成了计算机3D游戏。3D游戏是对人类社会活动实现的一种仿真,该技术的重点在于对场景模型、多媒体数据与联网功能的实时动态管理与驱动(又称3D引擎技术)。
由此可见,计算机图形学的全部教学内容,很好地向读者贯彻了计算理论中已有的“可计算性的实现前提”的三个条件:①待解问题被系统与模型形式化方法所描述;②这些描述被转化成一个可执行的综合算法;③算法要有合理的复杂度。即通过计算机图形学的授课,能使初学者掌握数据计算类型的应用程序设计基本方法与计算机仿真过程的基本规律,这种教学内容对应用程序的设计具有普遍适用性与重要的指导作用。这一教育思想文献[2]中已经得到充分有效地展现。
3.3把计算机图形学作为计算机教育的公共核心课程,能弥补现行计算机教育中存在的多项不足
国内计算机图形学教育经过20多年的发展,其教学内容主要以“光线在自然界与照相机中的传播从而产生图形的显示效果”为主题进行计算机仿真与程序设计等相关教育,而目前美国人计算机图形学的授课内容主要还停留在图形标准的介绍上,他们没有把计算机图形学作为计算机学科的核心课程,这是因为他们把整个计算机图形学的相关学科内容划分过细,导致他们对计算机图形学在计算机科学中的作用与地位认识不到位所致。例如仅停留在算法的层面上介绍二维、三维图形的生成,而不是在数学建模这个各学科通识的层面上介绍计算机图形学所研究的各种问题与解决这些问题的方法,且人为地把计算机图形学的研究对象如物体几何模型的构建与其图形显示分解成计算机辅助几何设计与计算机图形学这两门课程,这直接导致图形学课程教学内容缺少被处理的图形显示对象,加之计算机基础课程与图形学的教育又没有软件系统的概念,这样安排虽然能满足图形标准等商业软件的发展需求,但却很难让初学者全面掌握计算机图形学学科系统性的概念、思想和方法与学科发展的基本规律。需要说明:①美国人这种图形学授课内容的不足在于它易给人这种印象:好像计算机绘图、信息数据的可视化就是计算机图形学的全部内容。事实上,显示各种图形是计算机图形学的最终目的,这种图形显示是程序数据输出的外在表现;而实现这种目的的基本原理、方法与编程过程等才是计算机图形学的内在本质,该内在本质是计算机仿真技术与应用程序设计的基本方法;图形标准是解决计算机图形学全部研究问题的一个子集,故图形标准很难承担向初学者介绍清楚计算机图形学发展基本规律的重任;②一门讲授图形标准原理课程的教学内容不能反映出美国人在计算机图形学上所取得的全部成果与教学水平,但这门课程讲授的计算机自动生成显示图形的概念不完整,却足以让初学者对该课程的学习丧失信心。实际上,读者只有用几何模型等数据调用图形标准并编程上机实习,才能获得计算机生成图形的概念。③由于美国人在计算机图形学上取得的绝对领先地位,他们的这种教育思想长期以来主导国际学术界(因为这促使计算机图形学朝通用实时图形显示这一专项计算工具方向快速发展并创造了巨大的商机),并深深地影响了国内外许多高校的计算机图形学教育工作者。照此传授该课程之后,人们觉得计算机图形学授课内容没有达到让计算机自动生成图形这一目的、这门课就讲授完毕,这似乎很难理解、并得出计算机图形学课程难教难学、不成熟的结论,甚至做出在计算机基础教学中取消对初学者传授计算机图形学基本知识的决定,这实为没有全部掌握计算机图形学学科体系的精髓。这是目前中外计算机图形学教育的主要差别。
计算机图形学是计算机学科应用的一个重要发展方向,学习计算机图形学课程之后,有利于读者向科学计算、计算机仿真、计算机辅助设计、信息数据的可视化、动画与游戏、虚拟现实、数字娱乐、数字设计与数字制造等计算机应用行业方向发展。事实上,根据本文对计算机图形学的新定义,计算机图形学就是这些计算机典型应用的专业基础课程,这些行业都是我国工业信息化产业的典型代表,遗憾的是这些计算机应用行业目前多都没有被包含在传统的计算机专业教育目录中。
显然,国内算法语言、数据结构、软件工程等课程的教学内容与方法非常成熟,计算机图形学课程的教学很好地将这些课程衔接起来,由此构成应用程序设计教育的完整教学体系。
4结束语
综上所述,是国内计算机教育体系的不健全导致国内计算机专业教学与应用发展的不平衡,这既与我们的计算机发展水平有关、也与我们计算机教育的指导思想对其应用不够重视有关。经多年的努力,我们在国内外率先健全并理顺了计算机图形学课程知识体系与教学内容,有效地克服了国外以图形标准作为计算机图形学授课的主要内容、由此带来人们对计算机图形学体系结构如研究对象、研究方法、编程实现、工业应用等问题认识不足而产生的局限性;而向学习计算机知识的读者普及计算机图形学的课程教学,可以为解决以往计算机基础教育不直接解决用户面临的实际应用问题这种尴尬、弥补现有计算机仿真与计算机程序设计等教育环节的缺失、使计算机应用程序设计从经验教学培养模式走向科学理念式教学培养模式、以及为国家工业信息现代化建设等数据计算类型应用问题的解决起一个较好的示范作用。
参考文献:
关键词:计算机图形学 教学改革 教学模式 案例材料
1. 引言
计算机图形学是研究如何在计算机中生成、显示和处理图形的一门学科。计算机图形学具有较高的实用价值,掌握它需要较深的理论基础,国内高等院校均设置了相关的本科课程。但是,由于各学校以及学校各专业之间培养目的、学生基础、师资配备以及课程安排等方面的差异,加之计算机图形学本身既需要较高的数学基础且需要很好的实际编程能力,使得学生在学习过程中普遍感到枯燥无味、无法吸收,难以达到应有的教学效果。本文分析了计算机图形学的课程特点及教学中存在的问题,对计算机图形学的教学改革进行了一些有益探讨。
2. 课程教学中存在的问题
计算机图形学是一门理论和实践兼顾、综合性很强的交叉学科,涉及内容和应用领域都很广泛。以下笔者根据自身的教学实践来阐述该课程教学过程中存在的一些问题。
(一)学习的积极性
对于接触计算机较多的学生而言,对计算机图形学的应用感受较为深刻,例如赏心悦目的动画、逼真的游戏场面等。学生初学本课程时,一般均有较高的兴趣,但随着课程学习的持续深入,发现课程理论艰深、晦涩难学,与期望值偏差较大,会逐渐影响学习的积极性。
(二)先修课程
先修课程内容的掌握情况直接影响着学生对计算机图形学课程的学习,先修课包括高等数学、线性代数、数据结构和程序设计课程。由于开课多安排在大学四年级,因而数学知识对学生学习该课程已经够用。本门课程实践性很强,程序设计课程知识对学生理解图形学算法并进行实验非常重要,掌握不好会使学生做实验时处处碰壁。 数据结构则用于描述图形内部结构,使用得当可由基本形体构建复杂图形。
(三)授课偏重理论
图形学课程内容庞杂,理论内涵丰富,数学公式繁多。要给学生讲清楚一个算法,需要从算法来源、图形实现建模到算法推导等方面着手。老师的很多精力放在了课程内容的讲授上,学生则被动灌输了大量知识,然而由于学时有限,学生不能全面动手进行实践巩固所学,因此最后对于课程的理解就只限于泛泛的概念了。计算机图形学是一门实践性很强的学科,上机实践是学好这门课的必要手段。但是,由于学时的限制,使原本很重要的实践活动变成了搭配,上机平台采用的多是目前已不作为主流平台的Turbo C,致使学生无法在实验中学到将来就业时需要掌握的编程知识,大幅降低学生的上机兴趣。
3. 教学改革
(一)科学使用教学模式
在计算机图形学课程教学中, 教学内容的选择是核心,其次是教学模式的选用。加强可视化多媒体教学,运用PPT、flash制作经典算法的仿真演示。该措施一方面可以使学生形象直观地理解教学内容,另一方面还可以增加教学的信息量,由此对教学带来的好处是显而易见的。电子课件制作应尽可能生动有趣、富有创意,尽可能多的准备与教学内容有关的多媒体素材。通过 flash 动画演示,把复杂枯燥的数学推导和算法描述成生动有趣的动画,激发学生的学习兴趣,提高学生的感性认识。传统的“粉笔+黑板”讲课模式也有优势,教师教授起来有声有色,可通过肢体语言感染学生,提高教师与学生之间的互动性。对于需要严谨逻辑推导证明以及需要学生思考的教学内容,采用传统教学模式的效果会更好一些。 比如,在讲解经典图形生成算法时,对数学推导过程,可以采用传统教学模式,这样便于学生理解,并能给学生留出足够的思考时间。面向教学的网络教学平台的使用,则为师生之间的课下交流提供了便利条件。为此,根据学校的实际教学条件,可采取以多媒体教学模式为主,辅之以传统教学模式,并注重利用课下网络教学平台模式。
(二)案例材料设计
为了培养学生的实践能力,有必要编写一套与教学内容、教学进度相适宜、与教材相配套的教学案例材料。该案例教材可以设计一个游戏场景为目标,贯穿整门课程从基本经典图形生成算法到高级光照渲染等内容,使得学生一步步通过编程实践,从易到难,有针对性的掌握教学内容。
(三)调整授课内容和方法
由于课程学时短,内容多,算法推导繁琐,因此可在教学过程中对于基本经典内容重点讲授,而相似性内容泛讲。如针对直线 Bresenham 光栅扫描算法的教授,可选择从算法的来源、数学建模、原理算法推导及实现等过程详细讲,而针对圆和椭圆等其它相似图形,则只讲清原理和关键技术点,让学生自己推导。这样的教学方式,不仅有助于学生掌握知识,有效的缩短学时,而且有助于培养学生独立学习的能力。图形学高级主题部分如真实感图形学等均有一定的深度和广度,每一个相关部分都可看做一个独立的研究分支,如果全部面面俱到,重点教授,不但学时不允许,学生接受难度大,也超出了一般教学大纲范围。对这部分内容,可选择少量内容深入讲,而对其它内容采用专题讲座的形式。比如对于经典的 Phong 光照模型,由于不是很复杂,只要讲授方法得当,学生不难理解。因此,可给学生讲清其原理、推导及应用局限性,并把它作为学生实验的一部分。考虑到部分学生对实验过程所依赖的内容如点积实现可能会有难度,因此应事先为学生准备好这些实验条件。 对于其它的高级主题,可采用讲座形式,并给出最新搜集的演示图片或视频,帮助学生扩大知识面,以备将来应用之需。针对高级主题,采用这样的教学方法,可以做到有点有面,适当地加大深度,确保教学任务的高效完成。学生不仅学到了必要的知识和方法,开阔了视野,体会到基本原理的应用过程和乐趣。
4. 结语
经过这些年的教学实践和探索,从教学反馈结果看,本文所提出的方法和措施学生普遍能够接受,明显地提高了学生学习的积极性,使得他们发自内心地意识到抽象理论学习的重要性。同时,在学习过程中学生们也主动加强锻炼自己的实践能力,大幅度的提高了综合能力水平。但是,应该看到,计算机图形学学科发展日新月异,如何科学合理地将最新的研究成果纳入到教学内容中,还需要在今后的教学和科研工作中不断的实践和探索。
作者简介