陈 燕 王德成
(安徽新华学院信息工程学院,安徽 合肥 230088)
计算机组成原理是计算机类专业本科生必修的专业基础课程。 不管是国家统招还是自主命题, 计算机组成原理都是计算机类专业硕士研究生入学考试的必选课程之一。 随着“计算机系统能力培养”的提出,计算机考研题型也在逐年更新, 但由于师资力量、 学生基础以及实验条件的限制, 不同的学校在制定教学大纲时会有所不同, 而且在教材的选择、 教学和实验内容、 教学方法等方面都会存在差异, 这些都将直接影响到学生的考研成绩。 因此, 如何将考研知识点融入到平时的教学和实验内容当中, 实现一种教学效果和考研成绩并重的双赢模式, 是计算机组成原理教学中必须考虑的问题。
统招以来,考查目标共有三条,分别从硬件整机角度、软件指令角度、计算和设计角度出发,说明计算机组成原理科目应该掌握的内容。 以2018 年为例,考查目标如下:
(1) 理解单处理器计算机系统中各部件的内部工作原理、 组成结构以及相互连接方式, 具有完整的计算机系统的整机概念。
(2)理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面, 掌握指令集体系结构的基本知识和基本实现方法。
(3)能够综合运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算、分析,对一些基本部件进行简单设计;并能对高级程序设计语言(如C 语言)中的相关问题进行分析。
这些考查目标和大多数学校的计算机组成原理课程学习目标是一致的, 都符合从具体到抽象的认知规律。 第一条目标是将一台计算机裸机解剖研究后,再还原成一个整体;第二条目标开始为裸机设计能“出席”各种场合的 “衣服”, 并结合解剖得到的知识, 学习这些“衣服”的基本设计和实现方法;最后一条目标是要求学生从学徒成长为一个师傅,并学习掌握作为一个评判者的基本技能,如分析、计算、评估和高层设计。
考试大纲是对特定考试科目的总体要求和说明,内容比较宽泛。 而历年的考试真题更能真实的反映各知识点的分布和侧重。 针对历年来真题分析, 本课程考试知点主要包括:数据表示、存储系统、指令系统、CPU 和输入输出系统;所占分值较少的是总线部分,一个选择题占2 分; 概述一般不单独命题, 但是有些题中会用到这一部分的知识。在408 综合题目中,计算机组成原理主要是在第43 和44 题, 也有些知识点是跟操作系统的交叉, 比如虚拟存储器的存储管理知识点。 表1 给出2009-2017 年计算机组成原理综合题目考察知识点。
表1 计算机组成原理综合题目知识点总结
了解了考研知识点的分布情况,结合学生基础,将这些知识点有重点、 分层次地融合到日常理论和实验教学中, 具体方式包括教学引入、 教学内容参照考研大纲、习题分析考研真题、实验结合考研重点等。
为激发学生兴趣, 让学生感受到本课程内容及与高级语言的关系, 第一次课我们从分析一段高级语言程序开始,例如:
该程序在输入的n=3、n=24 和n=31 运行结果截图如下图1:
图1 运行结果截图
为什么会出现这种结果? 高级语言的程序编辑后如何存放? 如何运行? 内部运算如何实现? 带着这些问题我们将进入本学期课程的学习。
我校计算机组成原理教学大纲制定的学习目标和研究生大纲中的考查目标是一致的, 具体知识点分布却有些差异。 结合我校“应用型本科”以及“系统能力培养”的要求,再结合考研需要,2010 年以来,我们对教学内容不断进行优化, 把重点放在数据表示、 存储系统、指令系统、CPU、以及I/O 系统上,以2017 级计算机科学与技术专业的教学大纲为例, 我们制定的教学内容如下表2 所示:
表2 本校教学内容
从历年真题分析我们可以总结出,数据表示、存储系统、指令系统和CPU 是组成原理的重要考点,除了概念外,很容易出综合题。 这几部分内容也是计算机组成原理的重点, 课堂教学中经常用一些例题和习题来复习和巩固所学知识。 这些教学实例一般都针对特定知识点设计,相对比较单一,缺少变化,学生在学习掌握这些例题时,自己思考和提升的余地很少。 而考研真题是具有多变性和综合性,如果能将这些考研真题有针对性地引入课堂,作为教学实例,必然能激发学生的思考和学习兴趣。 例如2017 年的43 题“C 程序表示如下……”就可以作为数据表示和数据运算那章的综合应用题目。 通常情况下,考研真题一般涵盖同一章中很多知识点, 直接照搬不太适合用作课堂教学的例子。 例如,2012 年关于输入输出系统的第44 题 “某16 位计算机中……”, 这道题涉及到数据表示、数据移位、指令流水线等。 这样的真题很适合作为综合性的课后作业,锻炼同学们的综合运用知识的能力。 在作业分析讲解时,教师结合学生的作业情况,分析这些习题所涉及到的知识点与目前学生的掌握情况, 帮助学生认识不足,逐渐建立一种系统和整体的解决问题能力。
实验是让同学们更好的掌握课程内容, 结合考研常考知识点和我校实验室条件、 学生基础情况, 我们采取“基本部件—CPU 设计—综合设计”这种从基本到综合逐步展开的思路。 具体实验内容包括寄存器和总线实验(利用Protues 仿真软件完成)、运算器的实验、存储器的实验、 单周期CPU 设计以及指令集的扩展(后面三个利用实验箱完成)。 对于多周期的CPU 以及流水CPU 有能力的同学期末选做去完成。
计算机组成原理作为专业基础课,是“计算机系统能力培养”主要课程之一,也是硕士研究生入学考试的重要课程之一,为保证同学们课程学习目标和考研需求,经过几年的探索,我们有重点、分步骤地将考研知识点融合到课程日常教学和实验中, 提升了计算机组成原理课程教学的效果,得到了学生的良好评价。 实现了计算机组成原理的日常教学与研究生入学考试兼顾的教学模式。