计算机组成与体系结构核心课程的创新建设
2011-12-31裴颂文邬春学
计算机教育 2011年22期
摘 要:分析我校计算机组成与体系结构课程教学的现状和存在问题,结合实际教学经验,从教学内容设置、理论教学方法、实践教学规划、课程考核制度、师资队伍建设和综合教学平台六方面,对建设计算机组成与体系结构核心课程提供创新思路和实践经验,为进一步提高计算机组成与体系结构课程的教学效果提供参考和经验。
关键词:计算机组成与体系结构;核心课程建设;教学创新
依据上海理工大学实施教育部“卓越工程师教育培养计划”的要求,上海理工大学计算机科学与工程系确立了计算机科学与技术、计算机工程两个本科专业定位为培养计算机工程领域需求的工程性人才。在参考ACM/IEEE-CS CC2005[1]对计算机工程(CE)学科课程体系设置的基础上,我们将计算机组成原理和计算机体系结构的知识组织为一门统一的计算机组成与体系结构课程,并采用白中英教授主编的《计算机组织与体系结构》作为理论教学教材[2]。
计算机组成与体系结构课程涵盖两个方面:计算机组成的基本原理和计算机体系结构量化设计的基本方法。计算机组成原理是通用计算机系统结构的一般性逻辑实现方法;计算机体系结构揭示计算机系统的属性,包括概念性结构和功能特性,确定计算机系统软硬件的界面。二者既有区别,又有内在联系,因此,适合于整合为一门综合性专业基础课程。但是,由于计算机组成原理是计算机相关专业全国研究生统一入学考试的专业基础课,因此,我们确定本课程的教学内容侧重于计算机组成原理的教学。
根据教育部高等学校计算机科学与技术教学指导委员会制定的《高等学校计算机科学与技术专业核心课程教学实施方案》中关于计算机组成原理课程的实施方案[3],我们确立了计算机组成与体系结构的教学目标是围绕单CPU计算机硬件系统的基本组成和工作原理,系统讲述计算机硬件系统及功能部件的内部结构、功能特征、工作原理、交互方式和基本设计方法,使学生理解计算机硬件系统的组织结构与工作原理,掌握计算机硬件系统的基本分析与设计方法,为计算机工程领域培养具有硬件设计和实施能力的工程性人才;主要教学任务是培养学生对计算机硬件结构的分析、应用、设计和开发能力,系统地理解计算机系统各部件的工作原理和运行机制。
1 教学现状和存在的问题
多年来,计算机组成原理被认为是一门既难教又难学的课程。而计算机组成与体系结构则包括计算机组成和计算机体系结构,这使得教学内容更多、学习难度更大。因此,很多同行一直在通过各种方式提高这门课程的教学质量[4-7]。结合我校计算机相关专业的具体情况,我们分析发现造成这一问题的因素有三个。
第一,本课程需要有数字电路、数字逻辑知识为基础。但是,由于大一大二两学年我院采用工科通识教育的缺陷,使得计算机和网络工程两个专业的本科生在学习本课程前没有学习过数字电路和模拟电路,也不了解数字逻辑设计的方法。因此,学生基础差,难以跟上教学进度。
第二,本课程涉及的知识面广、概念多,而且计算机内部芯片高度集成化,学生缺乏对计算机各部件的感性认识。因此,理解其物理结构和工作原理比较抽象,学生难以理解。而且,由于该课程讲授的计算机最基本的原理和方法,课程教学内容的直接应用目标也不可能很明确,学生难以理解该课程的直接应用价值,对该课程的重视度不够。
第三,在计算机软件的学习过程中,学生通过编程技术可以获得可见的结果。而对比计算机硬件课程的学习,学生难以把学到的硬件知识马上应用起来,不容易获得类似软件编程的直观感受,学生普遍的认识有偏差。这导致学生误认为本课程学习内容的实用性不强或者误认为软硬件之间的联系不大,以后自己只从事软件编程工作,不需要掌握计算机硬件设计方面的知识。
基于以上对计算机组成与体系结构课程的定位,结合我校人才培养目标和教学现状,下面,我们将从教学内容设置、理论教学方法、实践教学规划、课程考核制度、师资队伍建设和综合教学平台建设六个方面具体提出本课程的建设方案。
2 核心课程创新建设的综合方案
2.1 教学内容设置
教学内容设置方面的建设主要集中在三个方面:第一是补充本课程的基础知识,包括数字电路中的TTL门、MOS管技术等和数字逻辑课程中的逻辑代数基础及组合电路逻辑设计方法;第二是补充《计算机组织与体系结构》教材中缺失的内容,比如增加计算机体系结构中关于指令级并行软硬件设计方法、Cache失效性分析、多处理机同步与通信机制等。在计算机组成原理的教学内容上,尽量补充计算机体系结构量化分析的方法和设计原理;第三是补充多核处理器技术的最新设计方法和工作机制,这部分内容主要提供给对计算机体系结构感兴趣的、学有余力的学生自学之用。
为保证理论教学和实验教学时间的充裕性,我们将理论教学和实验教学单独开课,实验课的进度和理论课的进度相匹配,其中理论教学安排64学时,实验教学16学时,使得理论教学和实验教学的学时比为4:1。此外,对学有余力和参加竞赛的同学另行再组织和指导创新实验,使得理论教学和实验教学环环相扣,逐步深化,并使得培养的学生具有一定的创新设计和实践能力。理论教学计划如表1所示。
这种教学计划使得计算机组成与体系结构课程的教学内容更加丰富,既避免了本课程只讲授计算机组成原理或者只讲授计算机体系结构知识的弊端,又能保证学生将来参加研究生入学考试时对计算机组成原理知识的全面掌握。
2.2 理论教学方法
在讲授基本原理的过程中,我们注意融入计算机硬件技术发展的新技术并作为学生课后自学的内容,注重基础理论与最新技术的融合。由于计算机组成与体系结构知识比较抽象,理论学习比较枯燥,因此教学过程中我们要与学生交流互动,向学生提出启发式和开放式的问题,引导学生深入思考。讲课中注意触类旁通,采用举例、类比的方法,将深奥、难以理解的问题用学生最容易接受的方式和语言表达。理论课程全部采用课堂教学方式,以多媒体课件为主,适当使用一些板书。充分发挥多媒体教学采用动画技术或Flash技术,充分展现基础性方法和原理的动态执行过程。比如:SRAM读写周期的过程、Cache的访问和替换策略、指令流水线的过程等。
然而,多媒体教学方法对运算方法和运算过程的教学效果却不尽人意。经分析,我们发现问题主要是定点数、浮点数进行加减、乘除的计算过程没有采用传统板书教学并按步骤书写,而是采用多媒体教学且放映速度较快,学生来不及仔细体会其中的设计技巧和验证计算结果。
因此,后期涉及到计算相关的教学,我们都尽量采用传统的板书教学方法;而对于简单的控制流程、运行机制、状态更新等内容主要采用多媒体教学方法,这既发挥了多媒体教学生动、信息量大的特点,又体现了传统板书教学的细致和严谨。
此外,理论教学过程中建议采用引导式教学方法,而不能采用填鸭式灌输教学。讲授第二章运算方法和运算器前,先要介绍计算的基本功能就是进行算术逻辑运算,既然是算术逻辑运算,那就有二进制数参与运算,那么就会介绍各种数的机器表示形式;然后介绍数值数据的加减法和乘除法,包括原码、补码和移码的计算,然后介绍计算过程的硬件逻辑实现过程;最后介绍浮点数的加减乘除运算过程和硬件设计框图。
2.3 实践教学规划
在实践教学方面,我们从实验内容和实验方式开展教学革新。在实验内容上,分别针对基础性原理、综合性知识和创新实验有针对性的开展实践教学。针对基础性原理设计了验证性实验,比如采用多功能运算部件74LS181设计16位运算器的实验电路,验证运算器的功能等;对于综合知识,我们组织设计性实验,比如给每组学生分配一张指令表,指令表中包含十余条不同的机器指令(主要包括设计H