抓住汇编语言教学难点,提高课程教学效果
“汇编语言”是计算机专业学员必修的一门专业基础课程,对培养学员程序设计能力,理解计算机工作原理,从事底层软件开发和软硬件结合的项目开发均具有非常重要的应用。但是,这门课程又是学员感到比较难学的一门课程,习惯了采用面向对象或结构化程序设计思想的高级语言程序设计方法,对汇编语言这种偏“机器化”的低级语言编程方法,学员们一时难以理解和接受,再加上有较多的语法规则和指令寻址方式需要记忆,语言编程环境又不熟练,使得学员在一开始学习时便陷入茫然状态。因此,就本门课程如何提高教学质量,增强教学效果,提高学员在一些底层软件和软硬结合方面的编程能力,是一个值得重视的问题。该文结合作者过去几年的教学实践,就目前计算机专业汇编语言教学学时压缩到了40学时,我们总结了一些可行的、比较好的方法。
1汇编语言教学难点分析
1.1指令系统复杂
汇编语言的指令是用一些具有相应含义的助记符来表达的,虽然有助于记忆,但是一般处理器的指令集少则几十条多则上百条,所有这些指令要在几节课内全部讲完,要求学员在这么短的时间内准确记忆这么多条指令几乎是不可能的,更不用说让其理解了。可如果指令掌握得不够好,学员对大部分指令都感到陌生,在进论文联盟http://行程序设计时就会感到无从下手,甚至读程序时也会觉得“云里雾里”,不理解程序的含义。wwW.lunwen.net.cn这就犹如写作文一样,基本的语法不会,造句不成型,岂能写出好的文章?
1.2教学时间缩短
计算机专业的课程更新速度快,随着新知识的不断涌入,不可避免要开设一些新的课程。例如:几年前我们计算机专业还没有开设linux操作系统、嵌入式软件开发,网络新技术、oralc数据库等课程,现在则新增加了这些课程,需要安排相当的教学学时。而对于一些象汇编语言这样的基础课程又不能丢掉,所以只能缩短课程教学学时。这使得教员只能讲授前面章节中的硬件基础和指令这些比较枯燥的内容,而许多比较有意义并且能让学员产生学习热情的内容被删除了,比如:图像颜色和动画程序设计的教学内容。同时随着实验学时的减少,造成学员往往只能做一些非常基础性的实验,而一些能让学员有“成就感”的实验,如定时发声、动画显示等实验已经没有时间安排了。这些均造成学员觉得这门课枯燥难学,没有耐性和兴趣学习,更不知道学了这门语言能干什么。
1.3学员基础薄弱
我们在教学过程中,发现许多学员尽管学过c或c++,但是缺乏调试程序的基本能力,当编译或运行过程中出现错误时大多数学员只会对照已有的源代码来查找错误或请教员一起帮忙调试,不知道如何通过单步跟踪和设置断点来调试查找错误。即使有些学员具备一些调试能力,他们的办法也只是在必要的地方加一些输出语句来观察变量的值,不知道如何在调试环境中查看变量和内存单元的值。因此,对于“更加复杂”(只是文本界面多些,用多了自然就熟悉了)的汇编调试环境,他们更加找不到解决问题的办法。再加上汇编语言的输入和输出需要用到中断,不像高级语言那么方便就能输出一个变量的值,学员对于在内存当中直接观察变量的值还不适应,所以当出现问题时,很少有
学员能改正自己程序中的错误。
1.4教学内容陈旧
和大多数高校一样,我们选用的教材是清华大学沈美明主编的《ibm-pc汇编语言程序设计》,该教材以8086指令系统为主来进行介绍,实习实验环境主要还是dos。然而这些教学和实验内容与实际情况相距甚远,我们知道不同的机器指令系统不同,而且随着嵌入式处理器的广泛应用,用x86的指令系统编程的范围越来越少,这使得学员在学完这门课后到实际编程环境中还要自学相关处理器的指令集,比如arm、mips、powerpc等。对于实验环境的选择,大多数还是在dos环境,由于现在的机器完全是windows操作系统,“图形化”的编程界面,学员普遍对dos这种文本的编程、调试环境不熟悉,调试结论文联盟http://果难以出现,实验结果感觉很抽象,使得学员在学习过程中产生一些畏难情绪。
2提高教学效果的可行方法
2.1采用多媒体教学
如果有可能,最好采用能够边上课、边实验、边演示的多媒体教室,使用多媒体课件教学。通过文字图像、声音、动画来激发学员的学习热情,增强教学效果。充分利用多媒体的功能,模拟程序指令的执行过程,着重描绘教学重点和难点。我们可以在教室的机器上安装调试环境,在上课过程中对一些简单指令执行使用调试环境进行演示,给学员一个了解“机器世界”的窗口,真正理解机器(cpu)对指令的执行过程。这样可以使学员快速入门,对学习本课程建立初步的信心。
2.2精心选择教材
教材是提高教学质量的基础和前提,是学员系统学习知识的依据。一本好教材对于培养学员自学能力和独立思考能力起着积极的作用。学员可以依据教材理解课堂教学内容,深入了解本学科各个领域的知识。对于清华大学的《ibm-pc汇编语言程序设计》这本教材,虽然它的内容全面而且丰富,但是由于教学学时的减少,导致很多内容特别是应用方面的内容无法讲解,因此很多内容只能作为自学内容,在教学中我们发现一本教材如果有较多的内容不讲或者作为自学内容,学员会“错误地”认为这门课不重要或太难学。所以我们建议更换教材,不再以8086指令系统为基础,考虑到嵌入式系统的发展趋势,可以加入一些ram指令集、32位汇编和at&t汇编的内容,为后续的嵌入式系统及其其它相关课程打下一些基础。
2.3优化教学内容
目前,这门课程主要的教学内容有:基本知识(数、计算机组织),编程工具(指令系统、寻址方式),编程方法(三种结构、过程)和应用(发声、图形程序设计)。由于学时数的减少,我们建议压缩或取消发声、图形程序设计这部分的内容,如果教员觉得非常必要讲,可以安排在课程设计部分(不占课程教学学时)。另外鉴于目前网络安全、网络病毒泛滥的严峻形式,建议在应用部分教学中适当增加病毒程序设计的内容。对于前三部分的内容也可根据实际情况进行适当压缩。与此同时,汇编语言是作为嵌入式系统开发与应用和嵌入式系统课程设计的专业基础课,结合计算机专业课程设置,建议在最后余留四到六学时的时间介绍一下arm指令系统,将x86指令系统和arm指令系统进行对比学习,为后续课程的学习打下基础。
2.4注重教学实践
汇编语言课程一般安排在大三的第一学期开始,40学时的课程在学期前半程就结束了。虽然学时数缩短了,我们还是不能忽略本门课程的实践这一重要的环节。因为学习一门语言课,其最直接的目的是用它去编写程序。因此,建议在课程结束后,利用后半学期业余时间给学员安排课程设计,到学期末结束并验收结果。对课程设计的要求不能太高,我们可以先提供给学员一些案例的源代码,比如:经典病毒、月下情人动画、产生随机数、简单学员成绩管理系统、卡通小闹钟、文本编辑器等汇编源代码。一方面先要求学员选择一个案例详细分析,给出详细的注释、程序设计流程、体系结构等;然后在理解、掌握的基础上,再对本案例进行修改设计出一个新的小系统。这种做法既能提高学员的学习积极性,又能锻炼其读程序、编程序的能力,而且没有占用教学学时。
2.5优化考核方式
传统的汇编语言课程考核方式主要是实行闭卷笔试,但是大多数学员在做编程题时,普遍反映由于指令太多,要用的指令记不住,导致编程题做不出来。从近两年的考试看,编程题得分高的学员很少。所以考试不能很好地反映出学员学习的好坏,特别是编程能力。因此建议考试形式采用:闭卷笔试50%+开卷上机编程20%+课程设计30%。这是因为汇编语言的一些基本知识还是需要笔试来考查:比如寻址方式,逻辑地址,物理地址等;上机考试可以出一些比较简单而有代表性的题目,估计大多数学员在给定的时间内可以做完,这样学员不用暂时去背太多的指令(当然如果用多了就不用背了),又可以测试他们现场调试程序的能力;由于上机考试时间的限制,只能出一些简单的编程题目,不能完全体现学员对知识的综合运用能力,所以要通过课程设计来补充考核这方面能力,当然时间可以延长到学期末。
3结束语
压缩学时后的汇编语言课程教学,不能只注重完成理论教学内容,而忽视对学员编程能力的培养。教学过程中不仅要理论联系实际,还要注重形象性、生动性和趣味性,帮助学员理解,培养他们的兴趣,提高教学效果。要在现有的资源和条件下,尽可能地挖掘教员和学员的潜能,把汇编语言课程教与学做得更好。转贴于论文联盟
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回通信学论文列表