姚立红,訾小超,薛 质,李建华
(上海交通大学信息安全工程学院,上海200240)
在信息安全专业的课程体系中,信息安全相关技术的各类实验是非常重要的一个环节[1,2]。信息安全设计型实验相对于一般的验证型实验而言,开展难度较大,无论是对任课教师还是对学生都具有比较大的挑战性[3,4]。我院近年来一直在高年级本科生中尝试进行信息安全设计型实验的教学,并进行相应的课程建设工作,取得了比较满意的成果,并获得了较多的教学经验。
从2008年起,我院以课程设计的形式,对信息安全专业的高年级本科生进行信息安全设计型实验教学。
设计型实验具有如下特点:①教师只给出实验的总体目标,实验方法和具体流程由学生自己规划和完成;②不集中提供现成的实验平台,需要学生自己搭建具体的实验环境和平台。
在我院开展的信息安全设计型实验教学中,要求学生独立设计和开发某一个指定的信息安全软件工具。在完成设计型实验的过程中,学生需要遵循软件工程过程,包括:开发目标和需求分析、软件总体设计、软件详细设计、代码编程和功能及测试等。在设计型实验完成之后,这些软件工程过程产生的文档、软件工具源代码以及实验报告需一起提交给任课教师。
我院开展的信息安全设计型实验教学中,共设置了10大类、42个小类的候选实验题目。10大类具体包括:①内核包过滤防火墙的设计与实现;②基于队列机制的应用层包过滤防火墙的设计与实现;③应用层代理防火墙的设计与实现;④透明代理防火墙的设计与实现;⑤基于Linux安全模块机制的文件访问控制设计与实现;⑥基于系统调用重载的文件访问日志设计与实现;⑦端口扫描工具的设计与实现;⑧弱口令扫描工具的设计与实现;⑨基于特征串匹配的攻击检测系统的设计与实现;⑩端口扫描工具的设计与实现。
每个大类下根据开发目标的不同分为2至6个具体的实验题目。这些题目不但覆盖了信息安全的不同领域,也对应了不同的开发难度。
为了提高设计型实验的教学质量,帮助学生在较短的时间内顺利完成有关的信息安全设计型实验。我们结合给出的候选题目,围绕如何开发信息安全工具或工具原型编写了相应的实验教材[5]。该书主要包括两部分内容:上篇为“技术解析”篇,下篇为“开发实践”篇。“技术解析”篇重点介绍这几类重要信息安全技术(防火墙、入侵检测等)的基本概念和原理,并对进行相关信息安全技术开发所需要的关键方法和技术措施进行详细的探讨。“开发实践”篇以实例方式阐述如何进行信息安全技术和原型工具的开发实践。
从2011年起,我们开始以这本书作为我院信息安全设计型实验教学的教材。学生可以借助教材中的实例,通过二次开发的方式完成信息安全设计型实验,即在教材中某个实例框架的基础上,通过功能扩充和完善来完成相应的信息安全工具开发。
设计型实验需要学生进行大量课外文献的检索和学习,由于不同学生的动手能力差别较大,集中安排上机时间让学生进行开发则相对困难,信息安全设计型实验主要靠学生在课余分散进行。为了保证教学效果,我们采用了多种方式对设计型实验进行监督和管理,具体措施有:①定期的文档检查,在设计型实验进行的关键节点,如总体设计和详细设计等,要求学生提交相应的文档材料;②课堂进展汇报,在每个小组的实验过程中安排两至三次的课堂汇报,每次5至10分钟,学生汇报自己的技术细节和实验进展,任课教师视情况进行必要的点评和指导;③课堂或在线的实验指导,在设计型实验开始前,任课教师会在课堂上统一就实验目标、关键技术以及注意事项进行必要的讲解,实验进行过程中,学生可以通过邮件、MSN等向任课教师汇报实验进展,以及寻求技术帮助等。
在我院设计型实验的学生成绩评定中,主要考虑以下情况:①为每个候选题目设定相应的难度分,鼓励学生选择高难度的题目,如涉及到操作系统内核编程的实验题目,设置A+的难度分,而对于编程工作量小的题目,如口令扫描等,设置B的难度分,在成绩评定时,将实验难度分直接反映到每位学生的最终成绩上;②在注重实验完成结果的同时,关注过程考核,在实验开展过程中,要求学生进行中期检查和课堂汇报,学生的表现情况也作为成绩评定的主要依据。
信息安全设计型实验教学的开展对学生实践动手等各方面能力的培养是显而易见的。但在信息安全设计型实验的教学过程中,我们也发现一些不足和问题,这些问题可能有学生方面的因素,也有任课教师方面的因素。下面逐一介绍这些问题,并针对这些不足给出我们的思考及对策。
(1)实验规划和进度
我院开展的信息安全设计型实验以学期为周期开展,每周3个学时,共48个学时。开始阶段会进行6-8学时的课堂教学,学生自由支配的时间约40个学时,持续时间约14-15周。大多数学生都能在规定的时间内完成设计型实验的开发和测试任务,但有一定比例的学生未能按期完成实验,或者最后匆忙结束实验。
通过我们的调研和分析发现,学生未能按期完成实验的原因主要有:①对实验没有清晰的规划和设计,在一些关键技术未解决或没有进行整体设计的情况下就匆忙编写代码,到后面才发现自己的实现方案存在严重的缺陷,甚至实验的目标和要求都没有充分理解;②不重视软件测试过程,只有少数学生对实验中实现的软件工具进行比较全面的测试,甚至有一些学生几乎不进行任何测试,在最后的检查中无法展示其所计划实现的软件功能;③工具开发过程中计划性差,进度的控制能力弱,对软件开发过程中每个阶段的工作量没有清晰的认识,导致最终的实现无法按时完成。
(2)实验的完整度
一个完整的信息安全工具开发项目除涉及需求分析和总体功能设计、实现方案设计、代码编写以及软件测试外,还涉及到各种文档编写,以及功能演示与讲解。
根据我院近年来的实验开展情况我们发现,学生对代码编写工作比较重视,而对项目开发的其它环节则不够重视,具体体现在:①需求分析和功能设计比较欠缺,为了全方位培养学生的实践动手能力,在设计型实验中,我们只是给出实验题目的总体目标和任务描述,并没有逐条列出需要实现的功能,实验开展过程中只有少数学生能够提出和实现一些特色性的功能,甚至有个别学生无法围绕实验目标正确进行功能分析;②对实验开发过程中的文档重视不够,个别学生在实验总结报告中甚至不能清晰、完整地描述自己的实验总体结构,多数学生对实验开发过程、开发成果、实验特色无法进行恰当的分析和总结;③学生的交流沟通能力和表述能力还需要进一步的加强和提高,在设计型实验开展过程中,每个小组都会要求进行2-3次的课堂口头汇报,借助于幻灯片等材料介绍自己开发过程、开发成果以及实验演示等,多数学生在这个汇报环节上表现较弱,通常的问题是讲解重点不突出、结构不清晰以及条理性差等。
(3)实验过程指导
由于设计型实验的大部分工作需要在课下由学生自行完成,因此如何开展设计型实验的指导工作就显得非常关键。在我院开展的信息安全设计型实验教学中,任课教师主要进行以下形式的实验指导:①针对性地选取材料,主体是我们所编写的实验教材,该教材给出每个实验的具体目标和内容,以及实验相关的关键技术;②课堂指导,除在实验开始前任课教师统一对实验方式、关键技术以及注意事项进行指导外,任课教师还要求学生定期进行实验进展汇报,在汇报过程中,任课教师对每个实验中所存在的问题给予针对性的指导;③答疑方式的指导,在实验过程中,部分学生可能会对实验方案、实现技术等存在各种各样的疑惑,任课教师可就这些疑问进行针对性的解答和指导。
在指导信息安全设计型实验的过程中,我们比较大的感受是细节工作多,指导难度大。学生在实验过程中需要指导的地方多数都涉及到代码层次,比如自己所写的代码功能不正确,但自己查找不出,要求教师或助教协助等。因此这类的实验指导对教师有很高的要求,需要教师具有比较强的编程和程序调试能力,而且花费的时间比较多。因此,拟开设信息安全设计型实验的院系需要配置较多的师资力量,最好是由研究特长不同的多名教师组成一个指导小组,共同开展设计型实验的教学工作,而且设置可选的实验题目可以少一些,以保证任课教师对每个实验都很熟悉。
本文介绍了我院近年来对信息安全设计型实验教学进行的探讨,内容包括:实验实施情况,实验基本效果,存在的主要问题,以及对实验开展的思考和探索。信息安全设计型实验的教学已经在我院开展超过了5个学期,作为必修课,每学期的参与学生数量基本在120人左右。从以往教学实践来看,总体教学效果显著。
具体的教学效果主要体现在以下方面:①增强了学生对信息安全技术的理解和掌握,以往课堂上学习到的信息安全原理及概念得到了实际的应用和检验,有利于学生更进一步加深对信息安全技术的认识;②提高了学生的动手和实践创新能力,尤其是软件工具的设计和开发能力。这给他们后继开展的毕业设计工作提供了很好的基础和锻炼;③学生的沟通能力、表述能力以及撰写报告能力等有了显著的提高,一些学生在课堂交流、成果展示、实验汇报等方面表现突出,多数学生都能够就自己的实验题目给出比较完整的汇报和展示。
[1] 陈健吴海军徐煊,计算机网络协议分析与开发实验的一种新教学方法[J],计算机教育,2011年10期:99-103
[2] 李章兵李曙红 廖俊国,信息安全导论课程教学改进与思考[J],计算机教育,2011年4期:15-18
[3] 张敏 惠彬等,设计性实验与学生动手能力的培养[J]南京:电气电子教学学报,2008,30(2):73-74
[4] 赵刚,通过设计型课程培养学生创新能力[J]南京:电气电子教学学报,2010,33(6):23-25
[5] 訾小超等,信息安全技术解析与开发实践[M]北京:清华大学出版社。2011
[6] 秦磊华王小兰张园,“计算机组成原理”设计型实践教学模式研究[J]南京:电气电子教学学报,2009,31(2):68-70