桂 颖,陆 玲,王 蕾
(东华理工大学,江西抚州 344000)
计算机图形学主要研究计算机表示、处理和绘制图形的原理及算法,其课程特点是以算法为核心,学生在掌握了基本图形生成算法原理后,通过编写算法实现程序来加深对图形学基本内容的理解[1]。
近几年来本人一直从事该课程的理论和实践教学,在教学过程中发现,该课程教学必须要处理以下两大问题。
(1)教师如何更加方便、直观地向学生讲授计算机图形学书本中各种复杂、难懂的经典算法的原理与实现,并使学生更好地理解,是教学中亟待解决的重要问题之一。
(2)学生即使理解了算法,但是对于如何编程实现算法,往往还是束手无策,如何理论联系实际,更好地培养学生的编程实现能力,是教学中亟待解决的重要问题之二。
归纳起来,这两个问题即为:“学”和“练”。
近几年,在基于教学辅助平台建设的计算机图形学的教学改革中,大多采用的是建立教学演示系统或构建课程网站的方式。前者主要方便于教师教学,后者注重于学生自主学习及测试,但它们大多都存在以下问题。
(1)演示系统没有根据课程的讲授内容、教学重点与难点等去设计演示界面和具体功能,从而不能更好地将算法所涉及的重要知识点按照教学的正常过程展现出来[2-3]。
(2)演示系统没有更好地结合教师的教学设计和教学实施过程,进行演示效果的设计[4]。
(3)自主学习网站的特点是仅列出课程的教学内容、相关教学资源、试题或习题库[1][5]等。学生在利用网站上的测试系统(模块)进行测试时,最多只知道自己最后做的结果是否对错,并不知道中间过程的对错。而计算机图形学的特点是大部分都是综合性的算法,掌握算法步骤是非常重要的,因此,仅进行简单的测试是不够的,学生并没有真正地掌握每个算法的步骤。
针对上述问题,本文提出一种新的教学改革措施:设计一个计算机图形学算法演示与训练平台,该平台是《计算机图形学》课程的面向教师课堂教学以及学生自主训练的教学辅助平台,主要包括计算机图形学算法的动态演示子平台和算法自主训练子平台两大部分。
立了基于教学设计的动态演示子平台
动态演示子平台的作用是将书本上那些晦涩、复杂的算法清晰明了地演示出来,实现了计算机图形学算法的可视化,将算法执行过程动态地演示出来,使学生在学习算法的时候直接“看到”算法的执行过程或结构,更好地理解计算机图形学中各种经典算法的原理。
然而,动态演示子平台并不是单纯地将计算机图形学的算法实现过程动态可视化,作为教学的辅助平台,它必须结合课堂实际教学过程,将算法所涉及的重要知识点按照教学的正常过程展现出来。
本算法动态演示子平台具体研究与实现内容如下。
(1)依照课程教学任务,设计子平台功能结构。根据计算机图形学课程的教学任务,设计了动态演示子平台总体功能,其演示内容包括三大部分。
课程基础知识演示:涵盖了教学大纲中要求学生掌握的绝大部分算法,包括计算机图形学中的教学重点和难点内容的演示。
教师科研成果演示:引入教师的科研课题和成果,如水果、花朵、蔬菜等造型的生成演示。
学生创新项目演示:将历年学生进行的优秀创新研究内容进行演示,增强学生的学习兴趣,激发他们的科研动力。
(2)根据课程教学内容,设计演示界面与具体功能。根据课程的讲授内容、教学重点与难点,设计了演示界面与具体功能。以Bezier曲线的生成为例,课程的讲授内容主要包括:曲线的性质、曲线的递推算法、曲线的拼接、曲线的升阶与降阶,针对这些课授内容,子平台都设计了相关界面与具体演示效果。
(3)按照不同教学方法,设计各种演示效果。在课堂教学中,针对不同的知识点,教师会采用不同的教学方法。以曲线的生成为例,有两种基本算法:Bezier曲线算法和B样条曲线算法。在课堂上讲解的时侯,学生往往不能理解这两种算法之间的差异。为了使学生对不同算法之间的区别有更直观的了解,课堂讲解时会采用对比讲解方式,对此,系统设计了算法对比演示功能,效果如图1所示。
图1 算法对比演示功能示意图
通过对比演示,学生很明显能看出在同样的控制多边形情况下,Bezier曲线算法和B样条曲线算法生成的曲线(红色曲线)的差异所在。
计算机图形学的特点是大部分都是综合性的算法,并且到了后期,算法难度加大,步骤增多,程序设计不易实现。必须建立训练子平台,使学生掌握每个算法的步骤。
算法训练子平台将复杂的算法进行拆分,让学生分步骤进行重点训练,对学生的训练具有算法流程的特色。更有效地培养了学生的编程实践能力。
本算法训练子平台具体研究与实现内容如下。
(1)深化教学理念:教学理念是教学的核心,要深化“计算机图形学”的教学理念,注重人才培养模式的改革,以学生各方面的能力培养为中心,构建实用有效的学习训练平台[6]。
(2)构建训练体系:根据计算机图形学的教学大纲,将理论与应用紧密相结合,注意学生的基本技能与创新能力的培养,构建“计算机图形学”课程的训练体系[7]。
(3)设计训练项目:平台的训练项目既要注重基础,又要体现创新,还要结合实际应用[8]。本算法训练子平台设计了三类训练项目。
基础训练项目:主要是计算机图形学中的教学重点内容,且算法步骤固定的算法。
实际应用项目:是结合具体的应用,相当于具体的实例,训练学生解决实际应用问题的能力。
创新训练项目:是训练学生的创新能力,系统提出问题,由学生自主解决问题,并提出新思路与新方法。
(4)分解训练步骤:将复杂的算法进行拆分,按步骤设计训练题,学生分步骤进行重点训练。
(5)重点代码编写:通过重点代码的设计与编写,锻炼他们编程实现算法的能力。
(6)反馈训练结果:对于每一个算法,针对学生训练过程中存在的问题进行归纳总结,形成学生的训练结果,在结果中得出学生存在的问题及其相应的知识点。
教学辅助软件的首要目的是传递教学信息,提高教学效率,不仅要有助于教师的教学,还要有利于学生的学习。
本平台并不是单纯地将计算机图形学的算法实现过程动态可视化,作为教学的辅助平台,它结合课堂实际教学过程,将算法所涉及的重要知识点按照教学的正常过程展现出来。在设计的过程中,不仅涵盖重要演示功能,如以网格点模拟像素点、静态演示与动态演示结合、演示的暂停与继续、动态间隔时间的设定,而且还创新性地设计了一些特色功能,如相同图形(如曲线)不同算法对比演示。在以往的教学过程中,学生对于同一图形的不同算法实现的理解多半停留在理论上,通过在同一界面对这两种算法进行对比演示,学生就能非常容易地理解其不同和优劣之处。
计算机图形学的特点是大部分都是综合性的算法,并且到了后期,算法难度加大,步骤增多,程序设计不易实现。算法训练子平台将复杂的算法进行拆分,让学生分步骤进行重点训练,对学生的训练具有算法流程的特色。更有效地培养了学生的编程实践能力。
培养具有实践能力和富有创新意识与创新精神的人才是高校教育的核心和目标。对此,笔者以科研渗入教学作为切入点,结合科研和学科优势,引入教师的科研课题和成果,如水果造型的生成演示,增强学生的科研兴趣,引导部分学有余力的学生进行科研训练,将科研成果转化为他们的实验内容,培养他们实践和创新能力[8]。
交互性是教学软件的一大特点和优势,本平台在设计的过程中不仅实现了算法演示过程步骤的静态提示,更为重要的是,对于较为复杂的算法演示过程,设计了动态步骤提示,也就是说,系统会自动提示并规范下一步的操作,用户操作非常方便。此外,系统还可以自动判断和规范用户的输入数据的合法性。
本文探讨了《计算机图形学》课程教学改革的思路,由此构建了理论与实践并行的算法演示与训练平台,重点强调了计算机图形学算法的“学”和“练”,使学生不仅更加深入地理解了计算机图形学中各种经典算法的原理与实现过程,同时,他们的动手实践能力也得到较大的提高。
目前,该算法演示与训练平台作为本人参与编著的《计算机图形学》教材的配套软件,被许多高等院校应用在《计算机图形学》课程的理论和实践教学中,反应良好。
[1]曾嵘,李世霖,肖满生.关于计算机图形学教学模式的探讨[J].牡丹江大学学报,2012,21(1):177-182
[2]苏小红,李东,唐好选.面向能力培养的“计算机图形学”课程教学方法[J].计算机教育,2010(3):47-51.
[3]罗圣敏.计算机图形学算法可视化教学研究与实现[J].广东技术师范学院学报:自然科学版,2011(1):84-86.
[4]江玉珍.计算机图形学算法可视化教学演示系统的构建[J].现代计算机:专业版,2011(28):44-46.
[5]王海涛,赵永科,饶运涛.关于实现创新“3+1”班良性发展的几点思考[J].东华理工大学学报:社会科学版,2012,31(2):191-193.
[6]刘瑞明.基于教学演示系统的计算机图形学教学实践[J].科技信息,2009(35):57-58.
[7]王振武.《计算机图形学》教学方法探究[J].电化教育研究,2010,31(5):170.
[8]于涛,饶火瑜,李发亮.理工专业大学生自主学习情况调查与分析[J].东华理工大学学报:社会科学版,2011(3):280-282.