马行空+王勇军+赵文涛+任江春+付绍静+曹源
摘 要:针对内容安全课程的重要性以及当前教学中存在的问题,基于学习圈理论提出“案例体验—原理剖析—设计实现—测试检验—拓展创新”的五步递进教学方法,阐述五步递进教学方法在内容安全课程中的应用情况及注意事项,并说明教学效果。
关键词:学习圈理论;五步递进教学;内容安全
0 引 言
内容安全课程是信息安全专业的重要专业课程,旨在分析识别信息内容是否合法,确保合法内容的安全,阻止非法内容的传播和利用。该课程要求学生掌握内容安全的基本概念、基本原理和基本技术,了解各种典型的内容安全威胁,掌握信息内容的获取、分析识别和管控以及多媒体信息隐藏的基本技术。
内容安全课程包含内容宽泛,涉及文本安全、多媒体安全、社交网络安全等多个领域。传统教学中,教师要在有限时间内讲解所有内容,难以保证教学质量;此外,该课程实验难度大,传统教学中理论教学时间多、实践教学时间少,使得学生难以通过实践加深对课程的理解和掌握。为此,我们设计了基于Kolb学习模式的五步递进教学方法并应用于内容安全课程。实践表明,该教学方法能够有效提高学生的学习积极性和实践创新能力。
1 内容安全课程教学现状
内容安全作为信息安全领域的新兴学科,内容涉及的背景知识数量大且实验难度大,导致学生在学习过程中容易产生挫败感,影响教学效果。内容安全课程教学中存在的问题主要有以下几方面。
1)理论讲授时间有限。
根据《信息安全专业指导性专业规范》的建议,内容安全课程的理论授课时间为36学时,而内容安全课程的理论知识宽泛,涉及网络爬虫、数据挖掘、机器学习、模式匹配、数字水印、数字指纹等多个领域,使得学生很难在较短的时间内熟练掌握多个领域的复杂算法。传统教学中以教师为中心,学生被动接收知识,再加上本课程理论学习难度较高,导致教学效果不理想。
2)实验难度大。
内容安全课程多针对实际网络中的具体问题展开实验探索,这要求学生能够处理实际网络中遇到的各种突发情况。例如,在网络爬虫实验中,要求学生能够自动模拟网站登录,并绕过大型网站的反爬虫机制;在垃圾邮件分类实验中,要求学生能够自主选择与分类正确率相关的多个参数。这些实验难度系数较高,若缺乏相应教师指导,学生很容易卡在某一个小问题上而止步不前。
3)照搬网上资料,创新意识缺乏。
由于课程设计时间有限,不少学生通过互联网查找现成解决方法,对其简单改动以完成作业。原本学生通过查阅资料吸收他人方法解决问题的做法值得提倡,但是结果发现这对提升学生学习效果并不理想:一是很多学生的解题思路完全一致,没有在他人已有工作基础上进一步提升,使得学生丧失独立思考能力;二是由于代码不是学生自己从头开始写的,很多算法设计过程中的疑难问题都已经被原作者解决,学生在吸收的过程中则直接回避,无法有效提高动手实践能力,也难以对实验所涉及的方法原理产生较深刻的认识。
2 学习圈理论
1984年,美国社會心理学家、教育家David Kolb在其著作《体验学习:体验——学习发展的源泉》[1]一书中提出学习圈理论,其基本思想是学习者的学习过程可阐述为一个体验过程:具体的体验—对已获得体验的反思—体验抽象和理论化—行动实验,循环往复,形成一个贯穿的学习经历,由学习者自动完成反馈和调节。
根据体验方式的不同,已有教学方法包括问题驱动教学、案例驱动教学和项目驱动教学。问题驱动教学是设计与教学内容密切相关的问题或介绍典型的实际问题,通过引导学生如何发现问题、分析问题并解决问题,从而培养学生自主学习和终身学习的习惯。在实施过程中,教师需要根据教材内容、学生的认知规律和已有知识储备,提出学生感兴趣又有一定梯度的问题,引导学生进入深层思考。该教学法已经在程序设计[2]、离散数学[3]等课程中有较好的实施案例。
案例驱动教学中,教师通过讲解一个完整案例的分析解决过程,与学生充分地交流互动,达到培养学生解决实际问题能力和提高其创新能力的目的。该教学法已经在数据结构[4]、软件项目管理[5]等与应用密切相关的课程中开展实施,并取得良好的教学效果。
项目驱动教学是指提前给学生布置拟完成的项目,通过循序渐进的方式引导学生完成项目开发实践。学生主导项目需求分析、系统设计、代码实现和集成测试全过程,从而全面提高项目开发能力。该教学方法在软件工程[6]、数据库[7]、网络操作系统[8]等课程中以项目为主线、教师为主导、学生为主体开展实施,激发了学生的学习兴趣和探索创新能力。
以上3类方法,既相互关联,又有所区别。概括来说,问题驱动教学法和案例驱动教学法注重课上知识传授过程的有效性,项目驱动教学法则注重整个学习周期内学生动手实践能力的培养。
3 五步递进教学方法设计
为了有效提高学生的知识理解和应用创新能力,我们基于学习圈理论提出“案例体验—原理剖析—设计实现—测试检验—拓展创新”的五步递进教学方法,以内容安全课程为例,对这种教学方法进行初步探索和尝试,具体实施方案见表1。
案例体验是指通过教师演示应用案例或学生亲自操作工具,快速获得直观效果,以激发学生学习兴趣,带动学生主动思考,并在该过程中需要教师认真挑选典型案例。在内容安全课程中,很多知识点都有相应的案例或工具可供教师和学生使用,如讲授网络爬虫时,教师可使用Scrapy、Arachinid、Crawlzilla等已有的开源爬虫软件向学生展示爬虫软件功能和爬取效果,包括如何模拟用户登录,如何设置爬取范围、频率等;讲授文本分类时,教师使用Jieba、IKAnalyzer等工具向学生展示中文、英文、中英文数字混合等不同情况下的分词结果;讲授特征选择时,教师可通过使用Scikit-learn、MLlib等开源机器学习工具,向学生展示选择不同特征后的分类准确率的区别;而在讲授图像信息隐藏时,教师可通过使用Steganos、S-Tools等工具,在有趣的图片中隐藏信息,更容易引起学生的学习兴趣;讲授网络水军检测时,教师通过展示水军账号在社交网络中的个人主页信息,很容易引起学生注意。
原理剖析是教师引导学生学习相关原理的过程。案例体验后,学生的学习兴趣已被调动起来,此时教师应引导学生思考案例背后的技术原理。需要注意的是,在原理剖析过程中,教师应该采用启发式提问的方式,逐步引导学生沉浸到深度思考中,而不是直接将方法和原理告诉学生。例如,在讲授网络爬虫时,让学生思考如何才能持续地爬取网页,从而引出宽度优先、深度优先等关键技术;在讲授文本分类时,通过展示多个分词工具的不同分词效果,引出最大匹配分词、概率匹配分词等不同的分词技术,通过展示选择不同特征后的分类准确率,引出特征选择的TFIDF、信息增益、主成分分析等技术;在讲授图像信息隐藏时,通过展示在图像不同位置隐藏信息对图像造成的损伤效果,引出LSB、DCT信息隐藏算法;在讲授网络水军检测时,通过分析大量水军账号主页的内容和行为,引出网络水军检测中的特征分析技术。
设计实现是学生理解相关知识点后所开展的动手实践。该阶段由教师发布任务并引导学生运用所学知识点设计实现。需要注意的是,教师应该根据学生的能力水平和有效学习时间,發布难度适中的任务,因为任务过于简单无法达到能力提高的目的,过于困难则可能使学生产生挫败感和厌学心理。例如,在设计面向社交网络的爬虫实验中,教师可以要求学生使用宽度或深度优先遍历方法并模拟用户登录。虽然在该实验中,模拟用户登录是一个难点,不同社交网站有不同的登录表单参数,有的网站甚至还有反爬虫机制需要绕过,这给学生的实现过程提出了挑战,但是网上已有很多模拟登录的案例可供参考,学生通过查阅资料是可以自主完成该实验的。再如在垃圾邮件过滤实验中,教师可以要求学生利用文本分词和特征选择技术实现准确率较高的垃圾邮件过滤系统。在该实验中,难点在于如何提高分类准确率。提高准确率与多个因素相关,如训练集的选择、文本分词的准确性、特征选择的合理性等,需要学生仔细分析并作实验验证。在图像信息隐藏实验中,不仅要求学生实现LSB和DCT算法,还要求学生能够采用合理的方法提高其信息隐藏的安全性;而在社交网络水军账号检测中,要求学生采用多种方法对比检测精度。
测试检验是对学生的设计实现情况进行过程控制和评估,主要包括两种方式:一是掌握学生设计实现情况,通过个别讨论、问卷调查等多种形式了解其遇到的疑难问题,并适当地提醒学生有哪些可能的解决途径;二是现场检验学生的完成效果并评定成绩,根据设定好的评分标准对学生的完成情况客观打分。在内容安全的各个实验中,我们根据学生咨询的问题和教师调查发现的问题,给学生适当的反馈,以引导其顺利完成实验。例如,在网络爬虫实验中,部分学生卡在模拟登录问题上,教师可适时地给出一个案例并提供相关的学习资料,辅助其模仿和参考;在垃圾邮件过滤中,针对分类准确率不高的问题,提示学生可从特征向量长度、分词算法等方面进行优化;在安全图像信息隐藏和网络水军检测的算法设计过程中,让学生讨论可能的安全策略和检测算法,辅助其顺利完成实验。
拓展创新是指学生可在原始实验的基础上进行功能或性能的改进,目的是培养学生的创新意识和提高研究水平。教师可设定拓展任务,也可以由学生自己提出拓展创新点。为了激励学生拓展创新,该内容可作为实验成绩的加分项。例如,在爬虫实验中,我们提出多线程爬虫、代理爬虫、自动识别验证码和模拟真实用户行为作为拓展加分项,结果显示有50%的学生可以自主完成多线程爬虫程序,另有20%的学生可以实现代理爬虫;在垃圾邮件过滤中,我们将分类准确率和召回率作为加分项,结果显示部分学生能综合采用多种分类方法提升准确率和召回率;在图像信息隐藏实验中,我们将安全策略数量作为加分项,结果显示20%的学生可提供两种以上的安全策略;在社交网络水军检测中,我们将检测精度作为加分项,同样有效地鼓励了学生创新。
实践表明,采用五步递进教学方法能够有效提升学生的学习主动性,锻炼学生的实践能力和创造力,对教学活动有很好的促进作用。
4 五步递进教学中的注意事项
1)适当增加设计实践的时间。
由于授课时间有限,如何分配理论和实践的时间是很多课程中需要权衡的问题。从内容安全课程的教学过程来看,适当增加设计实践时间的教学效果更好,主要原因是实践过程可以促使学生巩固学习相关理论知识并深化其理解过程。教师增加理论讲授时间的目的是帮助学生理解知识概念,在实践过程中少走弯路。事实上,这样做反而可能在一定程度上降低学生的自学能力和创造力。适当降低理论时间、增加设计时间后,学生有较多时间投入动手操作过程中,通过多走一些弯路反而更容易增加实践经验,且促使学生通过自学深化理论理解。在内容安全课程中,我们的理论讲授和设计实践时间的比例为1:1,结果显示增加实践时间后学生的作业完成的质量更高。
2)掌握学生的实践进度。
在设计实践过程中,教师需要实时掌握学生的实践进度,以保证实践任务顺利实施。在设计实践过程中,学生会遇到各种不同问题,有的学生希望自己查资料解决,有的学生则咨询别人,还有的学生完全没有解决思路,为此,教师需要根据问题类型分别处理,如对于多数学生碰到的疑难问题,可在适当的时间点采用现场答疑、提示、演示等方式为学生提供帮助;对于少数没有实践思路的学生,则可以根据其具体情况提供建议、学习资料等。
3)采取客观公正的激励和惩罚措施。
客观公正的激励和惩罚措施有助于学生形成正向反馈。激励是指对学生的实践结果和拓展创新进行公正的评估和奖励;惩罚则主要针对学生在实践过程中的抄袭行为。实际操作过程中,激励不够、惩罚不严都可能造成学生学习能动性和自我约束力的降低。在内容安全课程中,我们规定将代码相似度超过90%以上的作业所指向学生的成绩同时记为0分,对每个任务的拓展创新则给予20%~30%的加分奖励。
5 结 语
基于学习圈理论提出“案例体验—原理剖析—设计实现—测试检验—拓展创新”的五步递进教学方法,教学效果明显提升,主要表现在:①结课后的调查显示,90%以上的学生能够理解并掌握理论知识的重点和难点;②每个实验的平均操作时间与理论讲授时间比例达到4:1,学生的动手实践能力得到充分锻炼和提升;③学生创新能力明显提升,部分学生已具备学术研究的基本素质;④实验过程中,学生能够自觉查阅文献、集成多种方法设计优化算法、对比多种算法的效果以及使用开源工具验证所设计算法的有效性。
参考文献:
[1] Kolb D A. Experiential learning: Experience as the source of learning and development[M]. London: Prentice Hall, 1984: 1-21.
[2] 夏承遗, 李文杰, 孙世温. 问题驱动的“C++程序设计”教学方法研究[J]. 计算机教育, 2010(1): 122-125.
[3] 范雅惠, 刘德山, 魏迪, 等. 用问题驱动教学模型实施计算思维教学的应用与实践[J]. 计算机教育, 2016(1): 90-93.
[4] 庞晓琼. 案例驱动的数据结构课程设计教学改革实践[J]. 计算机教育, 2009(1): 53-55.
[5] 张永平, 刘燕, 邵星.“案例驱动+项目实践”的软件项目管理课程教学实践[J]. 计算机教育, 2015(23): 115-119.
[6] 邓泽林. 以企业项目驱动的软件工程专业实践教学研究[J]. 计算机教育, 2015(17): 91-93.
[7] 林菁. 多级项目驱动教学在数据库系列课程中的应用[J]. 计算机教育, 2013(16): 72-76.
[8] 蒋峥峥, 严燕, 陈晓红. 基于项目驱动的“网络操作系统”实验教学实践[J]. 计算机教育, 2015(24): 134-138.
(编辑:宋文婷)