动态交互式数据结构CAI课件设计
2009-11-04张以文金莹李炜王爱平
张以文 金 莹 李 炜 王爱平
【摘要】对现有《数据结构》CAI软件作了简要的分析,介绍了开发动态交互式CAI课件的优势,通过具体案例的设计,说明交互式数据结构CAI课件在教学方面的直观性和趣味性,激发学生的开发热情,提高教学效果。
【关键词】数据结构;CAI
【中图分类号】G420 【文献标识码】B【论文编号】1009—8097(2009)10—0117—02
引言
“数据结构”自上世纪六十年代形成一门独立的课程以来,被视为计算机专业的核心课程之一[1]。“数据结构”是计算机程序设计的重要理论和技术基础,它所涉及的内容和方法,无论是对学习计算机领域的其他课程,还是对从事软件项目的开发都有着重要的作用[2]。课程的学习目标就是培养学生的数据抽象能力以及培养他们具备基本的、良好的程序设计技能,可以编制高效可靠的程序,为后续课程的学习如“操作系统”、“编译原理”、“算法分析与设计”等奠定基础。然而,“数据结构”课程是大多学生学习过程中的拦路虎,该课程内容丰富,学习量大,隐藏在各内容中的方法和技术多,贯穿于全课程的链表存储结构和递归技术令大多学生望而生畏,概念抽象,难于理解[3]。如何提高“数据结构”课程的教学质量一直是教育者研究的重要课题。在教学中通过合理使用现代化教学手段使教学效果更加直观,编制多媒体教学课件和演示程序,使书本上静态的内容以生动、形象、直观的动态形式展现在学生面前,充分发挥学生的观察力、想象力,促进学生的求知欲,增强教学的趣味性,提高学生的辨析能力,引导学生的学习兴趣,激发学生的学习积极性,使学生更为轻松、愉快、高效地获取知识,发展思维,形成能力,可以让本来抽象的内容变得很容易理解,既消除了学生的畏难情绪,也提高了学生的学习兴趣,强化教学效果。
一 CAI课件设计分析
“数据结构”课程的CAI课件的研究与制作已经得到了很多教育工作者的高度重视,也研制出了较多的CAI资源,但是,现有的CAI资源也暴露了其自身的诸多问题:
(1) 现有的CAI资源大多是针对“数据结构”课程中的部分章节,或是针对某章节中的固定问题,数据预先设定,演示过程中学生不能更改演示数据,演示呆板,效果不佳;
(2) 虽然现有的CAI资源对学生理解固定算法有一定的帮助作用,但演示时间过长会分散学生的注意力,可能会使“上课”变成了“看课”;
(3) 现有的CAI资源内容分散,各有侧重,资源整合程度不高等。
因此,“数据结构”课程CAI资源的整合和高水平的软件制作显得尤其重要。在我们前期的工作中,已经积累了良好的基础,研究制作的多媒体高教软件《数据结构-排序》获得了省高教多媒体教学软件一等奖,得到了同行的认可,为我们后续的工作奠定了很好的理论和实践基础。
动态交互式CAI课件的优点体现在以下几个方面:
(1) 动画演示中用到的所有数据,学生可以任意输入,根据不同的数据特点,学生可以进一步理解算法的内在原理;
(2) 所有演示动画演示过程都是可以自主控制的,可以根据课程安排合理安排演示时间和进度;
(3) 所有动画都有源程序,因为动画本身就是用所演示算法的核心代码来实现的,可以实现资源共享,学生在欣赏动画帮助理解算法原理同时,可以在“数据结构课程设计”实验课程中进一步来分析相应算法,既加深学生的理解又激发学生自己动手开发的热情;
(4) 动画设计我们选用了flash软件,算法实现采用flash Action Script脚本语言加以实现,学生在实验过程中,即可以对动画本身涉及的算法加以实现或验证,还可以进一步理解面向对象程序设计的概念和基本原理,有利于分层实验教学,为接受能力较强的学生提供了进一步展示才华的机会等。
因此,动态交互式CAI软件的设计不仅可以帮助学生理解“数据结构”课程中的算法本身,也可以刺激学生主动开发的热情,提高学生编写代码的能力,也符合现代计算机教育课程改革的要求。
二 数据结构CAI案例设计
1 软件环境
软件环境选用Macromedia公司的flash,该软件的优点不言而喻:向量绘图、简易的动画制作、无缝的Web结合和强大的Action Script脚本语言。
2 案例分析-快速排序
快速排序(Quick Sort)是一种有效的排序算法[4]。虽然算法在最坏的情况下运行时间为O(n2),但由于平均运行时间为O(nlogn),并且在内存使用、程序实现复杂性上表现优秀,尤其是对快速排序算法进行随机化的可能,使得快速排序在一般情况下是最实用的排序方法之一。
(1) 数据登陆界面设计
登陆界面设计力求美观简洁,通过设计动态文本框来输入书本示例数据或自定义数据。排序动画展示过程中可以控制动画进度,正常演示时间约为3分钟,数据录入界面如图1所示。
在该动画的实现算法中,start按钮事件的主要代码如下:
On(release)
{
text = new String();
text = inputtextvalue://inputtextvalue为动态输入文本框
datearray = new Array();
datearray = text.split(“,”);
//用户输入数据分离保存到数组datearray中,输入数据间用“,”分隔
count = datearray.length;//count存储输入元素个数
}
(2) 课本源码执行过程动画演示设计
通过动画演示课本算法源码执行次序以及中间临时变量的产生和释放过程,帮助学生进一步理解算法的原理,随着动画演示的进行,高亮阴影会随着代码的执行而移动到相应的代码后面,临时变量中值的变化也随之动态变化。如图2所示。
(3)快速排序算法主要 Action Script
在实验课程中通过向学生展示和共享Action Script脚本源码,可以激发学生的开发热情,Action Script脚本实现的本身就是快速排序算法的实现,但有别于课本源码,在开发过程中引入了动态文本框、按钮、指针等对象的概念,有助于帮助学生对面向对象程序设计理论的理解。部分主要的Action Script脚本代码如下:
// Action script
i = 1;
j = _root.count;
//初始化指针变量
if (tempval2 >= tempval1)//后向和前向指针所指对象的值
{
_root.copy.value = “≤”;
if (i < j)
{
gotoAndPlay(23); //指针移动演示动画
}
else
{
gotoAndPlay(102);// j = j – 1同时修改各节点坐标值
}
}
else
{
_root.copy.value = “>”;
gotoAndPlay(28);// 改变基准节点
}
if (i < j)
{
_root.copy.value = "";
_root. Notice = “以i为指针从左向右进行扫描”;
with (_root.jiedian0)
{
gotoAndPlay(4);//初始化基准节点
}
tellTarget("_root.jiedian" + i)//指向影片剪辑对象_root.jiedian+i
{
gotoAndPlay(4);
_root.cmp.cpx1 = _x;
_root.cmp.tempvalue1 = value;
} // End of TellTarget
gotoAndPlay(60);
}
else
{
gotoAndPlay(106);
coordx = cpx = cpx2;
_root.Notice = "i==j基准记录已定位";
}
三 总结
在现今计算机教育改革的大环境下,CAI系统将显示出越来越重要的作用。“数据结构”交互式CAI课件实现了用户可任意输入数据,自主控制演示进度等功能,具有良好的交互性,在教学中具有较高的应用价值。在以后的研制工作中将进一步完善设计,在教学过程中加以运用并跟踪调查教学效果,期望能够启发学生开发思维,激发学生开发热情。
参考文献
[1] 殷人昆,邓俊辉.清华大学”数据结构”精品课程建设[J].计算机教育,2007,(5):19-20.
[2] 杨桂芝.”数据结构”教学方法探索与实践[J].计算机教育,2007,(3):7-8.
[3] 刘玉兰.数据结构辅助教学系统的设计与实现[J].现代教育技术,1998,(4):19-20.
[4] 严蔚敏.数据结构[M].北京:清华大学出版社,2005:274-277.