刍议在中职程序设计课程中插入加密算法的探索
2015-11-21茅海琼
茅海琼
(广西钦州农业学校 广西钦州 535099)
刍议在中职程序设计课程中插入加密算法的探索
茅海琼
(广西钦州农业学校 广西钦州 535099)
中职程序设计课程的理论性和实践性都比较强,本文分析了在程序设计课程的教学中存在理论教学和实践教学等问题,如何解决上述问题,从而使学生对这门课程产生学习的兴趣。文章提出了在程序设计课程中加入加密算法的意义和方法。
程序设计 加密算法 教学 意义 方法
程序设计课程的理论性和实践性都比较强,是计算机应用专业必修课程,如果这门课掌握不好,将会影响后续课程的学习。然而初学者对程序设计还很陌生,也没有能建立正确的编程思维。因此,如果不能较好地开展该课程的教学内容,很容易使学生产生厌倦甚至害怕的心理。
一、中职计算机专业程序设计教学中存在的问题
(一)课堂教学中存在的问题
1.学生的因素。长期以来,学生对理论课程存在两种心理:畏难心理和无用论心理。计算机理论课程所涵盖的内容非常抽象,难以理解。而中职学生的基础相对较差,对计算机方面的术语理解较差。
2.教师的因素。一是在讲授程序设计课程中的一些理论知识时,语法、语句讲的太多、太细,程序设计课程本身就枯燥、严谨、难理解;二是最常用的教学方法就是演示法,教师边讲边演示,学生边听边看边做。采用这种“填鸭式”方法进行教学,忽视了学生的主体地位,忽视了启发学生的创新思维;三是教学目标存在问题,经常出现“教师讲完了、学生记完了、下课也忘完了”的怪现象,甚至出现“瞌睡虫”倒下一大片的情景,都是置学生的感受于不顾。
(二)实验教学中存在的问题
为了能让学生掌握前面所讲的理论知识,检验和提升理论教学效果,教师会采用相应的案例给学生进行讲解及编程,然而这一环节中却存在比较多的问题:
1.在讲解程序案例时,教师没有更多地从学生角度去思考问题,而是一拿到例子,就从头到尾地进行讲解,而忽视了案例中基本问题的求解过程。
2.学生进行程序设计时没有与一些电脑公司或者相关企业合作过,缺乏实际工作的能力。
3.部分教师仍然是重视理论知识教学,忽视实践教学,讲授理论知识后,随便指定几道实习题,让学生自行上机实习。另外,部分学生对上机实习欠缺积极性、主动性,随便应付,迟到、早退、缺席等现象屡见不鲜。
正因为这些问题的存在,不但使学生产生厌倦,甚至产生抵触的心理。如何解决上述问题,从而使学生对这门课程产生学习的兴趣。我们分别从在该课程中加入加密算法的意义和方法等方面来讲述。
二、在程序设计课程中加入加密算法的意义
1.加密算法的定义与过程
1994年,剑桥计算机实验室的David Wheeler、Roger Neelham设计了一个微型加密算法,即加密(Tiny Encryption Algorithm)算法。加密算法实现简单,加密解密速度快,是一种简单高效的加密算法。以下两种算法分别为加密算法的加密和解密过程。
加密算法每一次可以操作8个字节,密钥采用16个字节,采用迭代的形式实现.。加密算法由于实现简单,加密速度快,常被一些保密性要求不高的系统采用,比如QQ等聊天软件的登录加密就是采用了这种加密算法来实现的。
2.程序设计课程中加入加密算法的意义
加密算法是编程算法中一个比较简单,并且容易理解的算法,学生比较容易掌握。笔者在教学过程中,采取新奇且有“刺激”的教学手段,抓住学生的“成就感”和“自豪感”的心理:将一个加密解密程序加密算法编排穿插在教学内容中,学生很感兴趣,大大提高了学习该课程的兴趣,并取得了良好的教学效果。
加密过程如图1:
解密过程如图2:
三、中职计算机专业程序设计课程中加入加密算法的方法
1.教学模块的划分
中职计算机专业程序设计课程内容主要由以下几个模块组成:(1)程序设计的概念及思想;(2)结构化程序设计;(3)图形用户界面;(4)文件与IO流;(5)应用小程序、数据库。为了鼓励全体学生都能参与课程的教学与学习活动中,调动每一个学生的学习积极性与能动性,使每个学生都有事做、想做、会做、喜欢做。因此,笔者设计了一个教学思路,如图3:
2.激发兴趣,重建信心
教育学家乌申斯基说:“没有兴趣的强制性学习,将会扼杀学生探索真理的欲望。”没有兴趣就没有求知欲,只有有了学习兴趣才能在枯燥的学习过程中体会到乐趣。并且使每个学生多了一点成就感,少了一点挫败感,这样才会在一次次的赞美声中重建信心。为了激发学生兴趣,重拾学生信心,笔者采取了如下方法:
在如前所述的这几个部分中都以一个简单的加密解密算法加密穿插在这些教学活动中,如上图,一开始学习程序设计的概念和思想时,学生对这些程序设计的概念不是很理解,笔者要求学生编写一个加密类,该类有加密、解密等成员方法,让学生将前面的结构化加密算法改成Visual Basic6.0的方法。通过自己动手编写程序,学生逐渐竖立了类、对象、构造方法、继承、重载等概念,也逐渐竖立了程序设计的编程思维。
进入第二部分,即结构化程序设计过程的学习中,首先介绍程序设计的基本概念,比如基本数据类型,顺序结构,选择结构,循环结构,数组等,将这些基本概念介绍完之后,再描述加密算法的基本流程,然后让学生将该算法用VB语言来实现。
由于已经将算法详细地介绍给了学生,因此学生只是将该算法用VB语言来表现并上机进行验证,当同学们的程序运行通过,并发现可以将输入的一些字符加密成功,输出结果是与原来输入结果完全不同的字符时,他们获得了成就感,并感觉到自己也可以加密信息了,从而对这门课程产生了浓厚的兴趣,并盼望进一步的深入学习。
第三部分图形用户界面是学生最感兴趣的,因为之前编写的程序其运行结果都是千篇一律,看不出什么效果,只知道程序运行成功了,加密解密完成了,而图形用户界面以图形的方式显示出运行效果,从视觉方面引发了学生的成就感。在这一阶段的教学中,要求学生将之前编写的加密解密程序改成图形用户界面,需要运用各类组件和布局组织自己的程序运行界面,还需要编写菜单和各类触发事件。当需要对一个文件进行加密时,需要运用打开文件的对话框选择待加密的源文件,以及存放加密完成后的目标文件。
第四部分开始讲述文件与IO流,此时,要求学生不是对某个数据加密解密,而是将整个文件加密解密,编程难度加大了,学生的兴趣也随之加大加深了。在编写程序过程中,学生对前面章节学过的如循环、字符串、数组等概念又得到了复习。当学生第一次将一个文件加密成功后,他们的欣喜是由衷的。
讲述小应用程序和数据库的时候,也是要学生继续完善加密加解密文件,比如用网页方式显示加密解密过程和效果,在加解密过程中添加进度条等。
当该课程的内容学习完成后,学生也有了自己的第一个加密系统。学生在编写自己的加密系统的过程中,几乎运用了课程全部的内容,不仅帮助学生理解程序设计的基本概念并加以应用,而且激发了学生学习程序设计后续课程的兴趣。
通过对程序设计课程教学中加入加密算法,对学生理解程序设计的基本原理、概念、和算法等起到了很大的作用。在平时授课时,同学们不但对这个加密算法非常熟悉,更重要的是同学们对程序设计这门课程非常喜欢。期末技能考核时,同学们都能开发出实用的小应用软件,并能用加密算法来对一些数据进行加密保密,达到了老师所要求的教学效果。
[1]胡正国,吴健,邓正宏.程序设计方法学[M].北京:国防工业出版社,2003.
[2]卢开澄.计算机密码学[M].北京:清华大学出版社,1998.
[3]张立涓.中职面向对象程序设计(Java)课的教学探索与实践[J],职业教育研究,2010,8.
[4]符蕴芳,赵英豪.面向对象程序设计教学改革与实践[J].中国成人教育,2010,11.