




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 网络空间安全学科下的c语言课程改革探究 吴福生 王俊 倪明涛摘 要:c语言课程是计算机专业重要的基础课,也是学习其它高级程序设计语言的基础,具有承上启下的作用。但很多高校教师在讲授c语言时,并没有基于计算机系统结构和汇编语言等课程进行教学,导致c语言教学对学生而言只能达到“知其然”,并没有“知其所以然”。因此,针对网络空间安全学科下的c语言教学,提出将计算机系统结构和汇编语言课程作为c语言前期基础课程的改革思路,从程序语言底层执行过程出发进行c语言课程教学,并对c语言课程教学案例进行分析。关键词:网络空间安全;c语言课程;课程改革doi:1
2、0. 11907/rjdk. 192098中图分类号:tp434文献标识码:a 文章编号:1672-7800(2020)010-0244-03abstract: the c language course is an important basic course for computer science and a preliminary basic course for learning other high-level programming languages. it has the role of linking up and down. many college teachers d
3、o not teach based on computer system structure and assembly language when teaching c language. c language teaching can only enable student know what the course is about without understanding the principles. in the first-level discipline based on cyberspace security, this paper proposes the computer
4、composition principle and assembly language course as the pre-basic course of c language course. it is proposed to teach the c language courses from the implementation process of the underlying language of the programming language. finally, the analysis of the teaching examples of c language courses
5、 is given.key words: cyberspace security; c language course; curriculum reform0 引言高级程序设计语言是计算机科学与技术、软件工程和信息工程等工科专业开设的专业必修课和公共基础课,在高校的信息类课程教学中占有重要地位。当前,信息安全引起了人们的高度关注,信息安全的基础教学也得到了前所未有的重视,尤其是高级程序设计语言课程教学显得尤为重要。然而,传统高级程序设计语言课程教学已无法满足如今新形势下对信息安全的要求,如何进行网络空间安全学科下的高级程序设计语言(以c语言程序設计课程为例)课程教学面临挑战。c语言课程属于信息
6、安全专业的必修课,也是学习其它高级语言的基础,如脚本语言(javascript和php等)、高级语言(c+和java等)和python语言等。很多高校都把c语言课程安排在大学一年级,并采用“理论+实验”的教学模式,课程考核方式为笔试,但这种传统教学模式并没有取得良好的教学效果。c语言课程在整个理工科本科教学中占有重要地位,特别对于网络空间安全专业,更是必不可少的专业基础课程,但学生普遍认为c语言课程难学,因此学习兴趣不高。导致这种情况的原因之一是传统教学方式在讲授c语言程序代码执行时,一般只是针对c语言“面向过程”的特点,仅从程序流程上讲授c语言执行过程。这种教授方法对于一般要求开设高级语言程
7、序设计课程的工科专业是可行的,但对于网络空间安全学科专业的学生则是“只知其然,而不知其所以然”,导致其在后期的逆向工程、漏洞分析和计算机病毒分析等课程学习中或具体实际应用中存在困难。主要原因为:在学习c语言课程时,未开设计算机体系结构的前期基础课程(例如:计算机组成原理和汇编语言);教学过程中忽视了对c语言底层执行过程的学习;教师在课程教学设计中未考虑c语言的特殊性,即c语言是一种过渡性程序设计语言,既可看作低级语言,又可认为是一种高级程序设计语言。因此,针对目前c语言课程教学中存在的问题,本文对网络空间安全学科下的c语言课程改革进行探究。本文主要创新点为:把计算机体系结构课程和汇编语言作为c
8、语言教学的前期课程;在c语言课程教学过程中融入计算机硬件、汇编指令等基础知识;结合网络空间安全的信息安全规范1开展教学活动。1 相关研究工作c语言是计算机及其它理工类专业的专业基础课,在高级语言程序设计课程教学中具有重要地位,大多数高校的理工类专业都把c语言课程作为最重要的专业基础课之一。因此,很多学者及教师对高校c语言课程本科教学进行了探究。如文献2从计算机专业与非计算机专业两方面考虑c语言课程教学设计,对c语言理论课与实践课的教学改革进行探讨;文献3设计了一个c 语言课程教学辅导网站,让学生在课外可随时随地进行c语言课程学习,打破了c语言学习的时空限制问题;文献4针对数学本科专业的c语言课
9、程教学,重点分析影响c语言课程教学效果的因素,并提出调整授课内容、改进教学方法以及对考核方式进行改革等对策以提升教学效果;文献5提出利用网络平台和雨课堂,把微课与翻转课堂融合到理论与实践教学中,以增强学生的编程能力和创新能力。此外,文献6-10也对c语言课程改革进行了探讨。网络空间安全于2015年获批一级学科,其包括密码学、操作系统原理及安全和网络安全等课程, c语言课程也是其中最重要的专业基础课之一。网络空间安全学科的c语言课程教学与传统计算机科学与技术及其它理工科专业有所不同,如果延续传统的c语言课程教学方法,未教授c语言程序代码的底层实现过程,将导致学生无法理解c语言程序代码的实现原理。
10、例如,对于一个简单的c语言程序,如图1所示,传统教学方法是按照c语言程序执行顺序进行教学,如图2所示。在c语言课程教学中,如果只是基于面向过程的思想讲解c语言程序执行过程,学生无法彻底理解c语言程序执行顺序的本质,在后期学习逆向工程时会感觉很困难。为了加深网络空间安全学科专业学生对c语言的理解,本文对课程安排的时间顺序及相关教学内容进行调整。2 教学案例设计以网络空间安全一级学科下信息安全专业本科生的c语言程序设计课程为例,对c语言课程的教学改革进行探究。该专业的前期课程除计算机导论外,还有计算机组成原理和汇编语言等。下面以谭浩强11的c语言程序设计(第二版)为教材,以函数嵌套调用章节作为教学
11、案例进行分析,并与计算机科学与技术和软件工程等一级学科下的c语言课程教学进行对比。2.1 传统c语言课程教学计算机科学与技术和软件工程等一级学科下的c语言课程教学步骤如下:步骤1:复习函数基本概念。(1)复习函数调用的一般形式:函数名(实参数列表)。例如:图1程序中的主函数main()调用函数max_num(a, b),其中(a, b)为函数max_num(a,b)的实参数列表,a、b为函数max_num(a, b)的实参。(2)复习实参与形参数据传递,即实参与形参一一对应传递数据。(3)复习函数调用方式:函数语句。例如函数printf();表达式。例如c=2*max(a,b);函数参数。例如
12、m=max(a,max(b,c)。步骤2:引入新课函数嵌套调用。函数嵌套调用是指在函数调用过程中,又调用另外一个函数。具体调用过程如图3所示。(1)讲解函数嵌套调用过程。图3表示两层嵌套的情形,其执行过程为:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。(2)讲解嵌套调用c程序的实例,利用函数嵌套计算(a+b)2。c语言顺序执行与函数嵌套调用过程如图4所示。一般情况下,传统计算机科学与技术和软件工程等一级学科的c语言嵌套调用课程教学到此结束,并没有从底层讲
13、解函数调用的整个过程。2.2 改革后的c语言课程教学基于网络空间安全一级学科下的c语言课程教学,其教学步骤1(复习函数基本概念)与步骤2(講解函数嵌套调用过程及实例)与传统c语言课程教学步骤相同,这里不再赘述,以下重点探讨如何根据c语言底层执行过程,解决c语言函数的嵌套调用问题。为使学生加深对函数嵌套调用过程的理解,对程序代码底层执行顺序进行讲解,而传统c语言程序教学中并未涉及到该教学环节。在基于linux操作系统的环境下,利用gdb工具对程序代码(图4的c语言程序)进行反汇编代码调试,具体过程如图5所示。由图5可知,程序的底层执行顺序为:主函数main通过汇编指令call调用函数add,函数
14、add也通过汇编指令call调用函数power,并通过汇编指令leaveq与retq返回函数。在这种程序嵌套调用过程中,能清楚看到程序跳转的地址空间。例如,从main函数调用add函数时,汇编call指令值为0x4005cc,该地址正好是add的函数地址。3 教学案例分析通过对以上c语言程序教学案例的分析可知,从c语言程序执行的底层(汇编语言)深入讲解c语言函数嵌套调用过程,并把计算机组成原理和汇编语言等课程作为其前期课程,可降低教学难度,也使学生了解c语言函数调用执行过程的本质。在具体教学过程中,不仅教授c语言函数嵌套调用的基本知识,例如通过示例图3解析函数嵌套调用具体过程,而且通过汇编语言
15、执行跳转的基本指令(call指令、leave指令和ret指令等)解析c语言程序底层执行过程(例如图4的 gdb反汇编代码调试),使学生“知其然”,并“知其所以然”,有助于后期逆向工程、漏洞分析和计算机病毒分析等课程的学习以及具体实际应用。4 结语没有网络安全就没有国家安全。网络空间安全成为一级学科,充分体现了信息安全的重要性,因此培养系统掌握信息安全领域基本理论与基本技术,具备信息安全科学研究、技术开发和应用服务能力的信息安全专业人才是当务之急。c语言教学在信息安全教学中具有重要地位,因此网络空间安全学科下的c语言教学要求高于一般理工科专业的教学要求。本文对网络空间安全学科下的c语言程序设计课
16、程教学进行了探究,提出将计算机系统结构和汇编语言课程作为c语言教学前期基础课程的改革思路,从程序语言底层执行过程出发进行c语言课程教学,可一定程度上降低教学难度,提升教学效果。虽然教学改革取得了一定成效,但网络空间安全一级学科下的c语言课程教学仍然是一个比较艰巨的任务,未来需要根据实践效果对教学方式作进一步完善。参考文献:1 教育部高等学校信息安全专业教学指导委员会. 高等学校信息安全专业指导性专业规范m. 北京:清华大学出版社,2014.2 李桃迎,陈燕,蒋凡. c 语言程序设计课程实践教学探讨j. 科教导刊,2018,26(9):103-104.3 何福保,徐赫迪. c语言重点课程教学辅导网站的分析与设计j. 福建电脑,2018, 34(11):137-137.4 叶振. 本科院校数学专业c 语言程序设计课程教学探讨j. 福建电脑,2018, 34(10):172-172.5 李宇. 基于微课的c语言翻转课堂教学设计与实践j. 软件导刊(教育技术),2019,18(4):47-48.6 梁志剑,常力丹,井超,等. 基于全学时实验的程序设计基础课程教学改革j. 计算机教育,2018,10(10):150-156.7 熊春荣. “c语言程序设计”课程案例驱动教学模式的研究与实践j. 玉林师范学院学报
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中科学核心知识点解析
- 工程项目推进中的时间管理诀窍试题及答案
- 水利水电工程社会影响力试题及答案
- 2023 年注册会计师《会计》(8 月 25 日第一场)考试及答案解析
- 2024水利水电工程设备管理考题试题及答案
- 移动通信基站设备维护与支持合同
- 智能化物流管理服务合同
- 农村生态农业技术合作框架协议
- 工程经济实务与决策试题及答案
- 物业智能管理系统推广合作协议
- 母婴保健卫生技术人员职责
- (2025)中国汉字听写大赛全部试题库及答案
- 前程无忧测试题库28个题答案
- 无伞空投技术研究进展及国外准备阶段分析
- 上海家政服务合同样本
- 全国农牧渔业丰收奖奖励制度
- 黑龙江省哈尔滨市第四十七中学2024-2025学年八年级下学期3月月考地理试题(含答案)
- 《电力建设工程施工安全管理导则》(nbt10096-2018)
- 垃圾场应急预案
- 医院医疗服务收费自查自纠制度
- 低压电缆破损修补方案
评论
0/150
提交评论