试论计算机图形学教育在国家信息现代化建设中的作用

2009-01-18 07:44魏海涛陈芳信蔡益朝宾雪莲鲁汉榕
计算机教育 2009年20期
关键词:计算机仿真计算机教育程序设计

魏海涛 陈芳信 蔡益朝 宾雪莲 鲁汉榕

摘要:全民信息化社会的建设,需要读者学习算法语言与数据结构方面的知识,更应该掌握计算机程序设计与计算机仿真的原理,这样才能使计算机在各行各业中的应用走向深入,才能搞好CAD与科学计算、提高生产效率、促进工业信息化的建设。本文针对国内计算机专业课程教学中存在的几个问题,提出用成熟的计算机图形学课程教学内容弥补这些不足,并使国内多年的计算机应用程序设计从经验式教学培养模式走向了科学理念式教学培养模式。

关键词:工业信息化;计算机教育;计算机图形学;计算机仿真;程序设计

中图分类号: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] 蒋宗礼. 加速计算机科学与技术专业转型改革 为我国新型工业化建设培养优秀人才[EB/OL]. [2009-02-12]. http://www. edu.cn/gzjx_7799/20090212/t20090212_358423.shtml.

[2] 魏海涛. 计算机图形学[M]. 2版. 北京:电子工业出版社,2007.

猜你喜欢
计算机仿真计算机教育程序设计
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
公安院校计算机课堂教学改革研究初探
构建具有专业美术院校特色的计算机课程教育
“平安金融中心”对深圳宝安国际机场容量影响的仿真研究
关于我国计算机教育MOOC发展的思考
实践与创新
不同进水口设计的冷热混合器计算机仿真