1、汇编语言的教学特点
由于《汇编语言程序设计》本身的特点具有理论抽象性、与硬件的相关性,使它难学难教,学生普遍反映这门课程难学、不容易理解、抽象。这门课程难学的另一个原因体现在上机实验方面。上机实验时是DOS黑白界面,检查语法编译程序繁琐,结果不具直观性。编写程序复杂、调试程序复杂,所以很多教师讲课时侧重于理论教学,忽视实验教学。另外,尽管有上机实验的教学要求,但教学主体是课堂教学。无论是实验设计还是实验强度都远远不够。带有强烈的“验证性”色彩。这些影响了学生学习时的积极性,许多学生在学习《汇编语言程序设计》的过程中往往感觉找不到头绪。认为《汇编语言程序设计》是一门难学的课程,比较抽象,是“天书级”的语言,不像应用型课程非常直观与生动。在学习《汇编语言程序设计》时积极性不高。因此,对汇编语言程序设计的教学改革势在必行。
2、用建构主义理论分析汇编语言
教学现状汇编语言与高级语言教学是有区别的,高级语言经常包含学生原有的经验和知识,因此在对新知识的理解,通过运用已有的经验建构起来,得心应手。而汇编语言中很多都是新的知识,并且与学生原有的知识有较大的差别,教师就要以学生为主体,利用网络和多媒体手段创设有利的学习情境,帮助学生完成新知识的建构。在教育心理学领域中,建构主义作为一种新的学习理论,对学习和教学提出了一系列新解释,认为认识是一种以主体已有的知识和经验为基础的主动建构过程。建构主义认为,知识不是通过教师的传授得到的,而是学习者在一定的情境即社会文化背景下,借助他人的帮助即通过人与人之间的协作活动,利用必要的学习资料,通过意义建构的方式来获得。建构主义更关注学习者如何以原有的经验、认知结构、心理结构和经验为基础来建构知识、建构知识结构。学生是在教师的帮助下,利用自己特有的思考方式和学习方法,通过自己的经验对外部信息进行主动的选择、加工和处理,从而获得自己的意义,建构自己的理解过程。建构主义这种强调以学习者为中心的学习理论,既强调了学习者的认知主体作用,又不忽视教师的指导作用。教师不是知识的传授者与灌输者,而是意义建构的帮助者与促进者。学生是信息加工的主体,是意义建构的主动者,这种学习方法更加强调学习的主动性、社会性情景与协作性。从教师的视角来理解建构主义,教师就应该重视学生自己对各种现象的理解,倾听他们的看法,洞察他们这些想法的由来,以此为根据,引导学生丰富或调整自己的理解,在新知识的输入阶段、相互作用阶段、操作阶段和输出阶段等不同阶段帮助学生完成新知识的建构。汇编语言本质上是机器语言,与高级语言相比又具有一些自身的特点:①汇编语言属于低级语言,与硬件联系紧密;②指令繁杂,编程繁琐;③调试环境不易被学生理解与掌握汇编语言调试工具采用的是Debug,DOS下的命令交互方式,界面不友好;④课程中段才涉及程序设计和应用。按照建构主义理论,目前汇编语言教学方面的问题主要体现在以下方面:①教师通常将教材内容按部就班地灌输给学生,教学内容顺序安排不合理,并未真正地按循序渐进的原则来教授;②有的内容一讲到底,以教师为主体,学生处于被动接受的地位,虽然教师教学很认真,但不和学生进行互动,不及时提供实践的机会,使学生缺乏主动性,学习效果自然不理想;③教学实践缺乏有效性。目前该课程上机实践多数仅满足于对理论知识的验证,很少有具备针对性或直接面向实际问题的综合训练,学生难以对所学知识融会贯通,综合运用所学知识解决实际问题的能力没能得到很好培养。现有的例题特别是上机习题编排,不利于培养提高学生的汇编语言程序设计技能,更不利于通过上机实验进一步调动学生语言的积极性。因此,在建构主义理论的输入阶段,受高级语言的影响,汇编语言学习者很难实现新知识的输入;在建构主义理论的相互作用阶段,原有的高级语言学习方法、理论基础不能在这里形成知识与编程技能的正迁移,反倒阻碍了新知识与能力的习得;在建构主义理论的操作阶段,由于学生不熟悉DEBUG调试环境,不能很好地驾驭上机环境,实践脱离了理论,不能使新学习的知识与原有的认知结构之间产生较为密切的联系。在输出阶段,由于作业或课程设计题目主要针对操作系统的某一子功能进行设计,无正误判定,很大程度上影响了学生解决具体应用问题的信心与决心。
3、建构主义理论的汇编语言教学实施
3.1、随着计算机发展,多次讨论修改教学大纲
随着PC性能的不断攀升,内存的不断扩大。汇编语言的优点已经不是特别突出,学生总觉得汇编语言指令繁多,枯燥难学。有了很多种高级语言,开发程序非常容易。他们非常不愿意学习汇编语言。哪些需要删除,哪些增添,已经是需要重新讨论的问题。教研室主要讨论了以下内容:明确学习《汇编语言程序设计》的目的,如何与其他高级语言衔接,如何相辅相成。在整个计算机体系中处于什么地位。哪些陈旧的内容需要删掉,哪些新的内容需要增添,这是教研室会议重点讨论的问题。
3.2、多用形象的类比
汇编语言枯燥抽象,硬件结构又看不见摸不到,用类比的方法讲授就显得比较重要。用鲜活的例子来打比方可以起到事倍功半的效果。例如在讲解寻址方式时,笔者就用类比的讲解方法,告诉学生说,例如,一个小孩子对他妈妈说:“我要吃苹果”,妈妈就给他拿了一个苹果,这就是直接给出,是立即寻址方式:孩子大了一点,有一天又和妈妈讲,我要吃苹果,妈妈给了他一个盒子,孩子打开盒子,苹果放在盒子里,这就像寄存器寻址,操作数在寄存器里;再大了一点,孩子又和妈妈说要吃苹果,妈妈给了他一个纸条,上面写着放苹果的地址,例如在厨柜的第二个抽屉里,孩子按照地址找到苹果。这就是直接寻址方式。给出操作数的地址;如果妈妈给孩子一个盒子,打开盒子,里面是一个字条,写着放苹果的地方,孩子按照地址找苹果。这就像寄存器间接寻址,寄存器存放的是操作数的地址,按照地址找到操作数。通过这样的讲解使得学生很容易理解寻址方式的精髓,不必再去死记硬背,很快就能理解和记忆,在实际教学中效果良好。
3.3、实现对上机环境的知识建构
通过分析代码在源程序和DEBUG下的区别,帮助学生利用已学得的汇编指令实现对上机环境的知识建构。代码在源程序和DEBUG下的区别明显存在的,源程序中的汇编指令经过编译发了很多变化,不同版本的DEBUG对机器指令的反汇编结果也不完全一致。了解这些区别对学生熟悉和掌握DEBUG的作用非常巨大。
3.4、努力提高学生的学习兴趣
根据高级语言程序“可视化”的特点,在开展案例教学时,利用DOS功能调用和BIOS功能调用来设计“可视化”的汇编语言程序,在相互作用阶段帮助学生建构汇编语言的案例知识。汇编语言写起来费劲,调试起来困难,怎样才能引起学生学习的兴趣是教师的一个非常重要的工作。因为平常所说的操作用汇编语言来写都十分困难,即使是写出来了,运行起来可能什么都看不到,学生很难有兴趣去编写更多的汇编程序,如何解决这一问题是汇编语言教学成败的关键,用DOS功能调用和BIOS功能调用,就可以在很大程度上解决汇编程序运行起来什么都看不到的问题,如果运用得好可以产生非常好的演示效果,大大增强汇编语言运行的可视程度,从而极大地激发学生学习汇编语言的兴趣。另外,还要特别给学生指出:如果在调试运行程序时系统中断资源发生变化,一些使用BIOS中断资源或DOS功能调用的程序,其执行结果可能会不正常。如有的学生在录入源程序时为注释汉字信息,而在WINDOWS平台的DOS兼容模式下加载了汉字平台,结果该让喇叭鸣叫的地方而无此运行现象。
3.5、编制有利于学生兴趣建构的上机习题集
深入分析汇编语言上机环境,结合理论教学进度,编制梯度合理、易学、易练、易调试,有较直观的运行结果和一定趣味性的上机习题集,提高学生的程序设计和调试技能,促进汇编语言教学效果的进一步提高。
3.6、建构教师引导、学生主导的生态课堂
密切关注课堂生态环境,充分利用环境资源,引导学生进入生动活泼的教学氛围。在汇编语言教学中,为了随堂掌握学生的学习情况,经常要求学生把自己编写的程序段写在黑板上来讲评,由于学生对知识理解和掌握的差异,在评讲过程中,无法预料会出现何种错误,因此需要教师随机应变,根据学生情况,总结代表性的错误总之,针对汇编语言的课程特点,将建构主义的理论与方法手段引入课堂,使课堂不仅成为知识传递的场所,更是促进学生完善和发展自我的舞台,实现教学相长。
4、结束语
《汇编语言程序设计》作为计算机及相近专业的基础课程,其重要性不容替代。将建构主义的理论与方法手段引入课堂,使课堂不仅成为知识传递的场所,更是促进学生完善和发展自我的舞台,实现教学相长。
作者:阮忠 单位:河池学院计算机与信息科学学院