APP下载

计算机专业学生系统能力培养和系统课程体系设置研究

2013-04-29王志英周兴社袁春风等

计算机教育 2013年9期
关键词:工程教育计算机专业

王志英 周兴社 袁春风等

摘要:计算机专业学生需要更多地关心计算系统的整体特性,培养自身计算机系统能力,这也是工程教育的特征。文章分析计算机技术发展的特点,介绍系统能力的主要内涵及培养需求,阐述系统能力培养和课程体系设置的总体思路。

关键词:计算机专业;工程教育;系统能力;系统课程

1.计算技术发展特点分析

计算技术在20世纪个人机普及和Internet快速发展的基础上,从初期的科学计算与信息处理进人21世纪的以移动互联、物联网、云计算和大数据计算为主要特征的新型网络时代。在这一过程中,计算技术的发展特点呈现出“四类新型计算系统”和“四化主要特征”,这对计算机专业人才的知识结构与创新能力提出更高的要求。

1.1四类新型计算系统

1)嵌入式计算系统。

在移动互联网、物联网、智能家电、三网融合等行业技术与产业发展中,以嵌入式计算为主要形态的计算系统——嵌入式计算系统有着举足轻重和广泛的作用,并日益呈现网络化的开放特点。

2)移动计算系统。

在移动互联网、物联网、智能家电以及新型装备中,均以移动通信网络为基础,移动计算成为关键技术,它将使计算机或其他信息智能终端设备在无线环境下实现数据传输及资源共享,其作用是将有用、准确、及时的信息提供给任何时间、任何地点的任何客户,这将极大地改变人们的生活方式和工作方式。

3)并行计算系统。

随着半导体工艺技术的飞速进步和体系结构的不断发展,多核/众核处理机硬件日趋普及,这使得昔日高端的并行计算呈现出普适化的发展趋势;多核技术对计算系统微体系结构、系统软件与编程环境均有很大影响;同时,云计算也是建立在由廉价服务器组成的大规模集群并行计算的基础之上,因此,并行计算将成为各类计算系统的基础技术。

4)基于服务的计算系统。

无论是云计算,还是其他现代网络化应用软件系统,均以服务计算为核心技术。服务计算是指面向服务的体系结构(Service,orientedArchitecture,SOA)和面向服务的计算(Service oriented Computing,SOC)技术,是标识分布式系统和软件集成领域技术进步的里程碑。服务作为一种自治、开放以及与平台无关的网络化构件,可使分布式应用具有更好的复用性、灵活性和可增长性。Web服务技术是当前SOA的主流实现方式,已经形成规范的服务定义、服务组合以及服务访问。

1.2“四化”主要特征

1)网络化。

当今的计算系统必然与网络相关。尽管各种有线网络、无线网络所具有的通信方式、通信能力与通信品质有较大区别,但它使得与其相联的计算系统能力得以充分延伸,更能满足应用需求。网络化对计算系统的开放适应能力、协同工作能力等也提出了更高的要求。

2)多媒体化。

多媒体具有计算机综合处理多种媒体信息的集成性、实时性与交互性特点。计算机通过多媒体技术可以处理人类生活中最直接、最普遍的信息,从而使计算机应用领域及功能得到极大的扩展,使计算机系统的人机交互界面和手段更加友好和方便,非专业人员也可以方便地使用和操作计算机。

3)大数据化。

从各种类型的数据中快速获得有价值信息的能力称为大数据技术。大数据具有体量巨大、类型繁多、价值密度低、处理速度快等特点。大数据时代的来临给各行各业的数据处理与业务发展等带来重要变革,也对计算系统的新型计算模型、大规模并行处理、分布式数据存贮、高效数据处理机制等提出新的挑战。

4)智能化。

智能化将影响计算系统的体系结构、软件形态、处理算法以及应用界面等。例如,智能手机的智能搜索引擎是结合了人工智能技术的新一代搜索引擎,不仅具有传统的快速检索、相关度排序等功能,还具有用户角色登记、用户兴趣自动识别、内容的语义理解、智能信息化过滤和推送等功能,其追求的目标是根据用户的请求,从可以获得的网络资源中检索出对用户最有价值的信息。

2.系统能力的主要内涵及培养需求

2.1主要内涵

计算机专业学生的系统能力核心是在掌握计算系统基本原理基础上,熟悉如何进一步开发构建以计算技术为核心的应用系统。这需要学生更多地掌握计算系统内部各软件/硬件部分的关联关系与逻辑层次,了解计算系统呈现的外部特性以及与人和物理世界的交互模式。系统观的教育体现出工程教育特征,相比较其他专业学生的计算机基础和应用能力,计算机专业更强调对学生计算机系统能力的培养。因此,计算机专业学生的知识体系不仅需要更新与扩展,而且其系统设计创新能力必须得到强化与提升。

2.2培养需求

随着计算机科学与技术的不断进步,信息产业形态发生重要变化,新型计算系统应用日益深化,计算机专业人才培养也必须“与时俱进”,体现计算技术与信息产业发展对学生系统能力培养的需求。教育思想要突显系统观教育理念,教学内容要体现新型计算系统原理,在实践环节中展现计算系统平台技术。

我们要深刻理解系统化专业教育思想对计算机专业高等教育的影响。系统化教育和系统能力培养要采取系统科学的方法,不但要夯实系统理论基础,使学生构建出准确描述真实系统的模型,并能够用模型预测系统行为;而且要强化系统实践,培养学生有效地构造正确系统的能力。从系统观出发,计算机专业的教学应该注意教学生怎样从系统层面思考(如设计过程、工具、用户和物理环境的交互),应该讲透原理(基本原则、架构、协议、编译以及仿真等),强化系统性的实践教学培养过程和内容。

3.相关研究

3.1ACM/IEEE CS2013重视系统能力培养

ACM/IEEE最新公布的CS2013是在组织众多计算机教育专家深入调研分析、开展专题研究的基础上,给出的新的教学调整方案。它不仅对原有14个知识域进行适度调整,还增加了4个新的知识域,分别是系统基础SF、并行和分布计算PD、基于平台的开发PBD、信息保障和安全IAS。这些都涉及系统级内容,由此可见,ACM/IEEE CS2013的重点是进一步强调系统知识和系统能力的培养。

3.2专业教指委已开展相关研究

教育部计算机专业教学指导分委员会已经组织了对计算机专业学生能力培养和实践教学体系的研究,重点是如何使学生增强系统能力,全局地掌控一定规模系统。研究提出:①教学必须树立系统观,培养学生的系统眼光。学生学会站在不同层面上去把握不同层次上的系统,并全面考虑系统各部分及其与外界的逻辑与联系,完成一定规模的系统设计。②明确了计算思维能力、算法设计与分析能力、程序设计与实现能力以及系统能力为4大专业基本能力。其中系统能力占总能力的75%,包括系统认知、系统设计、系统开发和系统应用能力。

目前国内少数高等学校,如南京大学、复旦大学、北京大学、北京航空航天大学、浙江大学、西北工业大学、国防科技大学等,正在不同程度上积极进行这些方面的探索和实践。

4.系统能力培养中存在的问题

在PC时代背景下所设置的课程体系、教学及其实验内容,对学生的系统能力培养存在以下问题。

(1)课程体系中缺乏一门独立的能够贯穿整个计算机系统的基础课程。有些学校虽然有计算机系统概论课程,但是,课程内容太散太多,没有系统性,并没有围绕一个完整计算机系统框架组织内容。

(2)课程之间的衔接和关联考虑不够。目前课程设置大多按照计算机系统不同层次上的内容独立开设课程,相应的教材内容和课堂教学内容中很少体现本层次的内容与其他层次内容之间的关联,学生难以形成对计算机系统的全面认识。

(3)教学内容比较陈旧,较少涉及近年来出现的多核/众核处理器、分布式和并行计算模式等实际工作中遇到的内容,特别是对于后PC时代的学生所需的关于嵌入式系统、移动终端系统、大型数据中心云计算系统等的系统知识体系的教学还很薄弱。

(4)课程体系缺乏对系统设计和应用能力培养的整体考虑,如公共的计算机系统基础课程及内容的设置,计算机系统核心课程及内容的设置,对于不同应用系统和相关平台所需的设计和应用人才的培养应设置哪些课程(包括课程实验)等。

由于教学中对系统能力培养重视不够,所以学生在系统能力方面存在以下问题:

(1)大部分学生不能很好地建立计算机系统完整概念,缺乏系统观,只能解决局部的编程和应用问题,对于系统层面问题的解决无法胜任。

(2)大部分学生对于计算机系统的核心内容掌握不够,难以胜任复杂的涉及软/硬件协同设计的任务。

(3)由于没有很好地建立课程之间内容的关联,学生对于很多核心内容通常只知其然不知其所以然,所以其综合分析、设计和应用能力也较差,对于需要综合运用多个跨课程的概念才能解决的问题一筹莫展。

(4)教学缺乏系统性的综合实践环节,这使学生理论上一知半解,实践动手能力较差。

5.系统能力培养课程体系设置总体思路

为了更好地培养适应新技术发展的、具有系统设计和系统应用能力的计算机专门人才,我们需要建立新的计算机专业本科教学课程体系,特别是设立有关系统级综合性课程,并重新规划计算机系统核心课程的内容,使这些核心课程之间的内容联系更紧密、衔接更顺畅。

为此,我们调查了若干国外高校的本科生教学在计算机系统能力培养方面的一些做法和思路,借鉴国外大学的经验,结合我国高校计算机人才培养的特点,提出了适合于我国高等教育计算机专业系统能力培养的课程体系总体设置思路,并对相关的主要课程内容及其实验内容进行了规划。课程体系改革的思路如图1所示。

我们建议把课程分成3个层次:计算机系统基础课程、重组内容的核心课程和侧重不同计算系统的若干相关平台应用课程。

第1层次核心课程包括:程序设计基础(PF)、数字逻辑电路(DD)和计算机系统基础(ICS)。

第2层次核心课程包括:计算机组成与设计(COD)、操作系统(OS)、编译技术(CT)和计算机系统结构(CA)。

第3层次核心课程包括:嵌入式计算系统(ECS)、计算机网络(CN)、移动计算(MC)、并行计算(Pc)和大数据并行处理技术(BD)。

基于这3个层次的课程体系中相关课程设置方案如图2所示。

图2中左边部分是计算机系统的各个抽象层,右边的矩形框表示课程,其上下两条边的位置标示了课程内容在系统抽象层中的涵盖范围,矩形的左右两条边的位置标示了课程大约在哪个年级开设。虚线框、实线框和粗线框分别表示第1、第2和第3层次核心课程。

从图2中可以看出,该课程体系的基本思路是:先讲顶层比较抽象的编程方面的内容;再讲底层系统具体实现的基础内容;然后再从两头到中间,把顶层程序设计内容和底层电路内容按照程序员视角全部串起来;在此基础上,按顺序分别介绍计算机系统硬件、操作系统和编译器的实现细节。至此的所有课程内容主要介绍单处理器系统的相关内容,而计算机体系结构主要介绍不同并行粒度的体系结构及其相关的操作系统实现技术和编译器实现技术。第3层次的课程没有先后顺序,可以是选修课,课程内容应体现第1和第2层次课程内容的螺旋式上升趋势,即第3层次课程内容涉及的系统抽象层与第1和第2层次课程涉及的系统抽象层是重叠的,但内容并不是简单重复,而是讲授在特定计算系统中的相应教学内容。例如,对于嵌入式计算系统(ECS)课程,虽然它所涉及的系统抽象层与计算机系统基础(ICS)课程涉及的系统抽象层完全一样,但这两门课程的教学内容基本上不重叠,前者着重介绍与嵌入式计算系统相关的ISA设计、操作系统实现和底层硬件设计等内容,后者着重介绍如何从程序员的角度来理解计算机系统设计与实现中涉及的基础内容。

与传统课程体系设置相比,最大的不同在于,新的课程体系中有一门涉及计算机系统各个抽象层面的能够贯穿整个计算机系统设计和实现的基础课程——计算机系统基础(ICS)。该课程讲解如何从程序员角度来理解计算机系统,可以使程序员进一步明确程序设计语言中的语句、数据和程序是如何在计算机系统中实现和运行的,让程序员了解不同的程序设计方法为什么会有不同的性能等。

此外,新的课程体系强调课程之间的衔接和连贯,主要体现在以下几个方面。

(1)计算机系统基础课程可以把程序设计基础、数字逻辑电路2门课程之间存在的计算机系统抽象层中的“中间间隔”填补上去并很好地衔接起来。这样,到2年级上学期结束时,学生就可以通过这3门课程清晰地建立单处理器计算机系统的整机概念,构造出完整的计算机系统的基本框架,而具体的计算机系统各个部分的实现细节再通过后续相关课程来细化充实。

(2)数字逻辑电路、计算机组成与设计和嵌入式计算系统3门课程中的实验内容能够很好地衔接,可以规划一套承上启下的基于FPGA开发板的综合实验平台,让学生在一个统一的实验平台上从门电路开始设计基本功能部件,然后再以功能部件为基础设计CPU、存储器和外围接口,最终将CPU、存储器和I/O接口通过总线互连为一个完整的计算机硬件系统。

(3)计算机系统基础、计算机组成与设计、操作系统和编译技术4门之间能够很好地衔接,构成了一组计算机系统能力培养最基本的核心课程。新课程体系中计算机系统基础和计算机组成与设计2门课程对原来的计算机系统概论和计算机组成原理课程内容进行重新调整和统筹规划。计算机系统基础、计算机组成与设计、操作系统和编译技术的关系体现为:

①计算机系统基础课程以Intel x86为模型机进行讲解,它为操作系统课程(特别是Linux内核分析)提供了很好的体系结构基础。同时,在计算机系统基础课程中为了清楚地解释程序中的文件访问和设备访问等问题,会从程序员角度简单引入一些操作系统中的相关基础知识。

②计算机系统基础课程会讲解高级语言程序如何进行转换、链接以生成可执行代码的问题。

③计算机组成与设计中的流水线处理等也与编译优化相关,而且以MIPS为模型机进行讲解,而MIPS模拟器可以为编译技术的实验提供可验证实验环境。

从计算机系统基础课程的内容和教学目标以及开设时间来看,位于较高抽象层的先行课(如程序设计基础、数据结构等课程)可以按照原来的内容和方式开设和教学,而作为新的计算机系统基础和计算机组成与设计的先导课数字逻辑电路,则需要对传统的教学内容,特别是实验内容和实验手段进行修改和完善。

有了计算机系统基础和计算机组成与设计课程的基础,学生将更容易从计算机系统整体的角度理解操作系统、编译原理等后续课程。这些后续课程在内容方面不需要大的改动,但是操作系统和编译器的实验要以先行课程实现的计算机硬件系统为基础,这样才能形成一致的、完整的计算机系统整体概念。

6.结语

系统观教育对于计算机专业的所有培养方向均适用,它对专业核心课程任课教师提出了更高要求,因此必须强化计算机专业的教师培训工作,特别是重视以系统观为核心的新教材的编写工作,以便使计算机专业人才培养和教育跟上学科、技术和产业的发展步伐。

本系统研究组由国防科学技术大学、西北工业大学、南京大学、南开大学、天津大学、武汉大学、北京大学有关教授组成,他们共同进行了关于计算机专业学生系统知识、系统能力和系统课程的研讨。本研究得到机械工业出版社华章公司的大力支持。

参考文献:

[1]The Joint Task Force on Computing Curricula of ACM/IEEE,Computer Science Curricula 2013 Ironman Draft(Version 0.8)[EB/OL].[2013-03-26].http://ai.stanford.edu/users/sahami/CS2013/.

[2]教育部高等学校计算机科学与技术专业教学指导委员会,高等学校计算机科学与技术专业发展战略研究报告及规范[M].北京:清华大学出版社,2006.

[3]教育部高等学校计算机科学与技术专业教学指导委员会。高等学校计算机科学与技术专业人才专业能力构成与培养[M],北京:机械工业出版社,2010.

(编辑:彭远红)

猜你喜欢

工程教育计算机专业
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
“卓越计划”背景下工程导论课程教学改革研究
CDIO模式下JaVa程序设计课程教学改革探索
基于CDIO理念的计算机类人才培养模式改革探索
法国高等工程教育的早期发展
基于专业方向课程群的计算机专业教学改革探索
基于工程思维的Java程序设计课程教学研究
金属材料类工程教育人才培养初探
CDIO模式下计算机专业实践教学改革策略研究
职业高中计算机专业教学改革浅析