摘要:对计算机体系结构课程的教学进行了研究和探讨,并进行了教学实践。对教学内容、教学方法、教学手段、实践环节等方面的改革进行了简明扼要的论述、对计算机体系结构及相关课程的教学具有一定指导意义。
关键字:计算机体系结构,教学方法,教学实践
《计算机体系结构》是计算机科学与技术专业的一门核心的专业必修课程,从课程的地位来说,它是先导课与后续课之间的重要衔接课程。随着计算机技术的飞速发展,必须保证课程教学内容及实现手段的先进性,才能确保课程教学效果的优秀。因此,在课程教学大纲的制定上,主要依据就是:既要保证学生理解和掌握课程的基本理论和基本概念,又必须保证教学内容的先进性,同时还要注重学生实际动手能力和创新能力的培养和训练,为后续课程的学习奠定坚实的基础。它的主要教学任务是使学生能系统地理解计算机硬件系统的逻辑组成和工作原理,培养学生对计算机硬件结构的分析、应用、设计及开发能力。但是“计算机体系结构”这门课程具有知识面广、内容多、难度大、抽象等特点,在各个高校中普遍存在着“教师难教,学生怕学”的现象。不少学生刚接触到这门课时,学习劲头很足,但一段时间以后,就觉得这门课枯燥无味,凌乱繁杂,导致学习兴趣下降,甚至学习结束时,还未建立起清晰的整体概念,似懂非懂。为了应付考试学生往往死记硬背,从而难以达到教学目的。因此,如何把握课程的主线和重点,使学生不但打下坚实的理论基础,同时具备一定的开发设计和动手能力,培养并增强学生的自信心,改变当前学生中 “重理论、轻实践,偏软件、怕硬件”的现象,就成为这门课的授课过程中必须解决的问题[1]。针对课程的特点,我们在教学实践中探索新的教学方法和模式,在多个环节进行了改革和实践。
1 精选教材与教参
教材改用李学干主编的西安电子科大出版社出版的《计算机系统结构》。该教材既强调了基本概念和基础知识,又注意与实际应用相结合,并且对许多新技术和新的发展方向作了不同程度的介绍。在精选主教材的同时,为学生推荐辅助教材如王爱英编著由清华大学出版社出版的《计算机组成与结构》,并引导其阅读。使学生们能在学习中文教材内容的同时适当阅读英文参考资料,为以后顺利查阅专业英文文献打好基础。与此同时,推荐《电脑爱好者》、《PC DIY》、《电脑报》等相关课外读物,提高学生的学习兴趣并开阔眼界。
2 课堂授课以整体结构为主线,理论结合实际
2.1 总体把握、详略得当避免“碎繁”
在体系结构课程授课中,前后信号联系频繁,容易给人以“繁”的感觉。而 CPU、存储器、接口、外设等各自成章,零零碎碎,容易给人以“碎”的感觉;学生容易把每一章内容独立起来理解和学习,结果只见树木不见森林,不能很好地从整体上把握系统结构。因此,对授课内容的组织作一定的改革,在第一章系统概论讲解中,多用一至两次课的时间将整个系统结构讲授清楚,从结构框图出发,整体到部分,然后再回到整体。最终使学生在进入各章节的学习前有一个较明晰的总体概念。并且,在各章节的授课中注重培养学生从总体上把握内容,理解本章节的作用和地位以及和其他章节内容在总体结构上的联系。在授课内容安排上注意做到详略得当,对重点和难点多作分析和讲解,如编码和译码、CPU数据通路、轮询和中断等概念的讲解。这些概念都比较抽象难懂,可多用生活中的例子作启发。例如:编码和译码可以通过实际设计一个远程抢答系统为例说明编码译码的特点和优点;CPU 数据通路系统可通过供水管网控制,或河流渠道的闸门控制比喻说明;轮询和中断则通过比较教师挨个收作业和科代表收齐作业后上交两种方式进行说明。而对比较次要的技术或在后续课程中有详细讲解的内容,如磁带存储器、ISA总线、虚拟存储器、流水线等,则在授课时只作简要介绍。
2.2 理论推导结合工程发展与应用避免“乱”
由于《计算机体系结构》这门课程几乎没有严格的数学推导,工程技术性强,表面看像各种技术介绍的简单堆叠,容易给人以“乱”的感觉;因此在授课中主要从三个方面改进:
一是对能推导的部分适当给出一定的数学推导,如数据校检原理,指令编码、数值的机器运算,Cache 访问时间等,从而形成较严谨的理论依据。二是从技术发展的角度讲解,通过历史事例说明工程技术的螺旋上升发展过程,从而自然引出现有技术系统。例如在讲解比较RISC 和CISC 指令系统时,以及在讲解CPU 控制器设计的微程序与硬布线时,给出当时的技术条件,于是就很自然地得出了:在特定的技术条件下,一种技术比其对应的技术更适用,而随着技术条件的发展,适用性可能刚好相反,使得技术总体呈螺旋上升发展的趋势,从而使学生能够用比较辩证的观点来学习相关技术和知识,而不是死记硬背。三是采用启发互动的方式,让学生根据要求和条件自己设计,最终领悟课程中经常涉及的“时间与空间”、“速度与容量”、“性能与价格”的权衡技术和方法。例如在讲解存储系统的层次结构时,给出各种存储体的访问速度、价格、失配率等,让学生自己设计存储系统并比较优劣。这样,通过自己实际设计,学生在掌握相关知识的同时也能深刻体会到计算机体系结构在很大程度上是一门权衡的艺术,而不是凌乱的技术堆砌,从而培养学生从多方面思考理解问题[2]。
2.3 结合实际应用,补充新内容,避免“旧”
体系结构课程授课内容涉及的技术发展很快,教材难以及时更新,容易给人以“旧”和“过时”的感觉,极大地妨碍了学生的学习兴趣。因此在授课中注意补充技术的最新发展状况,补充相关的新生事物介绍。如在讲解主存储器时加入DDRII 介绍,结合课本上的SDRAM,介绍它们的技术异同并比较相关技术参数;在讲解中央处理器时加入市面上流行的CPU 的技术简介等。这样和实际发展结合,可以提高学生的学习兴趣。在课程进行到期中时,可以组织同学进行一次 “电脑DIY”的讨论,要求所选机器满足:市场主流配置、性能价格合理等条件。这样,可以使同学们感受到学以致用的好处,同时认识到自己知识的不足。结果既使全班同学增长了实际技能,又激发了他们的学习热情,收到了意想不到的教学效果。
3 在实践环节加强硬件动手能力
动手能力尤其是硬件动手能力一直是教学的软肋,体系结构的很多概念是在软件硬件密切配合下形成的,如果脱离实践,会给人以“虚”的感觉。为此,在教学中加强实践环节,我们把培养学生的实际动手能力放在重要地位。实践环节分课内实验和课程设计两部分,课内实验主要是验证性实验,使学生对硬件系统有一定的感性认识并巩固所学的理论知识,课程设计则要求学生有一定的分析和设计能力。实验系统采用内、外总线结构,按开放式的要求设计了各关联的单元实验电路,系统可按部件层次组合方式逐次构造不同结构和复杂程度的部件实验电路及模型计算机。以此为基础,有针对性地编写了实验指导书,让学生自己动手完成各基本单元的连接并验证通过,如运算器、存储器和总线、缓冲、指令部件等单元实验。最后在课程设计阶段软硬件结合构造出一个完整的模型机系统。在传统的实践环节中,学生对硬件系统组成的理解基本停留在原理图层面,对实际的芯片封装,电气布线几乎没有了解,对实际的硬件望而生畏。为此,对实践环节作改进,引导学生根据原理图和实际使用的器件查阅其实际电气参数及封装等工程说明文档,并要求在实验箱中找出具体的芯片位置,说明实际的数据通路等。这样既培养学生查阅相关英文资料的能力,又在一定程度上改善多数学生“偏软怕硬”的状况。此外,指导部分学有余力的学生参与到嵌入式系统的设计和开发课题中,以及鼓励他们积极参与各种竞赛活动,可以进一步培养其动手和创新能力。