APP下载

基于网络安全的中职C语言程序设计课程教学改革的探索

2024-06-17贺红

知识窗·教师版 2024年4期
关键词:C语言程序设计教学评价网络安全

贺红

摘要:文章基于网络安全的教学改革探索中职C语言程序设计课程,分析目前教学内容与网络安全的匹配度低、学生的网络安全意识不强、学生的安全编程能力较弱等问题,并提出完善教学评价机制的建议。

关键词:网络安全;C语言程序设计;教学评价

随着互联网技术的飞速发展和应用,网络安全问题已经变得越来越重要。中职电子信息大类下计算机相关专业的人才培养目标多为面向IT行业的程序员、开发工程师等岗位从业人员。而随着网络技术的发展,越来越多的人趋向从事移动端开发、网络编程与云计算等工作。网络和信息安全的高要求对这些岗位从业人员网络安全意识、安全编程能力等方面提出了新的要求。

C语言是应用程序的开发基础,因其强大的功能性和灵活性,经常被用于开发网络安全相关的工具和应用程序,因此C语言程序设计课程作为中职计算机相关专业的基础课程,对培养学生的编程能力、逻辑思维能力和解决实际问题的能力具有重要意义。然而,由于目前包含国家职业教育规划教材在内的许多原版教材具有滞后性,以及部分教师存在的教学惰性,很多网络安全新知识没有很好地融入教学,导致学生缺乏网络安全意识、基础知识与技能。因此,考虑到网络安全的重要性和C语言在课程中扮演的角色,基于网络安全的中职C语言程序设计课程改革教学内容和教学方法十分必要且紧迫。

一、中职C语言程序设计课程存在的问题

(一)教材内容与网络安全的匹配度低

中职C语言程序设计课程主要是教授学生C语言的基础知识和编程技能,网络安全则涉及网络攻击和防御技术、密码学、漏洞分析、系统安全、Web安全、移动安全等知识。纵观现有的大部分中职教材,在涉及网络安全的内存管理、系统库函数调用和代码分析等内容方面匹配度很低。目前的教材内容不仅只涉及很小一部分安全领域的知识,而且与安全编程相关的教学案例和实践内容偏少,对涉及黑客攻击、恶意软件、钓鱼网站的预防等知识更是缺乏,这远远无法达到增强学生安全意识和安全实践能力的目标。

(二)学生的网络安全意识不强

随着近年来网络安全事件的频繁发生,越来越多的学校开始强调网络安全教育。绝大部分中职学生虽然对网络安全有一定的认知,但在实际编程过程中仍然没有将掌握的知识应用到实践中,尤其是如何在实际编程中避免常见的安全隐患的意识还远远不够。

(三)学生的安全编程能力较弱

学生主要学习C语言的基础知识,实践的机会并不多,再加上教材内容中的安全知识不够,所以实际安全编程能力很弱,远不能满足目前信息技术发展对网络安全应用人才的要求。

二、教学改革的实践

(一)教材内容的优化与更新

笔者根据中职C语言程序设计课程教学的经历,充分考虑到现代网络安全趋势,以中等职业学校计算机应用专业国家规划教材《编程语言基础——C语言(第5版)》为例,经过反思、探索和实践,提出如下可行的优化与更新措施。

第一,增加安全相关章节。在教材中的相应章节后面,教师可以考虑新增一个小节,专门讲解与本章C语言内容相关的网络安全知识。例如,在字符数组部分增加格式化字符串攻击小节,在分支结构部分增加条件漏洞小节等比较常见、难度不大且适合学生理解和掌握的C语言安全知识。

第二,在相关内容中直接融合安全知识。中职C语言程序设计课程中的有些内容是可以直接与安全知识融合起来进行教学的。比如,教师可以在数组、指针、字符串操作等编程基础知识中,直接融合安全最佳实践,针对不同的主题,通过提供安全的编码示例或设置安全编程实践活动,强调不安全的实践可能导致的后果。又如,在讲解字符串操作知识点时,教师可以设计一个存在strcpy安全漏洞的小程序供学生查因纠错。

第三,为学生提供更新资源。由于网络安全领域的知识更新速度很快,教师应给学生提供一些能反映当今网络安全最新发展的在线资源,如安全论坛、博客、视频教程等,能为学生提供有关最新威胁、漏洞披露和安全研究等非常有价值的学习资料,方便学生线上线下更全面地了解最新的安全知识。

第四,加入安全编码规范。在教材末尾,教师可以列出一份简明的C语言安全编码规范供学生编程参考,帮助学生避免出现常见的安全错误。例如,教师可以对内存管理设置“始终在分配内存后释放它,以防止内存泄漏”的编码规范;对文件操作可以规定“在打开、读取和写入文件时,必须检查文件是否存在”的编码规范。

教材因有其使用周期,故具有一定滞后性。教师应根据社会的发展,不断更新自己的知识,并结合实际教学情况,灵活地将最新的网络安全知识融入教学。

(二)教学方法的创新

第一,融入安全知识的项目式学习。教师可以设计以安全为主题的小型编程项目贯穿一项主要内容,如构建一个简单的密码管理工具或加密算法的模拟项目。通过集合用户认证、密码存储、密码检索等功能的项目实践,学生可以更好地了解安全知识,并应用到实际编程中。

第二,设计攻防实战模拟实践。为提高学生的安全编程能力,教师可以利用已有的实训条件创建一个安全实验室环境,让学生模拟攻击和防御。例如,教师可以设计一个身份验证安全的攻防实战,让学生在实践中体会到安全的重要性。攻击者可以利用gets函数(从标准输入设备读字符串函数)的不安全性故意输入一个很长的字符串,以覆盖程序栈上的其他数据,增加导致程序崩溃或执行不受控制的可能性。防御者则可以采用限制密码尝试次数等修复代码来实施防御。此类攻防实战能引导学生从模拟攻击和防御两个角度体验安全问题带来的后果,并尝试采取措施来修复这些漏洞,提高安全编程能力。

第三,以真实安全案例驱动教学。教师可以选取一些真实的、因编程错误导致的安全事件以及最新的安全成果等作为案例驱动教学。例如,在讲授缓冲区溢出的安全漏洞问题时,教师可以引用非常著名的安全事件——Heartbleed漏洞(心血漏洞),使学生看到真实世界中的安全威胁和编程的重要性,引导其树立安全意识。教师再通过分析利用OpenSSL库(开源的安全套接字层的密码库)进行逐步的漏洞修复过程,激发学生的学习兴趣,促使其养成在编程时始终考虑安全性的良好习惯。

第四,引入网络安全工具和交互式平台教学。为更好保障学生在实际编程时代码的安全性,教师还可以为学生提供如静态代码分析工具、fuzzing(模糊测试)工具等一些C语言的安全编程工具和在线交互式编程平台,让学生不仅能实时编程并得到即时反馈,还能更直观地看到代码中的潜在安全隐患。

第五,创设安全编码工作坊。利用校企合作平台,教师可以开设安全编码工作坊,定期邀请专家或导师来为学生授课,分享企业实际经验,提供安全编码的建议和技巧。

第六,充分利用团队合作机会与竞赛活动。在整个教学实施过程中,教师引领学生从课中的攻防安全实战练习,到课外参与团队合作的编程项目实践,再到积极参与各级网络建设与运维、移动应用与开发等技能比赛活动,都可以系统化地强化学生的实际编程能力,让学生在涉及一些保密与安全性问题的实际操作中逐步增强安全意识。

第七,跨学科教学。教师可以尝试将中职C语言程序设计课程与HTML网页制作课程、计算机组装与维护课程等结合起来进行跨学科教学,共同设计一些项目或实验。这样可以让学生从不同角度理解安全编程的应用,提高学生的综合应用能力,以适应现代信息技术领域的需求。例如,教师可以设计生成一个HTML网页,并演示在用户输入时如何通过用户输入长度限制和去除输入中的换行符等处理来防止跨站脚本攻击的跨学科教学案例,将C语言程序设计课程和HTML网页制作课程融合起来。

(三)教学评价机制的完善

除采用教师评价、学生自评和学生互评外,教师还需要从三个方面完善教学评价机制。

第一,更新评价内容。随着网络安全领域的发展,教师需要定期更新网络安全评价内容和标准,以确保评价的有效性和准确性。

第二,增加实战性评价。教师应增设实际的安全编程任务和挑战,评价学生的实践操作能力和解决实际问题的能力。

第三,探索外部验证环节。教师应通过引入行业专家和企业导师参与程序安全性方面的评价,获取更为客观和权威的教学效果反馈。

三、结论

基于网络安全的中职C语言程序设计课程教学改革是一个反映行业需求、提高学生实际能力和应对当下网络安全挑战的重要探索。经过一系列的研究和实践,笔者得出以下探究结论。

第一,网络安全问题的凸显和行业的需求,增加了C语言程序设计课程教学改革的紧迫性。网络安全是一个关系国家安全和主权、人们工作和生活、社会稳定、民族文化的继承和发扬的重要问题,并已经成为信息技术领域的重要分支,与编程密切相关,所以其在计算机行业应用领域的比重增大。基于此,教师必须对C语言程序设计课程进行基于网络安全的教学改革,将网络安全内容纳入其中,帮助计算机应用技术相关专业的学生树立起安全第一的观念,为维护国家整体网络安全作贡献。

第二,教师通过教学内容的优化与更新、教学方法的创新,能帮助大部分学生在编程时主动考虑到网络安全问题。例如,经过实际的模拟攻防实战,学生的动手能力和问题解决能力得到了显著的提高,增强了信息安全素养和综合素质;通过在程序设计、移动应用开发等省市级技能竞赛中取得好成绩,学生提高了实际应用能力、就业能力。

第三,教师要与时俱进保持网络安全敏锐度和持续学习力。在互联网飞速发展的今天,计算机专业教师肩负着给学生开展网络安全教育的责任。因此,一方面,教师要紧跟时代发展不断进行研究,更新网络安全的内容并融入教学,以培养符合时代发展需求的计算机应用人才;另一方面,教师在不断增强自身安全意识的同时,还要注重加强与行业之间的交流和合作,不断创新,以提高网络安全教育的实际应用性,促进自身的专业化发展。

参考文献:

[1]费叶琦,刘雨浩,马竹樵.C语言程序设计课程教学问题及对策研究[J].中国教育技术装备,2020(20).

[2]倪瑞晓.C语言编程技术的分析研究[J].计算机技术与发展,2009(12).

[3]李利华.计算机信息技术在技工院校网络安全中的应用研究[J].科技与创新,2015(19).

[4]李前,蔺琛皓,杨雨龙,等.云边端全场景下深度学习模型对抗攻击和防御[J].计算机研究与发展,2022(5).

[5]李蓬,崔宝江.基于C/C++代码的静态分析工具的比较研究[J].国际计算机科学技术与应用论坛,2010(12).

[6]刘达.通过HTML编码防御XSS跨站脚本攻击的研究[J].网络空间安全,2016(7).

基金项目:湖南省教育科学研究工作者协会“十四五”规划2021年度课题“中职信息技术专业教学相关问题研究”,项目编号:XJKX21B236。

(作者单位:长沙财经学校)

猜你喜欢

C语言程序设计教学评价网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
信息技术—Internet实用教程教学设计的思考与实践
以“学生为中心”的《C语言程序设计》教学设计探究
对农村小学数学课堂教学评价的认识和看法
网络环境下高职英语课程多维度评价方式研究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践