秦国锋,丁志军,王力生,卫志华,张冬冬,
(1.同济大学 电子与信息工程学院 计算机科学与技术系,上海 200092;2.同济大学 计算机与信息技术国家级实验教学示范中心,上海 200092)
当前,国内各个高校基本都开设了计算机专业或者与其紧密相关的专业,但普遍存在已开设的实践课程没紧密结合实际,对学生缺乏相互贯通、整体综合的系统性培养。近年来,教育部适时推出产学协同育人项目和新工科建设项目,极大提升了我国计算机相关专业的学科建设和学生创新能力的培养。
同济大学计算机专业就如何提升学生实践能力方面进行深入探索,从骨干系列课程融通、理论教学与实验实践结合、能力建设平台保障、全面考核与评估等多个环节进行重点建设。
数字逻辑、计算机组成原理、计算机系统结构[1]、编译原理、计算机操作系统这五门课程是计算机及相关专业的专业基础课和必修课,是计算机能力建设的核心支撑课程。这五门课程理论知识相互关联、彼此衔接,在理论教学方面需要彼此界定知识点,做到知识点全覆盖且不重复。
理论教学的配套实验是能力建设的关键支撑,实现五门课程配套实验融通,在以Xilinx FPGA 器件的开发板Nexys 4 DDR Artix-7 为硬件实验平台,以Logisim、Mars、Modelsim、Vivado、VMware 与Ubuntu 等配套开发软件[2],实现实验课程在同一平台融通(图1)。
图1 骨干系列课程能力建设融通平台
从图1 可以看出,通过理论与实验教学结合,以及主干课程的能力建设贯通,使学生的知识、能力与创新思维达到新的高度,并通过学生与教师的专题辅导与讨论及评价改进制度,形成完整的教学反馈机制,不断提升教学效果。
课程的理论教学与实验实践融合在实施过程中首先选择两届计算机专业学生先开试点班,形成较成熟的教学经验和实践教学案例后,再在计算机专业全年级学生铺开,不断优化完善和迭代,形成较完善的教学经验和模式,使教学方法与质量不断提升。理论教学与实验实践贯通模式如图2 所示。
(1)通过数字逻辑课程的理论知识和从基本门电路与数据扩展描述到综合数字系统共10 个实验实践,培养学生应用组合逻辑与时序逻辑的基本原理设计基本的加法器、RAM、寄存器、ALU 等部件单元,并作为计算机组成原理课程实验实践项目的前期知识和基本输入。
(2)在计算机组成原理实验的31 条和54 条MIPS指令单周期CPU 设计过程中[3-4],作为基本部件单元或模块进行调用,使数字逻辑和计算机组成原理的理论与实验实践贯通,使学生了解CPU 的基本组成和工作原理,培养其一般工程建模的能力[5]。
(3)计算机组成原理实验实践获得的单周期CPU设计和验证方法作为计算机系统结构实验实践项目的前期知识和基本输入,并在简单8 条MIPS 指令五级静态流水线和54 条MIPS五级静态流水线与五级动态流水线CPU 设计的过程中,作为基本模块设计和验证方法深化静态与动态流水线CPU 的框架设计和优化,以提高CPU 的效率和性能,达到提升学生解决复杂工程问题能力的目的。
数字逻辑课程在开展组合逻辑和时序逻辑等理论知识教学时,同步配套数据选择器与分配器、译码器、存储器与寄存器、算术与逻辑运算器等10 项实验项目。教师根据各实验项目的工作内容和难度,合理安排设定各实验项目的时间长度,真正落实理论教学和实验项目融合。通过实验培养学生对 Logisim、Modelsim、Vivado 工具软件的使用,提升以Nexys 4 DDR Artix-7 为硬件实验平台的组合逻辑和时序逻辑电路的设计能力,加深理论知识的理解,并通过综合实验实现一个基本的数字系统,培养学生进行硬件设计的基本能力[6-7]。
计算机组成原理在理论教学同时配套MIPS 汇编实验、32 位乘法器与除法器、31 条与54 条指令单周期CPU 设计等实验,通过实验加强学生对Mars、Modelsim、Vivado 工具软件的使用。学生通过对一台计算机的部分或全部功能部件及实验机整机的学习与设计,理解和掌握一台计算机整机系统中软件硬件的组成及相互之间的配合,加深对课堂教学内容的理解和掌握。培养学生全面理解计算机系统各大部件的基本原理及工作过程,从而在实践过程中培养学生理论联系实际与解决问题的动手创新能力。
图2 理论教学与实验实践贯通模式
计算机系统结构理论与实验融通是建立在同济大学计算机专业已有的硬件综合实践培养方案的基础上,进行再扩展、再拔高、再实践。本专业的本科生已经在数字逻辑、计算机组成原理这两门课程中完成了在FPGA 开发板上对基本硬件电路、CPU 各个基础模块、单周期CPU 的实现,然而现实应用中的CPU大多是流水线CPU,因为流水线CPU 技术能够极大地提高CPU 的处理效率[8-10]。因此,本课程实验是在已经完成的单周期和多周期CPU 的基础上,按照课程培养目标进行CPU 的优化实验,设计流水线CPU,依次实现多功能静态流水线CPU 和多功能动态流水线CPU,并实现完备的三级存储体系,使学生具备自己开发、设计、实现计算机系统的能力。计算机系统结构的课程实验项目的具体任务包括多个CPU 设计的基本实验和一个三级存储体系设计的综合性实验,均以FPGA 开发板、Vivado 和Modelsim 软件作为实验开发平台[11-12]。
(1)基本实验一引导学生设计自己的54 条 MIPS指令的单周期CPU,巩固学生已学习的CPU 的组成部件及基本工作原理的相关知识,并以此作为计算机组成原理向计算机系统结构实验项目的衔接与过渡。
(2)基本实验二引导学生设计自己的一个8 条MIPS 指令的五级静态流水线CPU,初步建立流水线的基本概念与流水线的设计方法。
(3)基本实验三和基本实验四训练学生设计和实现自己的54 条MIPS 指令静/动态流水线CPU,使他们深入理解静/动态流水线的工作机理和冲突解决机制。
(4)综合性实验三级存储体系设计是,设计与优化Cache 高速缓冲存储、SDRAM 或DDR 与SD 存储卡的三级存储方案,并对不同的路数与块大小的命中与失效情况进行定量化分析,以确定较优的Cache 部署方案。
通过这四项基本实验,构建出自己的中央处理器,结合FPGA 开发板的外围接口,形成综合实验的物理环境。综合实验是利用基本实验三与基本实验四的成果和FPGA 开发板的外围接口,研制开发一个基于FPGA 开发板的完整的计算机系统,为操作系统的构建与移植提供充分的硬件与软件环境。通过多个基本实验和一个综合实验,使学生加深对理论知识的理解和掌握,完成对计算机系统设计与优化所需要的基本动手能力的训练。
所有学生完成四个基本实验项目,才满足基本的能力要求;综合实验项目充分激发学生的学习兴趣,提升优秀学生的设计创新能力。在计算机系统结构的基本实验三、四和综合实验基础上将逐步打通操作系统实验,利用VMware 与Ubuntu 等配套开发软件实现嵌入式操作系统的开发和UI 的移植,从而实现五门主干课程理论和实验教学在Nexys 4 DDR Artix-7硬件实验平台上的贯通。
教育信息化是教学能力提升的助推器,是实施教学革新的措施和手段,学生完成的实验项目成果的递交、程序文件的验证、源码的单一性评估、实验项目总结报告的查重、实验成绩的评估是一项任务繁重、数据量庞大的艰巨工作,必须以信息化的管理方法来支撑教学能力建设。为此,同济大学计算机系统结构教研室和同济大学计算机国家实验示范中心历经多年开发实验管理平台v1.0(http://mips246.tongji.edu.cn),已完成数字逻辑、计算机组成原理、计算机系统结构等课程实验项目学生成果的递交,以及数字逻辑、计算机组成原理课程实验的程序文件的验证,同时为本校和兄弟院校计算机专业师生提供7×24 小时全天候资源服务。
在已有实验管理平台v1.0 的基础上,同济大学计算机系统结构教研室和同济大学计算机国家实验示范中心正研究人工智能和知识图谱,进行大学计算机系统能力建设平台v2.0 开发,以实现程序文件的验证、源码的单一性评估、实验项目总结报告的查重、实验成绩的评估功能,开发成功后将继续为兄弟院校提供资源服务。
由于不同课程的理论课和实验课设置不一样,对单独安排实验课的课程,理论课和实验课分开考核和评估,并在理论课的考试题中设置一道实验考题;对没有单独安排实验课的课程,则对理论和实验进行综合考核和评估。
(1)数字逻辑、计算机组成原理对理论和实验都设置课时,对数字逻辑实验考核评估采用平时成绩(20%)+平时实验成绩(40%)+综合实验成绩(40%),对计算机组成原理实验考核评估采用考勤(20%)+实验结果(80%)。考核评价在强调学生出勤参与实验的同时,更加强调实验项目和任务的按时完整,重点关注学生实践能力的提高和创新素质的培养[13]。
(2)计算机系统结构理论课配套设置计算机系统结构实验,但没单独设置实验课时,对计算机系统结构考核采用综合评估的方式。每个学生必须完成两个基本实验,且完成一个综合实验,方能提出免考申优答辩,获得资格的参加申优答辩。没能获得申优答辩资格的学生,参加大组答辩,必须参加期终考试。申优答辩没有获得优秀的同学,成绩为良,可选择参加期终考试。每个基本实验占总评25 分,共占50 分;综合实验占40~45 分。对计算机系统结构考核评估采用如表1 所示的分值。
表1 计算机系统结构考核评估分值
表2 计算机系统结构实验评价指标要求
表1 表中的评价指标要求见表2,数字逻辑实验、计算机组成原理实验的评价指标要求采用类似的方式设置。
同济大学计算机系统结构教研室将依托教育部产学协同育人项目、同济大学实验教学改革项目,在能力建设平台贯通方面继续深入探索。我们计划以计算机系统结构实验五级静态流水线、五级动态流水线以及三级存储体系为基础打通操作系统实验,实现嵌入式操作系统和UI 的移植,使学生的专业创新能力得到跨越式提升——从运用计算机到设计实现自己的计算机。我们将充分应用和挖掘系统能力支撑平台的样本与数据,开展学生学业负担与绩效、学业延续性分析,进行量化研究,为教学和学生培养提出有针对性的指导策略。同时,我们将继续开放能力建设平台资源服务,促进资源共享,提升整体教学能力。