摘要:《面向对象程序设计》是计算机应用技术专业的基础课,对学生的后续课程有着非常重要的作用。因此,如何将这门课讲得好并让学生感兴趣且学得好非常重要。文章指出了在《面向对象程序设计》课程教学中存在的问题,提出了高职计算机专业《面向对象程序设计》课程中加入tea算法的意义和课程中加入tea算法的方法。
关键词:面向对象程序设计;tea算法;教学;探讨
《面向对象程序设计》是计算机专业必修课程,如果这门课掌握不好,将会影响后续课程《数据结构》、《动态web程序设计》的学习。然而初学者对程序设计还很陌生,也没有建立用面向对象的思想来编写程序。因此,如果不能很好地组织该课的教学内容,很容易使学生对该课产生厌倦甚至害怕的心理。
一、高职计算机专业《面向对象程序设计》教学方法存在的问题
1、理论教学中存在的问题
教师在讲授一些理论知识时,比如对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递等面向对象的重要概念时,整个教学活动普遍采用的方法是:以教师为中心的“填鸭式”教学方法,教师从上课就一直在讲,直到下课为止,此方法是典型的“教本位”。教师在讲台上讲授,学生在下面埋头被动、持续地记笔记,所以经常出现“教师讲完了、学生记完了、下课也忘完了”的怪现象。此教学方法不但使学生产生厌倦,甚至产生抵触的心理。
2、实践教学中存在的问题
实践是检验和提升理论教学效果的重要环节,为了能让学生掌握前面所讲的理论知识,教师都会找出相应的实践案例给学生进行讲解及编程,只有通过大量的讲解及编写程序练习,学生才能真正掌握面向对象编程的核心思想。然而在实践教学这一环节中却存在比较多的问题。(1)理论课和实验课不能同步。在实际教学中有时会出现理论课讲解完了但还没能布置相应的实践内容给学生练习的现象,这样对学生对新知识的掌握及巩固很不利。(2)教师在讲解程序案例时,没有很好的从学生角度去思考问题,而是一拿到例子,就从头到尾的在进行讲解,没有很好地提出为什么本案例要这样编写程序而不是那样进行编写。(3)学生使用c语言进行面向对象程序设计时没有与一些电脑公司或有关企业进行合作,缺乏实际工作的能力。
正是这些问题的存在,导致了学生对这门课程失去了学习的兴趣。加上高职的学生,底子本来就比较薄,学习态度也不够端正,甚至有些学生就是被父母逼来读书的,所以他们根本就没有自主学习的态度。
二、高职计算机专业《面向对象程序设计》课程中加入tea算法的意义
1、tea算法。
1994年,剑桥计算机实验室的davidwheeler、rogerneelham设计了一个微型加密算法,即tea(tinyencryptionalgorithm)算法。tea算法实现简单,加密解密速度快,是一种简单高效的加密算法。图1、图2分别为tea算法的加密和解密过程。
图1tea加密算法
图2tea解密算法
tea算法每一次可以操作8个字节,密钥采用16个字节,采用迭代的形式实现.。tea加密算法的迭代次数是可以改变的,目前推荐64轮迭代,不过32轮迭代、16轮迭代也是足够的,甚至可以采用8轮迭代。tea算法由于实现简单,加密速度快,常被一些保密性要求不高的系统采用,比如qq的登录加密就是采用16轮tea算法来实现的。
2、《面向对象程序设计》课程中加入tea算法的意义
tea算法是编程算法中一个比较容易理解的算法之一,学生比较容易撑握,而且它主要是用在加密及解密中,笔者在教学过程中,抓住学生的“成就感”的心理:将一个加密解密程序tea算法编排穿插在教学内容中,学生很感兴趣,大大提高了学习该课程的兴趣,并取得了良好的教学效果。
三、高职计算机专业《面向对象程序设计》课程中加入tea算法的方法
1、教学模块的划分
高职计算机专业《面向对象程序设计》课程以java语言为主,其内容主要由以下几个模块组成:(1)结构化程序设计;(2)面向对象程序设计的概念及思想;(3)文件与io流;(4)图形用户界面;(5)applet小应用程序;(6)多线程。为了鼓励全体学生都能参与课程的教学与学习活动中,调动每一个学生的学习积极性与能动性,使每个学生都有事做、想做、会做、喜欢做。因此,笔者设计了一个教学思路,如图3:
2、激发兴趣,重建信心
针对大部分学生学习兴趣不浓的现状,当务之急是如何激发学生学习的兴趣,从而重建自信心。“兴趣是最好的老师”,只有有了学习兴趣才能在枯燥的学习过程中体会到乐趣。为了激发学生兴趣,采取了如下方法:
在如前所述的这几个部分中都以一个简单的加密解密算法tea穿插在这些教学活动中,如图3,在进行描述第一部分内容即结构化程序设计过程中,首先介绍程序设计的基本概念,比如基本数据类型,顺序结构,选择结构,循环结构,数组等,将这些基本概念介绍完之后,再描述tea算法的基本流程,然后让学生将该算法用java语言来实现。
由于已经将算法详细地介绍给了学生,因此学生只是将该算法用java语言来表现并上机进行验证,当同学们的程序运行通过,并发现可以将输入的一些字符加密成功,输出结果是与原来输入结果完全不同的字符时,他们获得了成就感,并感觉到自己也可以加密信息了,从而对这门课程产生了浓厚的兴趣,并盼望进一步的深入学习。
在此基础上,可以让学生尝试将rsa等加密算法用java实现,也可以帮助学生理解程序设计的基本概念。
进入第二部分,开始学习面向对象的概念和思想,一开始,学生对这些面向对象的概念不是很理解,笔者要求学生编写一个tea类,该类有加密、解密等成员方法,让学生将前面的结构化tea算法改成面向对象的方法。通过自己动手编写程序,学生逐渐竖立了类、对象、构造方法、继承、重载等概念,也逐渐竖立了面向对象的编程思维。
第三部分开始讲述文件与io流,此时,要求学生不是对某个数据加密解密,而是将整个文件加密解密,编程难度加大了,学生的兴趣也随之加大加深了。在编写程序过程中,学生对前面章节学过的如循环、字符串、数组等概念又得到了复习。当学生第一次将一个文件加密成功后,他们的欣喜是由衷的。
第四部分图形用户界面是学生最感兴趣的,因为之前编写的程序其运行结果都是千篇一律,看不出什么效果,只知道程序运行成功了,加密解密完成了,而图形用户界面以图形的方式显示出运行效果,从视觉方面引发了学生的成就感。在这一阶段的教学中,要求学生将之前编写的加密解密程序改成图形用户界面,需要运用各类组件和布局组织自己的程序运行界面,还需要编写菜单和各类触发事件。当需要对一个文件进行加密时,需要运用打开文件的对话框选择待加密的源文件,以及存放加密完成后的目标文件。
讲述applet小应用程序和多线程的时候,也是要学生继续完善tea加解密文件,比如用网页方式显示加密解密过程和效果,在加解密过程中添加进度条等。
当《面向对象程序设计》课程的内容学习完成后,学生也有了自己的第一个加密系统。学生在编写自己的加密系统的过程中,几乎运用了课程全部的内容,不仅帮助学生理解面向对象的基本概念并加以应用,而且激发了学生学习程序设计后续课程的兴趣。
通过对高职计算机专业《面向对象程序设计》课程教学中加入tea算法,对学生理解面向对象程序设计的基本原理和概念,以及用面向对象的思维编程起到了很大的作用。在平时授课时,同学们不但对这个加密解密tea算法非常熟悉,更重要的是同学们对《面向对象程序设计》这门课程非常喜欢,期末检测时,同学们都能开发出实用的软件,并能用tea算法来对一些数据进行加密保密,达到了老师所要求的教学效果。
参考文献:
[1]胡正国,吴健,邓正宏.程序设计方法学[m].北京:国防工业出版社,2003.
[2]雍俊海编著.java程序设计.[m].北京:清华大学出版社,2007.
[3]卢开澄.计算机密码学[m].北京:清华大学出版社,1998.
[4]张立涓.高职面向对象程序设计(java)课的教学探索与实践[j],
职业教育研究.2010,8.
[5]符蕴芳,赵英豪.面向对象程序设计教学改革与实践[j].中国
成人教育.2010,11.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/244040.html