以培养学生能力为导向的计算机系统类课程体系的构建与研究

2017-04-12 02:02方英兰
计算机教育 2017年3期
关键词:计算机系统计算机专业原理

吴 磊,方英兰

(北方工业大学 计算机学院,北京 100144)

以培养学生能力为导向的计算机系统类课程体系的构建与研究

吴 磊,方英兰

(北方工业大学 计算机学院,北京 100144)

阐述在 FPGA平台上,以 MIPS 指令系统设计 CPU,以该CPU 构建计算机系统,在构建的计算机系统上运行具有简单调度功能的操作系统,并对设计 CPU 时定义的 MIPS 指令进行编译。最后提出将计算机系统类核心课程(CPU 设计、调度实现、指令编译)的实验贯通起来,形成计算机系统的整体框架观点。

计算机系统类;计算机系统类核心课程;教学改革;MIPS;设计CPU;FPGA

1 国内外计算机系统能力培养的实践与探索

计算机系统能力培养的概念是伴随着计算机科学技术的飞速发展,适应当代社会对计算机专业人才的需求和专业素质的要求提出的。计算机系统能力培养教育在美国起步早、发展顺、成就高,课程体系相对成熟。我国的计算机科学与技术学科教程(China Computing Curricula)基本上以IEEE/ACM的计算学科本科教学参考计划(Computing Curricula)为背景设定的,每年用于计算机教育引进的国外优秀教材也大部分来自美国。因此,美国高校计算机系统能力教育的培养方案、实施情况及取得的成果为我国提供了良好的比照模型和借鉴启示。

美国主要以UC-Berkeley(加州大学伯克力分校)EECS 系的课程Great Ideas in Computer Architecture (Machine Structures)(CS61C)和卡内基·梅隆大学的深入理解计算机系统(Computer Systems A Programmer's Perspective)为主要教学方式。目前国内只有少数重点院校进行了这方面的教学与实践,清华大学、北京航空航天大学、南京大学、浙江大学等在不同程度和不同形式上进行了计算机系统能力培养的实践与探索[15]。

计算机学科的知识体系是一个动态变化的知识体系,顺应计算机学科发展以及社会对计算机专业人员素质的要求,及时动态地调整计算机系统类课程教学内容是时代和社会的要求。国内外高校的探索与实践结果表明:计算机系统能力培养是提高计算机专业本科教学质量和水平的一个重要方面。改进培养手段和方法,充实和完善计算机系统类课程体系的教学与实验,具有开拓意义,也具有理论指导意义。

2 计算机系统能力培养的途径和计算机课程之间的关系

2.1 计算机系统类核心课程教学与实验是计算机系统能力培养的重要方面

计算机系统类核心课程通常指计算机原理、操作系统和编译原理这3门课程。计算机系统类核心课程教学和实验属于设计性、综合性和延展性的专业课程。计算机系统能力的核心是熟悉如何进一步开发构建以计算技术为核心的计算机应用系统。计算机系统能力包括计算机系统分析能力、系统设计能力和系统验证能力3个方面。3个方面相辅相成,共同构成计算机专业本科学生的基本能力和专业素养[59]。

2.2 计算机原理的教学与实验是计算机系统核心类课程的中心

计算机系统能力的培养从根本上说依赖于计算机系统类核心课程,而计算机原理课程在整个计算机系统类核心课程链中处于中心位置。计算机原理课程教学与实验效果,在很大程度上直接影响操作系统和编译原理这两门课程的教学与实验效果,将计算机原理课程的教学与实验放在十分重要的地位是非常必要的。

2.3 设计CPU是计算机原理课程中教学和实践中最重要的方面

设计CPU是计算机原理教学和实践中最重要的一部分,目前它是国内外计算机原理课程教学与实验的重点内容。以往的传统计算机原理教学中理论过多、实践过少,国内外的教学计划和课程大纲都没有涉及让学生有目的地接受和进行CPU设计的实验,没有涉及让学生通过设计CPU的实验去创造性地学习计算机原理,并在设计实验中学习CPU的运行原理和实际执行过程。因此,CPU设计实验不仅是一种设计技术手段,而且是一种学习计算机原理的根本变革,将原来对计算机原理的理解上升到计算机的设计与实现,由学习理解上升到实际应用,由强调对知识的掌握转变为强调对能力的培养,顺应了计算机学科发展以及社会对计算机专业人员素质的要求。

国内几所重点高校进行了数年的积极探索,开展CPU设计并提供了示范和案例。然而,这些重点院校大多要求学生设计实现具有一定工程规模的CPU指令集,如50条以上的指令集。由于学生初次涉足CPU结构,对计算机原理尚处于初步认识和理解阶段,CPU设计实践只是初试身手,过高要求容易造成大部分学生在遇到问题时无法解决,产生迷茫感和挫折感。这也是为什么CPU设计的教学与实验至今仍未能在全国高校普遍展开的一个重要原因。

3 计算机系统类核心课程教学与实验模式的探讨和研究

3.1 面向计算机系统能力培养目标的总体思路

广州地铁5、6号线的直线电机气隙在线监测系统安装在正线上,可实现对正线运营列车电机状态的监测预警。但通常情况下,当直线电机气隙在线监测系统能够检测到异常时,设备已经处于故障状态了。因此,能否在故障出现前预判出故障的苗头,就需要研制直线电机下沉预警子系统。这样,在故障真正出现前,便可预判出故障的苗头,这对于维护检修的意义更加重大。

面向计算机系统能力培养目标的总体推进思路见图1,总体推进思路强调的是以计算机系统设计与实现的实践过程为手段,以深入理解计算机系统为目标,贯通计算机原理、操作系统、编译技术等课程;以系统设计能力为统一视图,建立层次化、完整性、系统性、循序递进的课程体系和实践目标,让学生逐步递进设计实现简单但完整的计算机系统,用简单的计算机调度程序在自己开发的计算机系统上运行,并用自己开发的编译程序对定义的MIPS指令进行编译[1011]。

3.2 构建与理论教学有机结合的面向计算机系统能力培养目标的实践体系

计算机系统类核心课程实验体系的思路和路线图是:以数字逻辑设计方法为设计基础、以硬件描述语言为设计工具、以硬件仿真系统为验证环境、以FPGA为系统实现载体、以计算机系统设计实现为目标和主线,将计算机系统设计实践完整地贯穿于计算机专业核心课程之中,CPU设计能真实反映学生的计算机系统能力;以计算机系统设计能力为统一视图,建立层次化、循序递进、开放式课程实践体系;其次,通过领会已设计的计算机系统定义的MIPS指令集,编写基于MIPS指令集的编译系统,通过编写编译系统使学生理解和掌握将一种语言转换为另一种语言的方法和过程,从而构建计算机原理与编译技术之间的贯通视图和清晰的相互关系;最后,针对已设计的计算机系统,编写一个具有简单调度功能的操作系统,对已设计的计算机系统进行简单管理和运行,同时对学生设计的CPU和计算机系统进行验证,构建计算机原理与操作系统之间的贯通视图和清晰的层次关系,从而实现将计算机系统观放到软硬件设计的具体情境中,通过贯穿整个计算机系统核心课程的设计和综合实验训练, 力图使学生具有计算机系统视角能力,提高学生设计与综合能力。

图1 计算机系统能力培养目标的总体推进思路

4 计算机系统能力培养途径的探索和研究

4.1 CPU设计是计算机系统能力实现的一个至关重要的环节

CPU设计是实现计算机系统能力的一个至关重要的环节,CPU设计环节的缺失容易造成学生对计算机原理的内容理解不深不透[1219],通过CPU的设计可以对计算机原理有一个全面的理论认识和切身的设计体会。

这里我们一改传统的CPU设计模式,借助工程设计的思想,以搭积木的形式,围绕指令和指令类设计CPU,降低了CPU的设计难度。首先搭建CPU主干,再一步步添枝加叶实现完整的MIPS指令集,在不降低计算机系统难度的情况下,帮助学生循序渐进地完成CPU设计。此类工程方法步步深入、有章可循,实践证明这种方式减小了学生实现CPU设计的阻力,是教学与实验中最容易理解和接受的方式,也为大部分学生所喜爱,即便是普通高等院校的学生在学习计算机原理这门课后,也能较快地掌握并设计出合格的CPU。因此,这种全新的教学和设计实验模式更具科学性、普适性及实效性,易于在更广泛的全国普通高等学校计算机专业推广。

基于MIPS架构进行CPU的设计,针对设计出来的CPU,结合操作系统实验,要求学生编写一个调度程序,将调度程序预先存放在指定的ROM区域中,在CPU上运行1+2+ +10,其中1,2, ,10共10个数,预先存放在RAM的某个区域。每次做加法时,调度程序到指定的RAM区域中取两个数,完成加法运算后,将和送到RAM指定地方。学生自己设计CPU,并能在自己设计的CPU上调度数据,是对软件仿真和验证的进一步提升,可以验证设计出来的CPU功能是否完善,存在哪些不足和考虑不周全的地方,从而将计算机原理与操作系统实验有机地结合起来。同时,要求学生能对CPU设计时选定的MIPS指令进行编译,将编译后生成的机器码在CPU上执行,可以检验编译系统能否正确地将MIPS指令编译出正确的机器码,从而实现了将计算机原理设计实验和操作系统与编译原理的实验进行有机的贯通。这样就将计算机系统类课程实验有机地结合起来了,也保持了学习和实验的连贯性。

4.3 通过计算机系统类核心课程实验引导学生发现问题和自主创新

CPU设计实践教学是计算机系统能力培养过程中不可缺少的重要环节。计算机专业系统能力的培养与CPU设计实践教学密不可分。在计算机系统能力的培养上,CPU设计实验教学项目和实验手段是卓有成效的载体。

MIPS指令集传统结构为5级流水线经典架构,国内外大部分教材和论文均基于此架构实现,但经过反复研究和论证,我们发现采用自主创新的4级流水线结构,可以在提高CPU效率的同时降低指令相关性的实现难度,在实验过程中逐步增强学生CPU设计实验的兴趣和成就感,教师进而引导和启发学生在设计中的自主创新思维,自主研究探索CPU设计,鼓励学生自行设计具有个人特点的CPU。

5 计算机系统能力培养的难点和困难

5.1 CPU设计目前比较困难的是没有合适的实验指导书

由于国内在开展CPU设计方面的教学与实验尚处于探索起步阶段,缺乏有关CPU设计方面合适的教学与实验指导书,这一点与美国高校有很大不同。在美国常青藤类大学,当他们决定开设哪些课程时,通常伴随着编写合适的教材(其内容隐含了实验部分)及教材的更新。而且,美国大学的计算机教材多数由著名学者编写,内容接近最新的技术,更利于学生学习先进的知识。国内的许多优秀教材都是从美国引进,主要是由于其教材更适合当前的教学,质量较高,但大部分是英文原版教材,因此在普通高校直接选用美国的教材有一定难度。

5.2 计算机系统能力培养对教师也是一个新课题和挑战

将以教师为中心的讲授原理本身的教学转为以学生为中心进行设计实验的教学,是实现计算机系统能力培养的重要手段和思路。目前,由于种种原因,在推行“以学生为中心进行设计实验”方面还不尽如人意,部分教师对该理念的认识和界定存在偏差。其中,最主要和最难的是如何改变以教师为中心的讲授原理本身的教学模式。设计适合计算机专业的“设计实验课程”,使计算机系统核心课程之间(专业解决方案)既互相联系又统一贯通,并能够系统观察分析——这是计算机系统能力培养的关键。

5.3 计算机系统能力培养对学生也是一个挑战

改变学生的学习方式,让学生在设计及综合实验的过程中,体会遇到困难时,一方面要能提出问题,寻求教师的指导和帮助;另一方面,要主动利用各种媒体查找资料,同学之间应协作互助,共同探讨解决难题和困难的途径和模式。力求使学生达到更高的学习与设计水平,培养学生计算机系统观素养的同时,提高其学习及设计能力[20]。

6 结 语

计算机系统能力培养的教学与实验对计算机系统核心课程任课教师提出了更高的要求,因此必须强化计算机专业教师的培训工作,特别要重视以计算机系统能力核心课程教学与实验新教材的编写工作,以便使计算机专业人才培养和教育跟上学科、技术和产业的发展步伐。北方工业大学计算机学院教师敏锐地判断教学改革趋势并及时进行改革探索,逐步凝练出具有鲜明特色的教学与实验成果和经验。下一步的工作拟进一步完善理论内容和实验环节,探索新型教学与实验模式。教学改革任重道远,我们希望能够得到更多同行的帮助和支持。

[1] 李山山, 全成斌. 美国计算机硬件系列课程与实验的调研报告[J]. 计算机教育, 2010(15): 16-20.

[2] 王 帅, 袁春风. 美国一流大学计算机组成与系统结构实验课程研究[J]. 计算机教育, 2011(17): 115-118.

[3] 寇光杰, 邹海林, 杨洪勇. 欧美计算机专业教育的特点与启示[J]. 计算机教育, 2012(19): 102-106.

[4] 寇光杰, 邹海林, 杨洪勇, 等. 欧美计算机专业教育的历史、现状及发展趋势[J]. 计算机教育, 2012(19): 96-101.

[5] 高小鹏. 计算机专业系统能力培养的技术途径[J]. 中国大学教学, 2014(8): 53-57.

[6] 王志英, 周兴社, 袁春风, 等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育, 2013(9): 1-6.

[7] 袁春风, 杨若瑜, 王帅, 等. 计算机组成与其他课程之间的关联内容分析[J]. 计算机教育, 2015(17): 35-38.

[8] 刘卫东, 张悠慧, 向勇, 等. 面向系统能力培养的计算机专业课程体系建设实践[J]. 中国大学教学, 2014(8): 48-52.

[9] 蒋永国, 洪 锋, 董军宇. 面向系统能力培养的计算机组成原理核心课程建设[J]. 计算机教育, 2015(21): 3-6.

[10] 陈文智, 陈 越, 庄越挺. 面向系统设计能力培养的教学改革探索[J]. 计算机教育, 2013(20): 70-76.

[11] 施青松, 陈文智. 强化计算机课程贯通教学深入面向系统能力培养[J]. 中国大学教学, 2014(12): 61-65.

[12] 袁春风, 王 帅. 大学计算机专业教育应重视“系统观”培养[J]. 中国大学教学, 2013(12), 41-46.

[13] 李山山, 汤志忠, 周继群. 基于FPGA的开放式教学CPU的设计与测试系统[J]. 计算机工程与应用, 2015(14): 98-100.

[14] 黄世梅, 傅金枝. 基于FPGA技术的计算机组成原理实验教学方法[J]. 福建电脑, 2013(5): 47-48.

[15] 陈永强, 全成斌, 李山山. 基于远程硬件实验系统的多流水带CacheCPU设计[J]. 实验技术与管理, 2012(10): 86-88.

[16] 刘宁. 基于MIPS指令集的RISC微处理器数据通路的设计与实现[D]. 武汉: 华中科技大学, 2008:5-52.

[17] 纪禄平, 罗克露. 计算机组成原理创新型教学方法设计[J]. 计算机教育, 2011(7): 85-91.

[18] 杨泽雪, 闵 莉, 王建伟. 计算机组成原理课程实验教学探讨[J]. 计算机教育, 2015(4): 107-110.

[19] 张大发, 曹庆华, 傅翠娇. 解决CPU流水线冲突技术的设计与实现[J]. 现代电子技术, 2008(4): 21-23.

[20] 鲁荣波, 李宗寿, 贺宏遵, 等. 加快计算机硬件课程群实践教学体系改革, 提高学生实践和创新能力[J]. 当代教育论坛, 2011(2): 109-111.

(编辑:孙怡铭)

1672-5913(2017)03-0048-05

G642

2016年北方工业大学优势学科项目。

吴磊,男,副教授,研究方向为计算机硬件、嵌入式技术、无线传感器网络,stone.wu@ncut.edu.cn。

猜你喜欢
计算机系统计算机专业原理
新工科背景下计算机专业创新创业人才培养探究
高职计算机专业教学中融入课程思政的实践路径
中职计算机专业产教融合混合式教学研究与实践
基于包络解调原理的低转速滚动轴承故障诊断
互联网+环境下的高校计算机专业课堂教改现状及建议
基于电力系统备自投实现功能原理概述
关于不法分子冒充《小型微型计算机系统》名义诈骗的严正声明
IBM推出可与人类“辩论”的计算机系统
关于不法分子冒充《小型微型计算机系统》名义诈骗的严正声明
计算机系统集成实施与项目管理途径分析