APP下载

面向计算机专业学生系统能力培养的探索

2017-12-02宁晓菊,翟社平,杨锐,邢高峰

教育教学论坛 2017年44期
关键词:计算机组成原理计算机专业

宁晓菊,翟社平,杨锐,邢高峰

摘要:计算机专业的学生要求更多地关注计算系统的整体特性,培养自身计算机系统能力。本文分析了系统能力的内涵,并且从现状入手,从系统观角度出发,根据当前计算机专业学生在系统能力培养方面存在的问题,探索和研究计算机专业学生的系统能力培养,建立以计算机组成原理为核心的硬件课程群。

关键词:计算机专业;系统能力;计算机组成原理

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)44-0257-03

一、引言

系统能力的关键内容是要在掌握相关计算机基本原理的基础上熟悉如何进一步开发构建以计算技术为核心的应用系统[1]。对于大多数计算机专业的本科生来说,硬件水平不如电子工程专业的本科生,软件的开发及应用能力不如相关专业的学生,算法设计及分析基础又不如数学专业的学生,那么,计算机专业学生的特长在什么地方呢?会编程决不是我们的特长,我们的特长是“具有计算机系统能力”,即“系统思维”。因此,计算机专业应更加注重对学生计算机系统能力的培养。计算机专业的课程体系与内容建设要与时俱进,不断翻新、推陈出新,同时相应地还要加强计算机系统设计与创新的能力。而计算机组成原理是计算机专业的核心基础课程[2],在课程体系中占有非常重要的位置,起到承上启下的作用。教师以程序设计语言及数字逻辑电路作为先导课程[3],重点解析计算机硬件系统的基本组成、运行原理和协同工作机制,分析计算机组成对系统性能的影响,阐述计算机系统的基本设计方法,帮助学生建立计算机整机系统的概念[4],为学习系统结构等课程提供扎实基础。该课程对学生全面理解计算机的系统层次结构、理解软硬件之间的关系、构建计算机的整机概念、培养计算机系统分析设计及开发能力都起到十分重要的作用。

二、增强学生的系统能力培养

2013年—2017年教育部高等学校计算机专业教学指导委员会制定的教学指导计划中指出,计算机专业应该培养的四大基本能力是计算思维能力、算法设计与分析能力、程序设计与实现能力和系统能力。计算机组成原理课程应从全局和系统的角度介绍进行计算机整机设计所必须了解与掌握的专业知识,为培养学生的系统认知、系统设计、系统开发和系统应用能力打下坚实的基础,这四方面就构成了系统能力。四大基本能力及能力点分配见表1,每种基本能力都有相应能力点的分配,其中系统能力占到75%[5]。

目前加强系统能力培养是计算机专业学生最重要的任务。而计算机组成原理则是计算机专业系统能力培养系列课程中的最核心课程,在计算机专业课程体系中起到了承上启下的作用,主要介绍构成计算机的各个功能部件、计算机的组成及工作原理,其重要任务就是培养学生对计算机硬件结构的分析、应用、设计及开发能力,它也是编写高质量程序代码的专业基础课。一般都把计算机系统结构、计算机组成原理、操作系统和编译原理这4门课程作为计算机系统能力培养最基本的核心课程。有了计算机组成原理核心课程的基础,学生就更容易从计算机系统整体的角度理解操作系统、编译原理等后续课程[6]。这样,学生才能更容易的形成完整计算机“系统观”的概念。

三、系统能力培养现状及问题

目前国内一些有名高等院校,如南京大学、复旦大学、清华大学、北京航空航天大学、浙江大学、西北工业大学、国防科技大学等,正在不同程度上积极进行系统能力培养的探索与实践。北京航空航天大学高小鹏老师认为,计算机专业学生的“系统能力”是要有能力设计一个包括微处理器、操作系统和编译器的计算机系统,并且提出了由学生自主设计“一个微处理器、一个操作系统、一个编译器”的目标,从而完成计算机系统设计和实验;确定了“三工”准则为教学定位,即工业标准、工程规模和工程方法。北航将数字电路、汇编语言程序设计、计算机组成原理与微型计算机原理合并为一门学科基础大课,主要是在UC-Berkeley(加州大学伯克力分校)EECS系的课程Great Ideas in ComputerArchitecture(Machine Structures)(CS61C)基础上进行教学内容的裁剪。南京大学袁春风老师编写了为加强学生“系统观”的计算机类专业系统能力培养系列教材《计算机系统基础》[5],并且所授课程已在Coursera平台上线。课程从程序员视角出发,重点介绍如何利用计算机系统知识编写更有效的程序,以高级语言程序开发和运行过程作为一条主线,将该过程中每一个环节所涉及到的硬件和软件的概念关联起来,使得学生可以初步理解计算机系统中的每一个抽象层和它们之间的相互转换关系,从而为后续课程打下基础。浙江大学计算机学院近些年来围绕着“面向系统设计能力培养”这一课程建设核心,以计算机系统设计与实现的实践过程为手段,以深刻理解计算机系统和高性能程序设计为目标,以数字电路设计、计算机组成原理、计算机编译技术、计算机操作系统等课程为主线,以系统的设计能力为统一视图,建立了层次化、循序渐进、开放式课程群的课程体系和实验体系。

我校西安邮电大学计算机学院也紧跟国内知名大学的步伐,进行了学生系统能力培养的探索。然而在教学中还存在如下问题。

1.目前学生所学的相关课程,如数字电路、汇编语言程序设计、组成原理、操作系统以及编译原理这几门课程仍然独立规划和独立教学,并没将培养学生的系统能力作为共同的教学目标,从而导致了知识点在各门课程中重复讲述以及前后衔接关系的脱节。每门课程都太注重各自知识体系的完备性,尤其是在系统性实验课程中设计性实验相对欠缺,主要停留在验证性实验上,使得学生很难形成一个完整的计算机系统观。

2.目前计算机专业的学生普遍以为专业学习就是学习编程,出现了一种“欺软怕硬”的现象,大多精力都用来学习Java、C/C + +、数据库以及前端开发等軟件知识,却忽视了硬件视角下编译优化的基本技术,不明白从硬件角度出发编制高效程序的原理,因此利用硬件知识进行程序调试的能力很弱。endprint

3.大部分学生认为学习编程就是把时间和精力放在程序的语法和功能逻辑部分,而忽略了对计算机系统中各个抽象层之间的相互转换关系的理解。

四、改革与探索

针对上述问题,我们计算机学院关注计科专业学生系统能力培养,首先就是提升该专业学生对计算机系统的整体认知能力。为此要改变以往各门课程的独立规划、独立教学,以及知识体系中知识点冗余和衔接关系脱节的现象,采用软硬件课程贯通整体设计,构建面向系统能力的课程体系。以系统能力培养为目标,明确计科专业课程体系的基本教学目标:建立计算机系统的完整概念,深入理解计算机系统中各个抽象层次之间的转换关系。深刻理解操作系统和硬件之间的分工及衔接关系,理解从硬件角度出发进行编译优化的基本技术。通过将教学内容统一编排,明确课程体系中各门课程的定位和设置以及各门课程教学内容的关联和之间的衔接,建设一体化课程体系,从而为学生构建完整的面向系统的知识体系和知识结构。面向系统能力培养的硬件课程群以数字电路课程为基础前导,重点讲述计算机数字电路原理与设计技术并为后续课程提供基本数字系统器件,如核心选择器、译码器、加法器、寄存器组和状态机模块等;以计算机组成原理为群内核心,重点讲述计算机各个部件的设计技术,如RISC指令系统、数据通路、单周期和多周期控制器、总线架构等处理器集成和应用技术,为后续课程提供可用的多周期微处理器;以计算机系统结构为深入提高,重点讲述计算机硬件系统的相关优化技术,如存储层次优化、流水线处理器等,并为后续课程提供流水线微处理器。核心课程群统一考虑3门课的教学与实验,构成三位一体、循序渐进、紧密结合的层次关联。在核心课程群的基础上,引入微机原理、嵌入式系统等课程,建立起硬件范畴的扩展课程群,深化硬件系统的学习和实践。

而在计算机系统能力的培养过程中,实践占了很大比重,是学生应用学过的原理性知识,解决实际计算机系统设计问题的一个过程,更是深入理解教学内容的非常重要的手段。计科的专业课都有自己的课内实验和集中实践环节,大多采用孤立的传统验证型实验方法。面向系统能力的培养要求,需要将软硬件贯通进行整体设计,所以需要研究以实现模型机为目标的实验体系。为此需要确认各课程的阶段子目标和相应的实验内容,进行模块化设计,完成模块设计和实现后,再通过综合实验来最终集成,形成一个基本完整的模型机系统的设计和实现。通过合理规划实验内容,实现各课程间实验的有机衔接。需要贯穿这样一条主线:作为底层,“数字电路逻辑”实验围绕着构建微处理器内部所需的各种功能部件来展开;“计算机组成原理”实验则是利用数字电路逻辑实验所开发的功能部件作为基础,以构造能支持操作系统运行的MIPS微处理器为主线展开;进一步扩展到微机原理接口实验和嵌入式系统设计实验。微机原理接口实验主要完成汇编、微处理器与存储器、输入输出接口实现技术,为后续课程提供存储器、键盘、鼠标、串口、显示器等构成计算机硬件系统的基本外围部件;嵌入式系统实验主要完成面向特殊领域的计算机软硬件设计技术,是计算机硬件系统现实的应用。通过研究明确各个设计模块之间的输入输出关系,从底层逐步向高层过渡,最终使学生全面建立计算机系统的整机概念。而实现上述系统是一个比较复杂的过程,各模块之间有机联系、输入输出关系对应,需要研究选择合适的实验平台,并在进一步教改开展的过程中根据计科专业实际情况对实验平台进行改进和扩展。最后在此基础上开展模型计算机系统综合设计实践。模型机设计应该在两个层次展开,首先在学生完成数字逻辑电路、Verilog语言程序设计、计算机组成原理相关课程学习后,要求学生综合利用各课程所学知识设计和完成一个有一定规模指令集的RISC计算机系统。其次,进一步结合操作系统和编译原理以及汇编语言程序设计中的知识,积极探索软硬件结合的计算机系统设计方法,不仅要从功能部件本身考虑,还要从整个系统的角度出发设计计算机,比如理解在开发过程中编译器的选择、指令集的选择、硬件中器件的设计等,培养学生能够进一步优化与改进系统的能力。

我们在面向系统能力培养的前提下,结合计科专业培养特色,从工程教育的角度,将原理性与工程性结合,研究在新的模式下的全新教学方法。具体研究:(1)如何将原理内容与工程性有效结合,让学生能够将课堂所学在实验和设计中学以致用。(2)能让大多数学生按照培养要求,最终实现一个完整的模型机系统是一个教学难题,为此需要研究合理的阶梯式实验实施方法,让多数人能够达到要求。(3)统一架构下各课程的课堂教学、实验教学、课程设计教学环节纵向贯通教学的操作方法,探讨开展设计性实验、系统性实验设计的开展时间、组织方式、学生参与方法、研究生助教指导方式等,以更好地开展人才培养。同时面对全新的教学内容和实验模式,需要研究多种激励机制,激发学生的学习热情。此外,还需要研究新的考核评价标准。目前组成原理、体系结构等课程实验课成绩在总评成绩中所占比重过小。结合系统能力的培养重点,既要在理论课程中加强面向系统能力的核心知识的考核,又要加强对实验的考核力度。为此分级考核评价标准:可以考虑将实验分成多个Project,明确做到什么层次可以获得良,什么层次可以申优。为了防止学生之间相互抄袭,可以考虑验收时每组学生用不同测试例子,教师现场提问,或者增加指令限时开发。同时结合日常实验行为的收集,通过行为分析,修改辅助决策,最终形成一套行之有效的考核标准。

五、结束语

基于以计算机组成原理课程为核心的课程群在系统能力培养体系中的重要地位,我们计算机学院先对计算机组成原理课程进行改革,以逐渐培养学生的系统能力。如何使计算机组成原理课程从单纯的硬件讲授,转变为以提高系统级设计、实现以及提高应用能力为导向的新教学形式,是计算机专业学生“系统能力”培养的重点。西安邮电大学计算机学院目前试点对计算机组成原理课程进行改革和建设,采用新的教学体系、方法和模式,目的是使学生在理解计算机原理的基础上,从系统层面思考,夯实系统理论基础。但学生的系统能力的培养不能仅仅依靠一门课程的改革,它涉及到了数字逻辑、程序设计、操作系统、编译技术、计算机体系结构等多门课程,面临着巨大的挑战,需要我们教育工作者不断学习、研究、探索和实践。

参考文献:

[1]王志英,周兴社,袁春风,吴功宜,张钢,何炎祥,陈向群.计算机专业学生系统能力培养和系统课程体系设置研究[J].计算机教育,2013,(9).

[2]唐朔飞,刘旭东,王诚.“计算机组成原理”课程教学实施方案[J].中国大学教学,2011,(11).

[3]丁柏秀,王文涛,吕晓丽.“计算机组成原理”教学内容及教学方法探讨[J].长春理工大学学报,2012,(1).

[4]袁春风,张泽生,蔡晓燕.计算机组成原理课程实践教学探索[J].计算机教育,2011,(17).

[5]常瑞,何红旗,黄浩炜,丁文博.面向系统能力的计算机系统结构课程教学内容设计[J].计算机教育,2014,(10).

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

猜你喜欢

计算机组成原理计算机专业
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
基于专业方向课程群的计算机专业教学改革探索
面向计算机系统能力培养的计算机组成原理实验教学
用“工程思维”引领《计算机组成原理》课程教学
《计算机组成原理》课程建设的改革与探索
CDIO模式下计算机专业实践教学改革策略研究
职业高中计算机专业教学改革浅析
非计算机专业C语言教学探讨
新形势下技校计算机专业人才培养探讨