基本信息
- 项目名称:
- 《编译原理》课程网络演示系统
- 来源:
- 第十二届“挑战杯”省赛作品
- 小类:
- 信息技术
- 大类:
- 科技发明制作A类
- 简介:
- 由于《编译原理》的理论及算法都比较抽象,要理解它们并不容易。这里就是结合了可视化技术把算法的过程都以图形化的方式显示出来,使这此算法更容易被理解了。想想看,如果把它作为辅助教学的,抽象的算法过程都以图形化的方式直接显示出来,学生就可以快速的理解算法的思想及过程,从而大大的提高学习效率以及教学效果。
- 详细介绍:
- 编译原理在计算机科学中占有重要地位,所以基本上每个学习计算机科学的人都需要学习它。通过学习这些原理,就能更加了解各种高级语言的运行机制,就能编写出更为高效的程序。可见该演示系统有较大的需求: 1、潜在用户面广:现在从事计算机以及学习计算机专业的人员数量广大,而编译原理是每个学习计算机科学的必修课,可以看出潜在用户之多。 2、学习效果好:编译原理过于抽象,要理解其算法并不容易。而现在通过可视化技术以直观的方式来演示其算法的过程,学习的效果比以前的学习方式有很大的提高。 3、用途较广:该系统既可用于辅助教学,也可以方便人们自学编译原理,还可以作为一个工具快速求解所涉及算法的结果。 如今,只有设计良好的算法动画演示才能有效帮助学生学习算法的观点已基本被人们普遍接受。那么,什么样的算法动画演示系统才是良好的算法动画演示系统呢? 许多算法动画演示系统的研究者对此提出了自己的建议或见解[5]。譬如,Gloor认为应在算法演示中显示函数的结构和提供交互性,Faltin建议在图形演示中插入文字说明, Mille关注演示图形模型的选择,Fleischer觉得算法的不变特性可视化很重要,还有一些研究人员提出应将算法正确性、效率、速度等特性可视化。总的来说,这些研究人员大多是从系统实现的角度出发,围绕着某些具体技术特点来讨论良好算法动画演示系统的特征,提出建议的时候往往忽视了其应用局限性。而算法学习的特点是,不同算法学习过程的认知重点不一,也许以上某个建议对某个特定算法的图形演示设计很重要,对另一个却不然。 好的算法动画演示系统设计应该遵循认知规律,从认知主体的学习需要出发,关注如何合理描述算法学习重点,而不是过分推崇某条技术的应用。据此,关于如何设计良好的算法动画演示系统,以下四个原则也许是恰当的: 1、合理选择算法演示中使用的记号和它们的可视化组织结构[2]。首先,算法演示中使用的记号直接影响学生学习算法的效率,如外部记号系统和学生意想中的记号形式不匹配的话,那么这两种表示间的连续映射和翻译将给学生的工作记忆带来额外负担。其次,记号的组织结构也很重要,认知科学的研究发现,在学生识别图形结构的能力和学生运用图去解决问题的能力之间存在着强大的关联,因此,在算法演示中如使用标准图形结构,如“环”等,可以激起学生对该图形结构的一些规则的联想,从而加快推理速度,增强对算法特性的理解。 2、提供交互和图形演示跟踪。作为认知主体的学生对图形表示方法的熟悉程度直接影响算法动画演示的效果。如同快速运算法的学员通过训练学会使用算盘模型作为认知的内部表示一样,学生也可以通过培训逐步接受算法演示中的图形表示。好的图形演示应提供交互和演示跟踪功能,学生使用这些功能一方面可以更轻松地熟悉算法过程,另一方面可以加深对算法演示中的图形表示方式的理解,锻炼图形应用技巧。 3、对算法过程进行适当程度的抽象,使之能与不同算法演示任务的需求以及学生的能力相适应[2]。学生能力肯定是有差异的,如果算法动画演示系统能提供不同形式的抽象表示,那么学生就能如其所愿选择其一,这样做体现了因材施教的思想,可以提高演示的效果和学生学习算法的兴趣。有些算法动画演示过分强调源代码跟踪演示,殊不知真正有多少算法初学者愿意通过阅读源代码去学习算法,忽略了算法学习主体要求的演示注定很难达到预期的效果。 4、适当结合包括文本在内的多种表示形式设计算法演示。譬如,在算法演示过程中穿插适当的文本解释还可以帮助总结算法执行的中间结果,减轻学生的记忆负荷。而且,在建立算法的认知模型时,单一的图形表现方式往往难以描述算法学习中的需要理解的所有算法特性,在有些情况下,文本描述对于算法过程的理解甚至是不可或缺的。近年来,国内外有不少算法动画演示系统采用超媒体技术将多种表示形式结合在一起演示算法,极大地提高了学生的学习效率。
作品专业信息
设计、发明的目的和基本思路、创新点、技术关键和主要技术指标
- 编译演示系统说明 演示程序在程序文件夹中,打开index.html文件即可运行。 运行环境:(IE6.0 或 FireFox) + JRE1.6(Java Runtime Environment Version 6 Update 2) JRE可在以下网址下载: 其他内容详见C.当前国内外同类课题研究水平概述
科学性、先进性
- 可视化并非是一个新的概念,其使用面也非常广。但它作为一门新学科和技术领域出现的标志是1987 年美国科学基金会NSF组织召开的“科学计算可视化”专题研讨会,以及会后McCormick等人所发表的“科学计算可视化”(VisualizationinScientificComputing,ViSC )报告。现在也称为科学可视化(ScientificVisualization),或简称为可视化 (Visualization)[2]。 最近几年国外与可视化相关的论文就有600多篇,其中涉及的领域众多,如娱乐、军事、航天、设计、生产制造、信息管理、商贸、建筑、医疗保险、危险及恶劣环境下的遥操作、教育与培训、信息可视化以及远程通讯等。同时可视化的理论和技术日趋成熟,尤其在流体力学、气象学、医学、分子图形学和石油地震勘探等计算中获得典型应用[2]。
获奖情况及鉴定结果
- 无
作品所处阶段
- 软件完善中。
技术转让方式
- 无
作品可展示的形式
- 图片,网站,视频等。
使用说明,技术特点和优势,适应范围,推广前景的技术性说明,市场分析,经济效益预测
- 由于不同算法学习过程的认知重点各有差异,算法内部表示方式不一,其外部表示形式对学习效果影响比较大,如算法演示的演示内容和 形式没有经过认真调查分析,设计不合理,则会导致算法动画演示的效果不佳,达不到帮助学生理解算法的作用。这可以用来解释Byrne的调查结果,说明只有设计良好的算法动态演示系统才能有效促进学生算法学习。 许多实验研究者支持好的算法动画演示具有促进算法教学作用的观点,有些研究者还进而提出一些关于提高算法动画演示效果的具体建议,指出算法演示的应用环境也可能影响算法演示的教学效果。Kehoe[3]通过实验研究发现,算法动画演示不仅能有效地促进算法过程活动的学习,而且可以减轻学生对新算法的畏惧心理,使算法更容易接近,从而增加学生学习动力。Kehoe还发现,与封闭的考试类型的境况比较,学生在开放、交互环境下(如做课后练习时)使用算法动画演示教学的效果更佳。
同类课题研究水平概述
- 我国科学计算可视化技术的研究始于90年代初。由于数据可视化所处理的数据量十分庞大,生成图像的算法又比较复杂,过去常常需要使用巨型计算机和高档图形工作站等。因此,数据可视化开始都在国家级研究中心,高水平的大学,大公司的研究开发中心进行研究和应用。近年来,随着PC功能的提高,各种图形显卡以及可视化软件的发展,可视化技术已扩展到科学研究、工程、军事、医学、经济等各个领域[3]。随着Internet的兴起,信息可视化技术更是方兴未艾。但从总体上来说,与国外先进水平还有差距,特别是在商业软件方面,还是空白[3]。 近10年中有不少人研究算法可视化的原因之一是算法可视化有着众多的应用,例如:作为教学的有力工具、作为算法设计和分析的工具、作为调试程序的工具、其它方面的许多应用,如计算几何、操作系统、硬件设置、编译系统、专家系统和通讯协议等。 是不是有了算法动画演示,就一定能帮助算法初学者掌握算法呢?认知科学的研究表明,问题并不是那么简单。有不少实验研究人员研究算法动画演示对学生理解算法的影响,Byrne[1]等调查了其中一部分,发现这些研究的结果混乱不堪:有的研究结果显示算法动画演示让学生受益匪浅,有的研究结果显示学生受益有限,达不到人们的期望值,更有的研究结果显示学生根本没有从中受益。Byrne质疑算法动画演示的作用,认为在这些研究中帮助学生学会算法的关键因素并不是图形演示,而是其他的因素(他认为是学生对算法执行动作的预测)。如果确如Byrne所言,那么这对算法动画演示的倡导者就是一个沉重打击。