学课程交互式算法演示系统的开发与应用

更新时间:2024-01-25 作者:用户投稿原创标记本站原创 点赞:6441 浏览:20716

摘 要:学课程是一门抽象复杂、学习枯燥、学生反映难度太大的课程.在充分地对学习者做了需求分析的基础上,针对如何增强课程的有效性、趣味性和应用性的教学难点,设计开发了学课程交互式算法演示系统.以DES算法为例,介绍了算法演示过程的动态性和交互性以及数据输入的灵活性等特点.系统解决了现有算法演示系统动态性差、缺乏交互以及难以在算法和动画间建立关联等问题,在实际教学应用中对改进教师的教授方式以及帮助学生更好的掌握复杂的学算法,取得了很好的教学效果.


关 键 词 :学;DES算法;动画演示;直观演示;教学应用

中图分类号:TP391.9 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.06.003

本文著录格式:[1]黄新平.学课程交互式算法演示系统的开发与应用[J].软件.2013,34(6):8-12

0 引言

学课程是计算机专业信息安全方向的主要课程之一,该课程的主要目的是让学生能够学习、理解和掌握一些常用算法的加密和解密原理.但由于学算法的原理过于抽象和复杂,以至于很多学生在学习这些算法时往往感到比较困惑,进而容易产生厌烦的学习心理,从而使其学习的主动性和积极性也受到了一定的影响.[1]其中,造成学算法教学困难的原因主要有如下几点:首先,教材中涉及算法讲解的内容不够详细,多是一些关键概念的图示,缺乏对算法的详细描述;其次,算法的执行过程对学生而言是透明的,学生无法直观的观看到算法的执行过程以及算法执行过程中相应数据结构的动态变化情况;最后,在传统的教学模式下,教师借助黑板和演示文稿等教学资源对算法只能进行抽象的语句讲解和静态的算法描述,而不能进行直观的交互操作和动态的过程演示.

为了解决以上教学难题,人们提出了算法演示的概念,所谓的算法演示,就是把算法的运行与数据结构的变化有效的联系起来,不仅能够让学生观看到算法的执行过程,还可以让学生观看到算法相应数据结构的动态变化情况及结果.[2] [3]基于这一思想,进行了学课程交互式算法演示系统的设计与开发,该系统在充分利用Windows编程面向对象和可视化技术优势的同时,又整合了Flash、Activex等技术,在很大程度上弥补了现有一些算法演示系统在动态性、交互性、灵活性以及算法和动画之间关联性等方面的缺陷.实践证明,该系统在学课程的实际教学应用中有效的促进了课程教学质量的提升.

1.系统的设计与实现

学课程中的关键算法主要有DES、3DES、AES等算法,鉴于这些算法演示系统的实现方法相似,以下仅以DES算法演示系统的实现为例来对整个学课程交互式算法演示系统的设计与实现进行说明.

1.1 需求分析

1.1.1 功能需求

为了能有效增强学课程算法教学的有效性、趣味性和应用性,要求系统能够实现如下几个方面的功能:一是实现DES算法整个加密过程与解密过程的直观演示;二是实现DES算法的动态交互演示;三是实现算法与动画的关联演示;四是可以利用DES算法对任何格式的文件进行加密以及对相应加密文件的解密.

1.1.2 学习者需求

为了能更好的促进学习者的学习,要求系统在实现以上功能的基础上,还应满足如下几个方面的学习者需求:首先,系统的界面设计一定要简洁,必须以方便学习者操作为原则,保证学习者能够在有限的时间内,就可以很好的掌握系统的界面操作;其次,允许学习者自由的输入数据,确保学习者可以观看到不同输入情况下的算法执行过程,以便能更好地理解算法的原理;最后,考虑到学习者接受知识的速度存在差异,因而可以通过调整算法演示执行时的延迟时间,来由学习者自主控制算法演示的速度,进而可以让学习者自行掌控算法的学习进度.[4]

1.2 开发工具和开发方案

1.2.1 开发工具

本系统的开发主要采用了Borland C++ Builder 6.0、Flash和Activex等工具.其中,Borland C++ Builder 6.0的开发环境中具有完善的软件开发工具,其事件驱动编程机制可以使软件开发人员高效地开发出基于图形用户界面的可视化应用程序;Flash是一款功能强大的多媒体制作工具,制作出来的动画非常生动形象,而且利用它所支持的ActionScript脚本编程所编写的特定程序,可以很好的实现用户对动画的交互控制;Activex作为一个开放的集成平台,可以有效实现不同应用程序的整合.

1.2.2 开发方案

(1)本系统主要用于实现DES算法的直观演示,这就要求开发工具能够有效解决算法的运行逻辑问题,而Borland C++ Builder 6.0所提供的事件驱动编程机制可以很好的解决这一问题,[5]因此,可以用其进行系统主体框架以及算法直观演示功能模块和算法应用功能模块的开发.

(2)为了使系统能够很好的实现算法的动态交互演示,可以充分利用Flash及其所支持的ActionScript脚本编程技术在交互式动画制作方面的优势来进行算法动画演示功能模块的开发.

(3)利用Borland C++ Builder 6.0开发环境所支持的Shockwe Flash这样一个Activex控件来实现系统主体框架与算法动画演示功能模块的整合.

1.3 系统结构和模块的设计实现

1.3.1 系统结构

系统包括DES算法直观演示、DES算法动画演示、DES算法应用和系统帮助四个功能模块,而DES算法直观演示模块又可划分为DES加密过程演示、子密钥生成过程演示、迭代加密过程演示、DES解密过程演示、迭代解密过程演示五个功能子模块.其中,系统结构图如图1所示: 图1 系统结构图

1.3.2 模块的设计实现

(1)DES算法直观演示模块.该模块作为整个系统的核心模块,其各功能子模块的设计实现介绍如下:

①DES加密过程演示子模块.在该模块中,学习者根据系统的提示,在获取明文的静态文本编辑框中任意输入8个字符的明文后,系统将根据输入字符的ASCII值将明文以二进制和十六进制的形式显示,然后将64位二进制的明文经初始置换表IP置换,将置换后的数据进行16轮迭代加密运算,并依次输出各轮迭代加密运算的结果,最后将16轮迭代加密运算的最终结果经逆初始置换表IP-1置换,置换后输出的结果即为加密后的密文,到此系统便完成了DES加密过程的直观演示.[6]

②子密钥生成过程演示子模块.该模块不仅可以实现参与16轮迭代运算的每轮子密钥的随机动态生成,而且还能够以参与第一轮迭代运算的子密钥的生成为例,进行子密钥生成过程的直观演示.

③迭代加密过程演示子模块.该模块以第一轮迭代加密运算为例,从获取参与第一轮迭代加密运算的数据到生成参与第二轮迭代加密运算的数据为止,给出了第一轮迭代加密运算过程的演示.

④DES解密过程演示子模块.与DES加密过程演示子模块相似,整个DES解密过程的直观演示流程是模块获取待解密的密文后,将密文以二进制和十六进制的形式显示,然后将64位二进制的密文经初始置换表IP置换,将置换后的数据进行16轮迭代解密运算,并依次输出各轮迭代解密运算的结果,最后将16轮迭代解密运算的最终结果经逆初始置换表IP-1置换,置换后输出的结果即为解密后的明文.

⑤迭代解密过程演示子模块.同迭代加密过程演示子模块一样,该模块以第一轮迭代解密运算为例,给出了第一轮迭代解密运算过程的演示.

(2)DES算法动画演示模块.该模块通过Shockwe Flash这样一个Activex控件在系统中集成了一个Flash动画,这样就能够将制作好的用于DES算法演示的Flash动画加载到该中,然后学习者就可以根据上的控制按钮对DES算法的动画演示过程进行交互控制.

(3)DES算法应用模块.该模块可以实现文件加密和文件解密两项功能,其中,文件加密功能用来实现DES算法对任意格式文件的加密,文件解密功能用来实现DES算法对相应加密文件的解密.

(4)系统帮助模块.该模块为学习者提供了系统的帮助信息查询功能,学习者可以通过该模块来详细的了解系统的操作方法.

2.系统的特点

2.1 动态性和交互性

系统的动态性和交互性主要体现在子密钥生成过程演示和DES算法动画演示两个模块上,其中子密钥生成过程演示子模块可以实现子密钥的随机动态生成,学习者只需要点击图2中的“生成随机子密钥”按钮就可以动态生成初始种子密钥,同时学习者还可以根据自己的需要来对动态生成的初始子密钥进行修改;DES算法动画演示模块中所集成的Flash动画可以实现DES算法的动态交互演示,学习者可以根据自己接受知识的速度,通过点击图3中的“播放”、“暂停”、“上一步”以及“下一步”等相关控制按钮就能够对DES算法的动画演示过程进行很好的交互控制.

2.2 灵活性

学习者可以在DES加密过程演示模块中获取明文的静态文本编辑框内自由灵活的输入数据,如图4(a)和图4(b)所示,可以在获取明文的静态文本编辑框中任意输入8个字符.这样就能够让学习者从不同的角度来对DES算法的运行过程进行分析和理解,从而可以使学习者通过观察不同输入情况下的算法演示过程来更好的理解DES算法的原理.

2.3 算法和动画之间的关联性

系统可以同时打开DES算法直观演示和DES算法动画演示两个功能模块,只需在DES算法直观演示和DES算法动画演示两个模块中设置相同的明文和密钥,就可以有效实现算法和动画之间的关联.如图5(a)所示,在获取明文的静态文本编辑框中输入与图5(c)所示的DES算法动画演示所采用的相同明文“security”.同样,如图5(b)所示,在获取初始密钥的文本编辑框里输入与图5(c)所示的DES算法动画演示所采用的相同密钥“12345678”.然后在逐步进行DES算法直观演示的同时,通过点击DES算法动画演示模块中所集成的Flash动画上的相关控制按钮来控制DES算法动画演示的进度,实现DES算法直观演示和动画演示的同步关联.

2.4 应用性

系统可以通过DES算法应用模块对任意格式的文件进行加密以及对相应加密文件的解密处理.如图6所示,学习者通过点击“DES文件加密解密应用说明”按钮,可以根据系统的提示说明进行文件加密与解密的演练操作,进而可以让学习者在掌握DES算法原理的基础上,对DES算法的实际应用有一个深刻的认识.

3.系统的教学应用

3.1 教学应用说明

系统的实现为学课程增添了一项非常重要的教学资源,其中系统的教学应用可以使学课程算法的教学按如下四个步骤来依次进行:

(1)教师根据教材上的文本算法为学生进行静态的算法描述、讲解和分析,让学生对算法的原理有一个初步的了解.

(2)教师借助黑板和电子演示文稿以图示的方式为学生讲解算法的原理,从而可以在原来的基础上,使学生对算法的原理有一个较为深刻的认识.

(3)教师通过该系统进行算法的演示教学,首先,利用算法直观演示功能模块,来逐步进行算法的直观演示;其次,运用算法动画演示模块进行算法的动态交互演示;最后,同时使用算法直观演示和算法动画演示两个功能模块来进行算法和动画的关联演示,通过以上演示操作来使学生很好的理解算法的原理.

(4)教师完成以上教学任务后,学生可以根据自己的实际学习情况对系统进行操作和演练,通过自己的动手操作和演练来更好的掌握算法的原理.在掌握算法原理的前提下,学生可以通过系统的算法应用模块来进行文件的加密和解密操作,进而帮助学生实现算法理论理解和实践应用的有效结合. 3.2 教学应用意义

3.2.1 从教师方面来看

系统的教学应用,一方面丰富了学课程的教学资源,实现了课程教学方法的多元化,对改进教师的授课方式发挥了重要作用;另一方面实现了传统教学方式与数字化教学手段的有效结合,帮助教师实现了传统的“以教促学”的教学方式向注重学生“自主学习”的教学方式的转变.

3.2.2 从学生方面来看

首先,系统实现了抽象算法的直观化和动态化的交互演示,帮助学生克服了算法学习的心理困惑,增强了算法学习的自信心;其次,对于数据的获取,系统提供了动态灵活的数据输入模式,从而可以让学生从多个角度来分析和思考问题,这对培养学生多角度综合分析问题的能力具有非常重要的意义;最后,系统除了可以实现算法的演示功能外,还提供了算法的实际应用功能,这样就可以使学生在掌握算法原理的同时对算法的实践应用也有了深刻的体会,对培养学生理论联系实践的意识,发挥了重要作用.

4.结论

学课程交互式算法演示系统的开发充分发挥了Windows编程和Flash技术的优势,有效的解决了当前一些算法演示系统在设计上所存在的问题.在实际的教学应用中,系统不仅可以作为教师课堂讲解算法的教学辅助工具,还可以作为学生课下自主学习算法的学习工具.系统的教学应用为学课程创设了数字化和支持学生自主学习的新型教学环境,很好的解决了学课程算法教学的难题.鉴于该系统在学课程教学中所取得的显著效果,很有必要将该系统的设计思想以及系统的教学应用方法在计算机其他相关课程如数据结构、计算机图形学以及操作系统等课程的算法教学中得以推广.

相关论文范文