APP下载

应用型本科计算机类专业系统能力培养课程体系

2016-04-29罗先录谭德立张永棠陈桂宏

软件工程 2016年2期
关键词:工程教育应用型本科

罗先录 谭德立 张永棠 陈桂宏

摘 要:系统能力是近期提出的计算机类专业的一个重要能力,应用型本科需要重视本项能力的构建,从而为工程实践能力做好前期基础准备。通过研究国内外对系统能力的教学设计实践经验,参考相关高校专业的课程体系,提出了应用型本科计算机类专业系统能力课程体系计划。

关键词:应用型本科;系统能力;工程教育

中图分类号:TP3-05 文献标识码:A

1 引言(Introduction)

我们计算机专业学生比其他专业自学计算机课程的学生强在哪里?这是我们在计算机专业教学中经常遇到的问题,也是计算机专业的学生毕业后会反思的问题。我们国家经历了这些年的计算机专业教育,但是很少有对这个问题令人满意的回答。中国计算机学会计算机教育专业委员会在《2012中国计算机科学技术发展报告》中明确提出:相比较其他专业学生的计算机基础和应用能力,计算机专业学生更强调计算机系统能力的培养[1]。南京大学的袁春风等认为, 计算机专业学生的优势之一在于计算机系统能力,即具备计算机系统层面的认知与设计能力、能从计算机系统的高度考虑和解决问题[2]。

国内在计算机系教育领先的大学,大都进行了关于计算机专业学生系统知识、系统能力和系统课程的研讨。这些大学都提出了自己的方案并进行了探索和实践。笔者参考了《2012中国计算机科学技术发展报告》中《计算机专业学生系统能力培养和系统课程设置的研究与进展》,以及参加2014年清华大学出版社和南京大学组织的第三届高校计算机类专业人才培养高峰论坛,看到和听取了很多前沿的探索总结,深受启发。

作为一所新办的本科院校,广东东软学院具备东北大学、国防科技大学、东软集团等校企背景,培养适应计算机新技术、新问题、新领域发展的人才,我们必须要从易到难,从可以实现到较高目标定位来逐步落实系统能力的培养。

2 国内外借鉴(Domestic and international

reference)

(1)国际高校系统能力课程体系

麻省理工学院(MIT)。基础课程6.004计算结构(Computation Structures)[3]+6.033计算机系统工程(Computer System Engineering)[4]。6.004是一门贯穿整个计算机系统的课程。这门课包括硬件方面的门电路、功能部件、单周期和流水线CPU之间的所有基本内容和软件方面的C语言、汇编语言、机器指令之间的基本内容,还涉及过程调用、系统调用、进程、并行、性能评价等一些重要概念。6.033内容涵盖了计算机体系结构、操作系统、网络等多门课程中的重要概念。6.004目前还没有教材,6.033中文版《计算机系统设计原理》由清华大学出版社出版。该课程于1968年开始讲授,是MIT EECS两位资深教授40多年教学和研究的总结,经过不断修改和与时俱进,正式与2009年开始出版,堪称计算机系统设计方面的经典教材。

卡耐基梅隆大学(CMU)和斯坦福大学(Stanford University)。CMU的CS213[5]和斯坦福CS107[6],所用教材都是《深入理解计算机系统》(Computer Systems:A Programmer's Perspective,Randal E.Bryantand David R.O'Hallaron)。中文版由机械工业出版社出版。这门课从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。华盛顿大学(University of Washington)在cousera上有一门课程The Hardware/Software Interface[7],采取了同样内容和教材。主要从程序员角度介绍计算机系统,更偏向于系统软件层面。本课程于1998年在CMU计算机学院开始开设,经过多年的教学总结,2003年开始出版,得到了很多美国高校的采用,中文版在我们国家出现后,得到了IT业界的广泛认可。

(2)国内高校系统能力课程体系

南京大学软件学院。B111SE《计算系统基础》采用了Yale N.Patt,Sanjay J.Patel,Introduction to Computing Systems:From bits & gates to C & beyond(Second Edition),机械工业出版社,2006(对照中译本:梁阿磊译,计算机系统概论,第2版,机械工业出版社,2006)。课程采取自底向上的教学模式,围绕一个简单的计算机(LC3)进行从比特到高级语言(C语言)的全面、系统的介绍,为初学者建立一个完整的计算概念,包括:数据的机器级表示、数字逻辑、冯·诺伊曼模型、机器语言、汇编语言、输入和输出、Trap机制和子程序、结构化程序设计与C语言。课程较好地解决了基础知识与动手能力相结合、硬件与软件相结合、系统软件与程序设计相结合的问题,既注重学生对计算系统的宏观理解,又加强学生实践能力的培养[8]。本教材是起源于1995年密歇根大学开设的课程,于2000年开始出版,是计算机科学的经典基础教材,被国内外大学广泛采用为教材。

北京航空航天大学计算机学院。计算机组成+操作系

统+编译技术组成三大必修课程,对应三大系统级核心技术:CPU、操作系统和编译器,以期学生达到三大能力目标(能够开发一个功能型CPU,能够开发一个操作系统核心,能够开发一个编译器)[9]。

浙江大学计算机学院。总体设想是采用软硬件课程贯通,以计算机系统(SOC)设计与实现的实践过程为手段,深入理解计算机系统和高性能程序设计为目标,融会贯通数字逻辑设计、计算机组成、操作系统和编译技术等课程知识体系;以系统能力培养为统一视图,建立层次化、循序递进、开放式课程群的课程体系和实践目标。

具体分成了系统能力最小系统(《逻辑与计算机设计基础(数字电路)》+《计算机组成原理》),系统能力基本系统(《逻辑与计算机设计基础(数字电路)》+《计算机组成原理》+《编译原理》+《操作系统》),以及系统能力最大系统(《计算机体系结构》+《计算机接口与汇编》)[10]。

3 融合与提升(Integration and promotion)

通过对国内外高校系统能力课程体系的借鉴,结合广东东软学院的实际情况,寻求计算机系统能力培养的融合与提升之道。我们认为计算机教育改革的重点是以教育部教指委关于计算机系统能力培养为核心。以计算机思维的培养为核心,将计算思维能力培养贯穿整个课程体系,调整计算机应用型人才的培养方案。计算机类专业系统能力要求如图1所示。

为了达到更好的计算机系统能力培养的融合与提升效果,我们做了一下思考:

(1)作为应用型大学,提升系统能力,最终目标是为了工程应用。我们先设置第一门课程“计算机系统基础(ICS)”。“与传统课程体系设置相比,最大的不同在于,新的课程体系中有一门涉及计算机系统各个抽象层面的能够贯穿整个计算机系统设计和实现的基础课程:计算机系统基础(ICS)。该课程讲解如何从程序员角度来理解计算机系统,可以使程序员进一步明确程序设计语言中的语句、数据和程序是如何在计算机系统中实现和运行的,让程序员了解不同的程序设计方法为什么会有不同的性能等[1]。”从程序员角度来理解计算机系统,是培养以工程应用人才为目标的真正体现。我们设置本课程的内容和教材可以采用和卡耐基梅隆大学和斯坦福大学的《深入理解计算机系统》(Com-puter Systems:A Programmer's Perspective,Randal E.Bryantand David R.O'Hallaron)的中文版。课程设计参考华盛顿大学(University of Washington)在cousera上的课程The Hardware/Software Interface。

(2)在数字逻辑设计、计算机组成、操作系统这三门课程采用前沿先进的教材的基础上,在数字逻辑设计中加入FPGA设计内容,使得“数字逻辑电路”“计算机组成与设计”“嵌入式计算系统”中的实验内容之间能够很好地衔接,让学生在一个统一的实验平台上从门电路开始来设计基本功能部件, 然后再以功能部件为基础来设计CPU、存储器和外围接口,最终将CPU、存储器和I/O接口通过总线互联为一个完整的计算机硬件系统[2]。

因为“计算机系统基础”(《深入理解计算机系统》)以Intel x86为模型机进行讲解,所以它为“操作系统”(特别是Linux内核分析)提供了很好的体系结构基础。我们计划引入国产操作系统,这样学生会对操作系统和基于操作系统的应用开发有更深入的理解。作为一所应用型高校,考虑学生实际情况和培养目标,我们没有设置“自动机理论”“编译原理”等课程。

(3)以课程群为建设单位,建设重点课程、大课程,逐步减少关联性少的课程在二年级、三年级一学期的数量,将这些课程移入高年级的选修课程组中,最终达到专业基础课程群集中、强关联,专业课程组方向与技术发展紧密联系的目标。课程设计思路如图2所示。

4 结论(Conclusion)

系统能力是近年计算机教育有深度的总结性认识,各个高校都提出了一些探索性的方案,只有全面认识已经在实践的学校方案(最好去参加培训),多比较他们的方案。我们同时也要认清本校的定位和实际师资、学生和课程建设现状,经常思考怎样落地,以及实现的步骤,长期坚持,才有可能得到实际的效果。

参考文献(References)

[1] CCF计算机教育专业委员会.计算机专业学生系统能力培养

和系统课程设置的研究与进展[R].2012中国计算机科学技

术发展报告,北京:机械工业出版社,2012,(B):122-150.

[2] 袁春风,王帅.系统能力培养初探[J].中国计算机学会通讯,

2013,9(9):48-55.

[3] MIT. Computation structures [EB/OL].Spring 2013.http://

6004.csail.mit.edu/.

[4] MIT. Computer Systems Engineering [EB/OL].Spring 2014.

http://web.mit.edu/6.33/www/index.shtml/.

[5] CMU.Introduction to computer systems[EB/OL].Fall 2014.

http:// www.cs.cmu.edu/~213/.

[6] Stanford University. Computer organization and systems[EB/

OL]. Spring 2012. http://www.stanford.edu/class/cs107/.

[7] The Hardware/Software Interface [EB/OL].https://www.

coursera.org/course/hwswinterface/.

[8] 南京大学教学体系[EB/OL].http://software.nju.edu.cn/index.

php?option=com_content&view=article&id=146&Itemid=4/.

[9] 北京航空航天大学计算机科学与技术专业培养方案(2014版)

[EB/OL].http://scse.buaa.edu.cn/buaa-css-web/articleDetail.

action?firstSelId=6e011b46-2c70-4f68-a633-ec51f42b4718

&secondSelId=NOTICE_PUBLICITY&articleId=2b011735-

57a8-44b3-ba05-5a3bc21fa308&type=NEWS&language=0/.

[10] 陈文智,陈越,庄约挺.面向系统设计能力培养的教学改革探

索[J].计算机教育,2013,20:70-76.

作者简介:

罗先录(1973-),男,硕士,副教授,系统分析师.研究领域:

软件工程与网络安全.

谭德立(1964-),男,硕士,副研究员.研究领域:计算机体系

结构与FPGA应用.

张永棠(1980-),男,硕士,副教授,系统分析师.研究领域:

光通信与传感器网络应用.

陈桂宏(1983-),女,硕士,讲师.研究领域:嵌入式系统.

猜你喜欢

工程教育应用型本科
“卓越计划”背景下工程导论课程教学改革研究
CDIO模式下JaVa程序设计课程教学改革探索
基于CDIO理念的计算机类人才培养模式改革探索
法国高等工程教育的早期发展
岗位、证书、课程“三位一体”教学方案设计改革研究
应用型本科大学英语模块化教学改革探究
应用型本科院校高等数学课程建设改革
基于工程思维的Java程序设计课程教学研究
地方新建本科高校转型发展的探索与实践
金属材料类工程教育人才培养初探