论文部分内容阅读
一、引言
《数据结构》是计算机专业的核心课程,是从事计算机软件开发及应用人员应当必备的专业基础,并已成为计算机软件考试的必考课程之一。《数据结构》是电大开放教育计算机科学与技术专业本科生的一门必修课程。它的研究对象为问题求解方法、程序设计方法及一些典型数据结构的算法。掌握好这门课程的内容,是学习计算机其他相关课程的必备条件。该课程采用支持传统面向过程的开发模式和先进的面向对象开发模式的C++语言作为算法的描述语言,强化数据结构基本知识和面向对象程序设计基本能力的双重训练。将为后续的《数据库系统》、《操作系统》、《编译原理》等专业课程的学习打下坚实的基础。因此,如何提高数据结构的教学效果成了计算机专业教师不断研究的课题。
二、数据结构教学方法的改革
《数据结构》是一门需要精心思索的课程,现已成熟的算法已经让学生难以理解,更不要说改进和创新。所以,在教学工作中,应对算法作尽量简洁的理论分析,更多地结合具体问题的求解来分析算法的基本思想。因此,一般情况下在算法分析之前先提供一组测试数据,让学生跟着数据在程序中的处理流程得出最后的运行结果,再让学生去理解算法的思想理论,变理性认识为感性认识。但数据结构教学中最大的困难是学生无法实际看到教师在课堂上用口头所教授的算法,而必须通过脑海中执行静态的程序代码来理解数据结构的动态变化。
那么,如何将数据在程序中的动态执行过程呈现给学生呢?实践证明采用演习教学法是突破数据结构课程教学难点的行之有效的方法之一。教学实践中,演习教学法的多媒体技术支持也在不断地更新和变革。早期,为说明程序的流程采用的基本上是程序流程图(如N-S图),或在具体开发环境中让数据在程序中执行,但这种方法要么只能用于分析算法的思想理论,要么只能给出程序的运行结果。后来,又有些教师通过PowerPoint幻灯片或Flash动画来简单呈现数据在程序中的动态执行过程,其简单性也是由于这些工具本身在这方面的编程能力太低引起的,基本以图例为主。但在课程所要解决问题或观念越来越复杂时,利用图解或举例则无力说明。而教材在呈现这些内容时也有多方面的限制,例如由于受到篇幅的限制常只呈现关键概念的图示,算法细节部分只能省略,学生在阅读时,必须靠自己的想象力去补足省略的细节过程;另外,学生只能依照教材所提供的数据去执行算法而无法更改,这对有意探索不同情况下算法执行差异的学生是一项困扰。可视化软件正好解决了教师教学与教材内容呈现上所遇到的困境,并在实施演习教学法过程中越来越明显地表现出它的优势。实践证明,利用可视化教学软件来呈现数据在程序中的动态执行过程,教学效果最为明显。
三、什么是可视化教学软件
所谓可视化是指在计算机软件和多媒体资料的帮助下,将被感知、被想象、被推理的事物及其发展变化的形式和过程,用仿真化、模拟化、形象化、现实化的方式,在教学过程中尽量表现出来。可视化教学可以使学生直观地观察、体验、发现、干预、利用这些生动的、信息化了的知识模型,从而使学生形象地建立起客观世界和主观世界、存在与运动的本质属性图像,自然地培养和造就学生的认知能力和创新能力。
可视化教学在数据结构教学过程中所表现出的优点有:1.可视化教学软件不像教材那样枯燥乏味,教师可以利用它来吸引学生的注意力;2.可视化教学软件可将文字、数据、图片、影片动态地整合在一起;3.可视化教学软件可以让学生体会在大量不同的数据结构下,算法执行效率的差异;4.学生在课后可利用可视化教学软件探索算法的执行过程,提高学生个别化学习能力。
四、可视化教学软件的具体应用
2001年我校理工科教研组完成了省级立项课题《数据结构(本科)网络教学课件》,并通过专家组鉴定。在该网络版教学课件的电子教案中我们利用Java语言的网络编程能力实现了数据结构中所有算法的演示动画,共计37个,软件操作界面如图1所示。该软件运行环境要求非常低,在Intemet Explorer浏览器上即可运行,操作界面友好,人机交互能力强。如图1所示,这是直接插入排序算法的可视化操作界面,左边部分给出了一组默认的测试数据(也可以由学生自行输入),让学生体会算法在不同数据下执行效率的差异。在状态栏中对程序的动态执行过程给出相应的提示,最重要的是在左边部分呈现出了数据逻辑结构的动态变化过程,这一变化过程与右边部分的程序语句执行状态相关联。当程序再次执行到语句Lst.Vector[i]=temp;(用蓝色块标注)时,数据在逻辑结构上也正找到了待排序数据中第5个数据“25”的插入位置(用‘↓’和‘??’符号标注),并准备插入。在操作控制上,根据学生个性差异的不同特设置了“自动执行”和“单步执行”按钮,使用自动执行功能可以让学生完整地感受算法的执行效果,而使用单步执行功能可以让控制者自行调节算法的执行速度以适应学生的理解能力。并且,这些动画演示软件都具有重复执行的功能,教师或学生可以反复运行软件,只需要进行简单的初始化处理即可继续使用。
这种网络版可视化教学软件在国外应用非常普遍,另外,单机版形式的可视化教学应用软件的使用也很多,如清华大学研制的可视化数据结构教学软件,效果如图3所示。该软件与其他单机版软件一样需要安装,与上所述的网络版软件相比,该套软件运行速度快、功能更加完善和强大、数据状态呈现更详尽,软件的容量也非常小,包括一个2.43MB的应用软件和多个总容量为3.32MB的图片等辅助性文件。并且,这套软件可适用于两种算法描述语言的可视化教学:Pascal语言和C++语言,在使用之前只要作简单的选择即可。在呈现数据逻辑结构和程序语句执行状态的关联时。所用方法与上所述网络版软件一样,如图2和图3所示,这是希尔排序算法的可视化操作界面。首先,要求操作者确定一组测试数据,可以生成特殊数据如本身具有升序或降序性质的,也可以由软件随机生成,也可以由操作者自行输入,完成后进人算法的执行界面。从界面控制按钮的设置可以看出,该软件功能非常完善,它不但有自动执行和单步执行功能,还有暂停、跟踪、定位(执行到)、恢复、断点等功能,更全面地适应了学生的不同学习要求。在数据逻辑结构的动态变化过程呈现方面也做得更加到位,可视性也更加强大,可以全屏显示。它不但给出了柱状图等更形象的数据大小表现手法,还模拟出了程序在计算机执行过程中数据变量在内存中的当前值,如图3右下部分所示。其次,动态呈现了其他关键概念的数据计算过程,如排序算法要求学生能够学会计算的算法一次执行后数据的比较次数和移动次数。
五、可视化教学软件性能比较
我校自行开发设计的网络版可视化教学软件由于当时人力物力所限,编制的模型界面太小,不能全屏显示,因此不利于算法的全貌浏览。在呈现数据逻辑结构和程序语句执行状态的关联时也没有反映出数据在内存中的变化。由于当时没有对教材上所列程序语句进行整理,以致程序的执行流程与数据的关系变化不能详实地反映出来,如有些循环语句,一行内就包含了整个循环过程,语句的状态一直停止不动,只看见数据在孤立地演示,这对初学者的学习是很不利的。这样,在细节上还需要学生通过自己的想象力来解决学习问题。清华大学研制的单机版可视化教学软件由于缺少相应的文字说明,在没有结合教材的学习情况下是不能很好地用于自学的,更没有“随身听”一样的便携能力,这也是单机版软件的一个普遍缺点。
这两套软件都有一个共同的问题,就是当算法的描述语言有所修改或者当教材改版时,整个软件就要重新开发。我们现在根据教学需要正准备对原软件进行修订,并学习可视化软件新的开发设计观念以增强原软件的操作功能。
六、小结
我们根据软件自身特征,将《数据结构》的这两套可视化教学软件分别挂在学校网站精品课件栏目和电大在线平台上。网络版软件需要电大师生通过身份注册,以不同的权限登录使用,而单机版软件打包后挂在电大在线平台上供学生自行下载、安装和使用。这两个教学软件为学生,尤其是工学矛盾问题比较严重的学生提供了很好的学习支持服务。其中,网络版软件自开放教育计算机科学与技术本科第二届学生就开始使用,当时我们就以该软件为在线学习平台来开展《数据结构》课程的网上教学,使用情况良好。另外,由于部分学生上网条件较差,因此向他们推荐了清华大学研制开发的《数据结构》单机版可视化教学软件。虽然该单机版软件中演示的算法程序语句也同样与所用教材上的存在区别,但由于该软件操作方便、功能齐全,仍受到学生的欢迎。目前,在教学过程中,我们仍利用该软件使学生对数据结构算法思想建立起感性认识,变抽象为形象。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
《数据结构》是计算机专业的核心课程,是从事计算机软件开发及应用人员应当必备的专业基础,并已成为计算机软件考试的必考课程之一。《数据结构》是电大开放教育计算机科学与技术专业本科生的一门必修课程。它的研究对象为问题求解方法、程序设计方法及一些典型数据结构的算法。掌握好这门课程的内容,是学习计算机其他相关课程的必备条件。该课程采用支持传统面向过程的开发模式和先进的面向对象开发模式的C++语言作为算法的描述语言,强化数据结构基本知识和面向对象程序设计基本能力的双重训练。将为后续的《数据库系统》、《操作系统》、《编译原理》等专业课程的学习打下坚实的基础。因此,如何提高数据结构的教学效果成了计算机专业教师不断研究的课题。
二、数据结构教学方法的改革
《数据结构》是一门需要精心思索的课程,现已成熟的算法已经让学生难以理解,更不要说改进和创新。所以,在教学工作中,应对算法作尽量简洁的理论分析,更多地结合具体问题的求解来分析算法的基本思想。因此,一般情况下在算法分析之前先提供一组测试数据,让学生跟着数据在程序中的处理流程得出最后的运行结果,再让学生去理解算法的思想理论,变理性认识为感性认识。但数据结构教学中最大的困难是学生无法实际看到教师在课堂上用口头所教授的算法,而必须通过脑海中执行静态的程序代码来理解数据结构的动态变化。
那么,如何将数据在程序中的动态执行过程呈现给学生呢?实践证明采用演习教学法是突破数据结构课程教学难点的行之有效的方法之一。教学实践中,演习教学法的多媒体技术支持也在不断地更新和变革。早期,为说明程序的流程采用的基本上是程序流程图(如N-S图),或在具体开发环境中让数据在程序中执行,但这种方法要么只能用于分析算法的思想理论,要么只能给出程序的运行结果。后来,又有些教师通过PowerPoint幻灯片或Flash动画来简单呈现数据在程序中的动态执行过程,其简单性也是由于这些工具本身在这方面的编程能力太低引起的,基本以图例为主。但在课程所要解决问题或观念越来越复杂时,利用图解或举例则无力说明。而教材在呈现这些内容时也有多方面的限制,例如由于受到篇幅的限制常只呈现关键概念的图示,算法细节部分只能省略,学生在阅读时,必须靠自己的想象力去补足省略的细节过程;另外,学生只能依照教材所提供的数据去执行算法而无法更改,这对有意探索不同情况下算法执行差异的学生是一项困扰。可视化软件正好解决了教师教学与教材内容呈现上所遇到的困境,并在实施演习教学法过程中越来越明显地表现出它的优势。实践证明,利用可视化教学软件来呈现数据在程序中的动态执行过程,教学效果最为明显。
三、什么是可视化教学软件
所谓可视化是指在计算机软件和多媒体资料的帮助下,将被感知、被想象、被推理的事物及其发展变化的形式和过程,用仿真化、模拟化、形象化、现实化的方式,在教学过程中尽量表现出来。可视化教学可以使学生直观地观察、体验、发现、干预、利用这些生动的、信息化了的知识模型,从而使学生形象地建立起客观世界和主观世界、存在与运动的本质属性图像,自然地培养和造就学生的认知能力和创新能力。
可视化教学在数据结构教学过程中所表现出的优点有:1.可视化教学软件不像教材那样枯燥乏味,教师可以利用它来吸引学生的注意力;2.可视化教学软件可将文字、数据、图片、影片动态地整合在一起;3.可视化教学软件可以让学生体会在大量不同的数据结构下,算法执行效率的差异;4.学生在课后可利用可视化教学软件探索算法的执行过程,提高学生个别化学习能力。
四、可视化教学软件的具体应用
2001年我校理工科教研组完成了省级立项课题《数据结构(本科)网络教学课件》,并通过专家组鉴定。在该网络版教学课件的电子教案中我们利用Java语言的网络编程能力实现了数据结构中所有算法的演示动画,共计37个,软件操作界面如图1所示。该软件运行环境要求非常低,在Intemet Explorer浏览器上即可运行,操作界面友好,人机交互能力强。如图1所示,这是直接插入排序算法的可视化操作界面,左边部分给出了一组默认的测试数据(也可以由学生自行输入),让学生体会算法在不同数据下执行效率的差异。在状态栏中对程序的动态执行过程给出相应的提示,最重要的是在左边部分呈现出了数据逻辑结构的动态变化过程,这一变化过程与右边部分的程序语句执行状态相关联。当程序再次执行到语句Lst.Vector[i]=temp;(用蓝色块标注)时,数据在逻辑结构上也正找到了待排序数据中第5个数据“25”的插入位置(用‘↓’和‘??’符号标注),并准备插入。在操作控制上,根据学生个性差异的不同特设置了“自动执行”和“单步执行”按钮,使用自动执行功能可以让学生完整地感受算法的执行效果,而使用单步执行功能可以让控制者自行调节算法的执行速度以适应学生的理解能力。并且,这些动画演示软件都具有重复执行的功能,教师或学生可以反复运行软件,只需要进行简单的初始化处理即可继续使用。
这种网络版可视化教学软件在国外应用非常普遍,另外,单机版形式的可视化教学应用软件的使用也很多,如清华大学研制的可视化数据结构教学软件,效果如图3所示。该软件与其他单机版软件一样需要安装,与上所述的网络版软件相比,该套软件运行速度快、功能更加完善和强大、数据状态呈现更详尽,软件的容量也非常小,包括一个2.43MB的应用软件和多个总容量为3.32MB的图片等辅助性文件。并且,这套软件可适用于两种算法描述语言的可视化教学:Pascal语言和C++语言,在使用之前只要作简单的选择即可。在呈现数据逻辑结构和程序语句执行状态的关联时。所用方法与上所述网络版软件一样,如图2和图3所示,这是希尔排序算法的可视化操作界面。首先,要求操作者确定一组测试数据,可以生成特殊数据如本身具有升序或降序性质的,也可以由软件随机生成,也可以由操作者自行输入,完成后进人算法的执行界面。从界面控制按钮的设置可以看出,该软件功能非常完善,它不但有自动执行和单步执行功能,还有暂停、跟踪、定位(执行到)、恢复、断点等功能,更全面地适应了学生的不同学习要求。在数据逻辑结构的动态变化过程呈现方面也做得更加到位,可视性也更加强大,可以全屏显示。它不但给出了柱状图等更形象的数据大小表现手法,还模拟出了程序在计算机执行过程中数据变量在内存中的当前值,如图3右下部分所示。其次,动态呈现了其他关键概念的数据计算过程,如排序算法要求学生能够学会计算的算法一次执行后数据的比较次数和移动次数。
五、可视化教学软件性能比较
我校自行开发设计的网络版可视化教学软件由于当时人力物力所限,编制的模型界面太小,不能全屏显示,因此不利于算法的全貌浏览。在呈现数据逻辑结构和程序语句执行状态的关联时也没有反映出数据在内存中的变化。由于当时没有对教材上所列程序语句进行整理,以致程序的执行流程与数据的关系变化不能详实地反映出来,如有些循环语句,一行内就包含了整个循环过程,语句的状态一直停止不动,只看见数据在孤立地演示,这对初学者的学习是很不利的。这样,在细节上还需要学生通过自己的想象力来解决学习问题。清华大学研制的单机版可视化教学软件由于缺少相应的文字说明,在没有结合教材的学习情况下是不能很好地用于自学的,更没有“随身听”一样的便携能力,这也是单机版软件的一个普遍缺点。
这两套软件都有一个共同的问题,就是当算法的描述语言有所修改或者当教材改版时,整个软件就要重新开发。我们现在根据教学需要正准备对原软件进行修订,并学习可视化软件新的开发设计观念以增强原软件的操作功能。
六、小结
我们根据软件自身特征,将《数据结构》的这两套可视化教学软件分别挂在学校网站精品课件栏目和电大在线平台上。网络版软件需要电大师生通过身份注册,以不同的权限登录使用,而单机版软件打包后挂在电大在线平台上供学生自行下载、安装和使用。这两个教学软件为学生,尤其是工学矛盾问题比较严重的学生提供了很好的学习支持服务。其中,网络版软件自开放教育计算机科学与技术本科第二届学生就开始使用,当时我们就以该软件为在线学习平台来开展《数据结构》课程的网上教学,使用情况良好。另外,由于部分学生上网条件较差,因此向他们推荐了清华大学研制开发的《数据结构》单机版可视化教学软件。虽然该单机版软件中演示的算法程序语句也同样与所用教材上的存在区别,但由于该软件操作方便、功能齐全,仍受到学生的欢迎。目前,在教学过程中,我们仍利用该软件使学生对数据结构算法思想建立起感性认识,变抽象为形象。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。