高校“汇编语言程序设计”课程改革探究
2016-07-09侯琳梁琨孙迪
侯琳 梁琨 孙迪
【摘 要】本文从目前高校的教育实际入手,分析了“汇编语言程序设计”这门课程存在的问题,并分别从理论教学和实践教学两方面出发,提出了几点切实有效的措施改善课程教学,有利于完善教学体系,提高教学效果。
【关键词】汇编语言;教学效果;教学方法
【基金项目】本文系天津科技大学项目“基于CDIO的教学模式在物联网专业教学中的应用探索”(编号:2014JXC09)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1671-0568(2016)14-0064-02
汇编语言作为一种面向机器的低级语言,有着运行速度快,占用内存少,能直接访问计算机硬件和端口,指令简单以及操作直接等得天独厚的优势。“汇编语言程序设计”课程是“操作系统”“计算机组成原理”“微机原理与接口技术”等计算机专业核心课的前修课程,对学生认识计算机硬件组成和工作过程,理解应用程序如何调配计算机硬件协同工作有很大帮助,同时也可以锻炼学生的编程思维能力。通过该课程的学习,学生既可以掌握软件系统的原理,也可以理解硬件系统的运作过程,兼备软、硬件的编程知识体系结构。因此,“汇编语言程序设计”课程是计算机专业知识体系中不可或缺的一部分。
一、目前汇编语言课程存在的问题
1. 学生学习的积极性不高
(1)因为汇编语言是一门面向机器的语言,在使用时必须要结合计算机硬件体系结构,所以要想掌握好这门语言,就要熟练掌握计算机的硬件控制和指令执行过程,学生会觉得这部分内容比较生涩难懂。
(2)汇编语言相比高级语言来说,指令系统较复杂,有较多的语法规则,语法描述不如高级语言直接有效,程序难调试,可读性较差,这也是造成学生学习热情较低的主要原因之一。
2. 教学内容落后
目前,大多数高校汇编语言课程的教学内容还是基于8086和8088的16位指令操作系统,使用DOS系统对程序进行编译和调试,不符合计算机发展的实际需求,与当前市场现状严重脱节。
3. 教学方法一成不变
当前课堂大多还是采用常规的灌输式教学,只给学生讲解语法规则和指令系统,导致学生不能灵活运用汇编语言进行程序设计,因而不具备编写软件的能力。因此,在教学方法上要有所创新和改变,努力提高学生的学习兴趣。
4. 课程设置的上机实践时间不够,缺少综合性实验
目前的课程实验内容主要针对课堂内容设置,每个实验之间没有相关性。同时,由于课时有限,教师很少设置综合练习,这就导致学生不能将所学知识融会贯通,综合解决问题的能力较差。
上述诸多问题是目前高校汇编语言课程普遍存在的现象,导致学生先入为主地认为汇编语言难学,对课程产生了畏惧心理。另外,由于受自身知识面的限制,认为学完汇编语言对于将来就业没有太大用处,不如多学习高级语言更加实际。因此,针对教学现状,纠正学生对该课程的认识,改善教学情况,提高教学效果已经刻不容缓。
二、汇编语言课程的教学改革
针对上述汇编语言课程的教学现状,为了提高课程的教学质量,可以做如下改进:
1. 提高学生的学习兴趣
(1)重视第一堂课的作用。在学习课程内容之前,先跟学生讲清楚该课程的学习目标和主要学习内容,然后通过实例介绍汇编语言在当前计算机应用中的角色地位。例如,如果要使用杀毒软件进行病毒扫描或者启动UNIX操作系统,都必须要使用汇编语言;如果将来要深入从事计算机工作,也必须要熟练掌握汇编语言。同时,汇编语言与高级语言相比,具有运行速度快、与机器硬件贴合度高的优点。让学生明白汇编语言并没有过时,在当前的软件开发市场中仍然占据重要的一席之地。
(2)在教学过程中,多向学生展示汇编语言的具体实际应用,也可以向学生展现往届学生做过的大作业或者网上用汇编语言编写的一些小程序,告诉学生经过一个学期的学习,他们也可以做出这样的程序。通过这些方法,可以有效地调动学生的学习积极性,让他们对汇编语言有一个感性认识,克服畏惧心理,最大限度地激发学生对这门课程的学习兴趣。
2. 更新教学内容
将以往以8086和8088为基础的16位指令操作系统更新为以教授Win32为主要内容的32位指令操作系统。通过教学内容的改变,以适应当前计算机的迅猛发展。
Win32汇编语言是在Windows操作系统环境下运行的一种编程语言,以处理器的工作方式和结构组成为基础。16位指令系统的程序需要在DOS环境下进行编译链接,而Win32汇编语言可以像高级语言一样使用Windows提供的API函数库,实现图形界面化编程,通过Windows操作系统控制程序运行细节。
Win32汇编语言的教学内容主要有:80386体系的微处理器内容部结构和寄存器组成;80386微处理器的寻址方式和指令系统;80386在保护模式下的管理方法以及Windows操作系统;Masm下的Win32汇编程序结构,掌握程序的调试方法;使用Win32汇编语言开发应用程序。
3. 使用多种教学手段,提高学生的学习兴趣
(1)启发式教学。在课堂上要充分体现“学生为主体,教师为主导”,让学生有学习主观能动性,尤其汇编语言是一门指令多、语法复杂的课程,因此在讲解知识点时,启发学生主动进行思考、理解所学知识就显得尤为重要了。例如,在讲解“物理地址寻址”一节时,可以先跟学生举两个生活中常见例子,然后对学生进行提问,让学生将讲解的例子套用到知识点中,这就将被动吸收变为主动获取。同时要给学生适当的鼓励,对主动回答问题的学生进行表扬,让学生掌握学习的主动权。
(2)灵活运用多媒体。多媒体可以通过声音、文本、图像、动画等多种方式将授课内容灵活生动地表现出来,增添了课堂趣味性,也可以活跃学生的思维和课堂氛围。比如,在讲“堆栈”这部分内容时,以一个箱子放3本书为例,用动画的形式将3本书先放入箱子中,然后3本书再依次被取出,通过这种形式,让学生能够直观了解堆栈“先进后出”的存储方式,提高了课堂教学效果,这也是传统黑板教学不能比拟的。
(3)类比式教学。汇编语言生涩难懂,很多学生都不能完全理解掌握所学内容,因此,可以用学生之前学习熟知的C语言进行类比教学。通过将C语言与汇编语言的编程方式进行对比,让学生从C语言的角度去理解汇编语言,这样既可以让学生更容易接收和理解汇编语言,降低学生学习汇编语言的难度,同时也能让学生更深入地掌握高级语言程序设计方法,做到课程之间的相辅相成。
(4)以程序设计为核心的探究式教学。在讲授汇编语言时,可以事先给出一个程序框架,通过这个程序框架,让学生理解一个程序的整体结构概念,在后续的学习中不断补充框架内容,通过反复大量的练习,达到掌握汇编语言程序的目的。这种教学方式区别于以往按部就班地讲解指令的教学方法,而是将汇编语言的大量指令融入程序设计中,通过程序设计学习语言知识,让学生带着任务去学习。教师作为引导者,需要根据教学内容和教学目标精心安排程序设计内容,学生可以自行解决教师提出的问题或者组成小组讨论,探究的方向始终由教师掌握。在这种教学模式中,教师的主要任务是启发引导,学生的主要任务是通过自己的思考和研究,掌握新知识。这样有利于提高学生的解决问题能力、独立思考能力以及团队合作能力。
4. 改变课程考核方式,注重学生综合能力的培养
改变以最后一次考试作为学生最终成绩的考核模式,将学生平时学习情况和能力测评也纳入成绩的考核体系中。可以将学生的评分标准分为3部分:平时表现占30%,综合作业占40%,期末考试占30%。在教学过程中,多让学生以小组合作的形式,通过网上或者图书馆查找资料的方式完成作业。学期结束,让学生用自己所学内容编写一个综合汇编语言程序,把所学知识融会贯通。学生最终的课程评价是学习成绩和综合能力的评定,这样可以考查学生的综合能力素养。
三、汇编语言课程的实践教学改革
1. 与高级语言结合起来进行混合编程
利用学生对高级语言较为熟悉的特点,采用将汇编语言和高级语言混合编程的方法,做到两种语言互相取长补短。现在有一些程序开发软件,既可以使用汇编语言,也可使用诸如C/C++对程序进行编程,当然一些运算量很大的关键代码,最好还是采用汇编语言。通过这种方式,可以让学生深刻理解两种语言的不同之处和各自的特点,也能让学生更好地从高级语言的角度理解汇编语言,同时通过汇编语言更好地掌握高级语言,做到课程之间的融会贯通。
2. 采用集成开发调试工具
可以利用现有的软件资源,在MASM6.0的基础上,使用Elipse 搭建可视化集成开发系统,该调试工具的特点是调试简单,学生可以在掌握汇编语言调试步骤的基础上,在熟悉的Windows界面完成所有操作。这样就解决了以往使用学生不熟悉的DOS系统对汇编程序进行编译的问题,进一步提高了学生学习汇编语言的积极性。
3. 开发综合实验实训项目
改变以往只是针对单独知识点设计实验内容的方法,联合多个知识点设计综合性实验,让学生做到知识的融会贯通。可在学期末设置课程实训环节,结合学生学到的知识,通过一个完整的实训项目贯穿起来。设计实训项目时应注重与实际应用相结合,如屏幕显示、端口读写等。做到少而精,让学生通过综合实训项目梳理所学知识,提高对汇编语言的认识。
综上所述,针对目前在汇编语言教学中存在的种种问题,从课堂教学和实验实践对汇编语言课程进行了改革,充分发挥教师的主导作用和学生的主观能动性,采取多种教学方法,更新教学内容,将理论教学与实践教学相结合,教学与考核紧密结合,构建一个完整丰富的课程体系,从而提高教学效果。
参考文献:
[1] 武伟,汪璇,刘晓燕.“汇编语言程序设计”课程教学改革探讨[J].西南师范大学学报(自然科学版),2009,34(2):201-204.
[2] 冯建文,包健,严义.“汇编语言程序设计”课程的教学改革与探讨[J].吉林大学学报(信息科学版),2005,(S2):22-24.
(编辑:秦俊嫄)