APP下载

三维可视化算法教学在程序设计课程中的应用研究

2014-07-16王梅亮

电脑知识与技术 2014年14期
关键词:三维可视化三维动画

王梅亮

摘要:算法是利用计算机解决问题的方法,是程序设计的灵魂和重要基础。但算法的抽象性使其一直为高校程序设计基础课程教学中的难点。利用三维动画技术和情景教学方法,将算法进行三维可视化,以三维动画的形式将算法思想和执行过程演示出来,可以帮助学生更好地理解和掌握算法,提高学生学习的积极性和学习效果。

关键词:三维可视化;算法教学;程序设计基础;三维动画

中图分类号:TP399 文献标识码:A 文章编号:1009-3044(2014)14-3355-03

Abstract: Algorithm is the method of using a computer to solve the problem and the soul of the program design and the important basis. But the abstractness of the algorithm makes it the difficulty of the program design foundation course teaching in colleges and universities. Using the three dimensional animation technology and situational teaching method, the algorithm for 3 d visualization will be in the form of the three dimensional animation algorithm thought and the implementation process, demonstration.They can help students better understand and grasp algorithm and improve the students' learning motivation and learning effect.

Key words: 3D visualization; algorithm teaching; Program design basis; three-dimensional animation

1 概述

程序设计基础是我国高校非计算机专业计算机基础教学体系中的重要组成课程之一。在教学实践中,这门课知识量大,理解层次深、实践性强 ,存在一定的教学难度[1],尤其是对于非计算机专业的学生,对算法的理解普遍感觉特别困难。而算法是计算机程序设计的灵魂,是人们利用计算机解决问题的方法。所以没有掌握算法,就设计不出真正能解决问题的程序;没有使用好的算法,也就不可能设计出好的程序。但是算法向来是计算机教学中的难点,这主要是由于算法描述的计算过程是抽象、动态的,一般算法教学方法很难解释这种过程。[2]特别是对于初次学习计算机程序设计的高校非计算机专业学生,利用传统的教学方法很难真正地理解算法思想,这直接影响学生对程序设计课程的学习兴趣和学习效果。

如果将算法过程通过三维可视化手段进行仿真 ,也就是用三维动画的形式形象地表现出来,帮助学生建立思维轨迹,加深理解和记忆[3],这将会在很大程度上提高学习效率。我们可以利用如3dmax或Maya等三维动画设计软件,将算法抽象的思想和原理用三维虚拟物体在有趣的场景中的运动逼真地模拟出来,直观和生动地将算法解决问题的方法和过程展现给学生,并配以文字和声音解说,就可以变抽象为具体,化枯燥乏味为生动形象,刺激学生的视觉和听觉,从而大大提高学生学习算法的效率和积极性,提高学生的学习程序设计的兴趣。

2 国内外三维可视化算法教学的研究现状

自1981年RonaldM.BaeCker在多伦多大学开发的第一个可视化的排序算法教学动画短片“Sorting OutSorting(SOS)”后,一系列的算法动画系统被连续的开发出来,有关算法动画和其在教学中的应用的研究在世界各地也逐步开展起来[4]。算法动画能有效的表达算法思想,有助于学生对算法的理解,在国内外的高校算法教学中取得了很好的效果。但是目前在国内的程序设计教学实践中使用的算法动画资源还十分缺乏,即使有个别老师偶尔采用动画来演示算法,其所用的动画也是普遍采用以FLASH制作的简单二维平面动画,其效果虽然比文字生动,但也还不能将动画的真正优势发挥出来。所以目前迫切需要设计和开发更加生动、形象和有趣的三维动画来演示算法。利用三维可视化资源进行算法教学,必将为“程序设计基础”课程的教学方式、方法改革带来巨大的促进作用。

3 三维可视化算法教学的意义

“一图胜千言”。如果能够将动画技术应用于我们程序设计的算法教学过程中,以动画的形式来表现各种算法思想,即算法动画,可以让学生在课堂上形象、直观地理解各种算法的思想和执行过程,而且学生在课后还可利用网络课程等根据这些可视化资源来学习和探索新的算法[5]。本研究以“程序设计基础(VB)”课程为例,以三维动画的方式开发出课程中常用的算法动画,并应用于教学实践中,其具有以下这几个方面的意义:

1) 为解决高校中非计算机专业学生学习程序设计基础教学过程中存在算法难教难学问题提供一种解决方案。

2) 有利于培养学生的学习兴趣和逻辑思维能力。算法动画能有效的表达算法思想,有助于学生对算法的理解,增强学生对算法的认识和兴趣, 有助于算法概念在学生长期记忆中的存储;其利用图标或其他可视化的方式,形象化的演示算法的执行过程,可以降低学生了解算法的难度;而且还可以有效的吸引学生的注意力;另外还可以培养学生的算法思维和逻辑思维能力, 促进学生的创新思维能力发展。

3) 为“程序设计基础”课堂教学观念的转变和教学方式、方法的改革提供了必要的条件。这种可视化的教学方法能生动形象的将原本枯燥抽象的算法内容展现给初学者 ,有助于学生对算法的认识,减少他们的畏难心理,提高教学效果。endprint

4) 有利于丰富网络课程的资源,提高网络课程的质量,便于学生课后利用网络课程的资源来学习和探索算法的执行过程。

4 三维可视化算法教学资源的建设和教学实施

本文主要在对国内外算法动画技术发展及其在可视化教学中的应用研究进行分析总结的基础上,根据程序设计基础课程(以VB程序设计为例)特点,结合认知科学、心理学和教育技术相关理论,利用三维动画技术,将“程序设计基础(VB)”课程中常用的算法以生动、形象的三维动画的形式展示出来,并且根据各算法的具体特点,设计出卡通人物、动物和其它的场景物体,并让这些角色在虚拟的场景中,模拟现实生活中或计算机环境下解决问题的具体方法,直观和形象地展示出整个算法的执行过程。然后将这些三维可视化的算法教学资源以恰当的方式应用于教学实践。具体研究的过程:

1) 三维可视化算法教学资源的建设。

在熟练掌握程序设计中常用的算法思想和执行过程的基础上,利用三维动画设计软件Maya开发和设计出逼真、形象的三维场景模型,并根据具体的算法设计出生动的动画,以表达该算法的思想和的执行过程,最后利用Premiere等后期处理软件对动画添加字幕等文字说明,并输出三维算法动画视频作品。比如VB程序设计中常用的“累加”算法(以sum=1+2+3+4+…+10为例):采用的是用一个For…next 循环结构对用于存放累加结果的变量sum以sum+a重复执行10次运算,每次进行上述加运算后还要对用于存放每次累加值的变量 a加1,具体的程序代码如下:

For i= 1 to 10

Sum=sum+a

a=a+1

next i

为此,本人以一只鸟来回运送鲜花到一个大箱子来模拟上述的算法过程。这里鸟的来回飞翔代表一次次的循环,每次所叼的鲜花数就相当于上述用于累加的值即a 的值,而最终用于存放鲜花的大箱子(制作成透明,以便学生观察其中的鲜花数)则模拟用于存放累加结果的变量sum,通过观察鸟每次飞过来将所叼的鲜花放在这个箱子里的鲜花数就可以让学生非常清楚的了解累加的过程。动画部分截图如图1所示:

另外如“冒泡法排序”算法,是利用在水中设计一组用于模拟不同大小数值的大小气泡的冒泡过程的动画来演示:第一趟将每相邻两个气泡比较,小的移到上面(上浮一个位置),经n-1次两两相邻比较后,最大的气泡(代表最大的数)已“沉底”,小的气泡(代表小的数)上升“浮起”;第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的气泡(次大的数)排在最大的气泡上面;依次类推,最后得到按气泡从大到小依次从下往上整齐排列的动画来模拟“冒泡法排序”算法的排序过程。

其它如“选择法排序”、“折半查找法”法等也都通过设计一个卡通角色的排序和查找等的动画来模拟和演示相应的算法思想和过程,这里就不详细论述。

2) 将三维动画技术与“程序设计基础”课程的课堂教学资源进行有效整合。

三维可视化算法动画制作好后,为了充分发挥这些资源的应用效果,还必须通过老师对课堂教学的内容和过程进行精心设计,根据上课的内容以适时和以恰当的方式将它们与“程序设计基础”课程的原有的课堂教学资源进行有效整合,应用于课堂教学实践中。

课前准备:首先老师在上算法课前要精心按照所制作好的三维可视化算法动画中的情景编好一个情景故事,然后将所要教学的算法思想文字说明通过PPT课件等形式准备好,最后将设计好的三维算法动画视频以链接的方式嵌入到课件当中。

教学过程:在开始上课时,老师可以针对本课要教学的算法所必需先掌握的基础知识进行简单复习,然后自然地利用课前准备的的情景故事导入本课的教学内容。比如数组排序的算法,首先可以简单复习一下数组的基本知识包括数组的定义、数组的输入和输出,然后介绍数组的应用,接着就很自然的利用现实生活中排序的情景故事。这时可以先问同学们是如何来排序的?接着可以让同学们先讨论并发表一下他们的排序方法,然后老师根据同学们发表的排序方法进行点评,最后指出排序算法的概念,并用介绍数组排序常用的选择法和冒泡法排序两种算法以及它们的算法思想,期间可以先用文字的形式讲解这两种算法,以便让同学们有一个系统的算法思想概念,然后展示三维算法动画让同学们进一步加深理解和记忆,并最终掌握相应的算法思想。这里要特别注意的是,在展示三维算法动画的过程中,老师最好一边播放一边进行讲解,再配合字幕解释,这样效果将会更好。

3) 根据学生反馈结果修改完善算法动画。

在完成算法课程的教学后,最好通过访谈或调查问卷等方式学生的学习效果和意见进行调查研究。老师通过对利用三维可视化算法教学后学生反馈的学习心得体会和建议意见等结果进行认真的总结,据此改进自己的教学方式和方法,并根据同学们的建议进一步修改和完善相应的算法动画资源。

5 结论

教学实践证明,借助可视化的思想、教学情境的设置和三维动画的技术设计制作的三维可视化算法,应用于高校的程序设计基课程的教学,可以使本身枯燥乏味和难以理解的算法知识的教学变得生动和直观有趣,帮助学生更加深刻地理解和掌握算法的思想和计算过程,进而提高学生学习积极性和学习效果。较好地解决了非计算机专业学生学习程序设计算法时难以理解和掌握的问题。

参考文献:

[1] 金秋, 裴斐.Flash动画技术在《Visual Basic程序设计》课程教学中的应用与实践[J].数字技术与应用,2011(4):163-163.

[2] 孙永新,闫大顺.动画演示与算法教学研究[J].现代计算机(专业版),2009(10):81-83.

[3] 陈中,钟平.动画在网络课程设计中的应用策略探究[J].当代教育理论与实践,2012(3):73-74.

[4] 戴松,许冉,周忠.基于 HTML5 的算法动画可视化平台[J].系统仿真学报, 2013(10):2436-2443.

[5] 金明梅.算法动画在高中算法教学中的应用研究[D]. 金华:浙江师范大学,2011.endprint

猜你喜欢

三维可视化三维动画
三维动画技术及其在动漫中的应用分析
论三维动画特效数字模拟真实性与艺术性的结合
中国水墨画在三维动画设计中的应用
基于三维可视化技术的云冈石窟文化传播策略研究与实现
基于ArcScene平台的电子沙盘制作
让三维动画走进幼儿语言教学
浅谈三维动画在建筑行业中的应用
浅析3ds Max与Zbrush数字三维动画的发展