【言十系列】新工科建设与系统能力培养
0 引 言
随着人工智能、大数据、云计算、物联网等新技术的快速发展和广泛应用,计算系统及其应用不断呈现出新的特征,形成了嵌入式计算、移动计算、并行计算、智能计算、服务计算等多计算平台并存和融合的计算模式,处理的对象也呈现出网络化、多媒体化、大数据化和智能化需求的特征,新形势下对计算机类专业人才培养的要求也发生了极大的变化。教育部新工科建设就是为了使当前的工科教育更好地适应这些变化,培养出具有持续竞争力的人才。
肩负新型计算系统设计与开发的计算机类专业人员需要深入了解和掌握计算机系统内部的工作机制和原理,具有比以往更多、更深入的系统级的设计、实现和应用能力,才能较好地适应未来新经济和智能时代的需求。
在工科专业类中,信息类专业布点、毕业生数量、在校生数量都约占30%。而在信息类中计算机类专业点又占比近半[1],因此计算机类专业是新工科建设中数量最多、影响最大的专业。在新工科的计算机类专业建设和教育提升中,系统能力培养是首当其冲的重要内容,系统能力培养具有比以往更加迫切的要求[2]。
在信息技术快速发展和应用的新形势下,系统能力培养在理论和实践上对未来计算机类专业学生的培养水平和质量具有重大意义和影响。
1 系统能力培养内涵
随着大规模数据中心的建立和个人移动设备的大量普及使用,计算机人才培养强调的“程序性开发能力”也正在转化为更重要的“系统性设计能力”。为了应对各种复杂的计算机应用,编写出各类适合不同平台的高效程序,应用开发人员必须了解不同系统平台的底层结构,并熟练掌握其中的技术和工具,培养相应的技术领域方面的整体系统观以及能够进行软硬件协同设计的贯通能力。在这些方面,我们与国际上发达国家的差距还不小。重大装备或者重大应用的研发,都不是单项技术的开发,而是要求整体的系统层面综合设计,通过软硬件协同实现开发方案的最优化,以强大的底层技术保证各项功能的实现。系统能力是计算机人才的关键能力。
系统是若干相互联系、相互作用和相互依赖的部件结合而成的,具有一定结构和功能并处在一定环境下的有机整体。系统能力是依据确定的系统功能,设计与开发系统结构,实现工程目标的能力。
从计算机教学的角度来说,可以将涉及系统能力培养的计算机系统划分为3个层次。
(1)运用数学和物理原理,设计和开发计算机运行系统,包括中央处理器(CPU)、操作系统及编译系统,这是计算机最基本的系统,称为计算机基础系统,相关课程包括数字逻辑、计算机组成、操作系统、编译系统等。
(2)运用计算机基础系统原理,设计和开发计算机领域的专门系统,如软件开发系统、数据库系统、网络系统、支撑系统、平台系统等,称为计算机领域系统。
(3)运用计算机专业系统原理,设计和开发各种应用系统,如数字制造系统、无人驾驶系统、无线通讯系统等,称为计算机应用系统。
系统能力培养的范围可以涉及这3个层次中的1个或者多个。计算机类专业学生系统能力培养的基本内容是掌握系统内部各软件/硬件部分的接口、运行协同以及系统内部各部件的逻辑关联,了解系统呈现的外部特性与人机交互模式,强调从系统结构角度实现优化的系统功能。具备了系统能力,计算机的应用和创新能力也会由此得到强化与提升[2]。
系统能力包括系统知识和工程实践。系统知识是掌握计算机核心系统的工作原理、构造方法、软硬件协同、层次间逻辑关联,工程实践是用工程方法开发计算机应用系统。系统能力的培养具有突出的工程教育特征,是解决复杂工程问题的直接体现。与其他专业学生的计算机基础和应用能力相比,计算机类专业学生应突出强调计算机系统能力的培养。
系统能力培养的目标是改造升级现有高等学校的计算机类专业教育,加强新工科计算机类专业系统能力培养,推动高新技术与计算机类专业的知识、能力、素质要求深度融合,探索计算机类专业改造升级的实施路径,提高学生适应新经济发展的整体素质和能力。
系统能力培养和系统观教育对于计算机类所有专业及各培养方向均适用。我们需要积累丰富的教学资源,形成有价值的实践经验,以系统能力培养为抓手持续提升计算机类专业办学水平和人才培养质量。
2 现 状
目前,国内高校计算机类专业教学对系统能力培养的研究改革和重视程度不够,因而培养的学生在系统能力方面存在一些问题,不能满足社会、学科技术发展和用人单位的要求。首先,不能很好地建立计算机系统完整概念,缺乏系统观,无法解决系统层面的问题;其次,对于计算机系统的核心内容掌握不够,大部分学生难以胜任复杂的涉及软/硬件协同设计的任务;第三,由于没有很好地建立课程之间内容的关联,学生综合分析、设计和应用能力也较差;最后,系统性的综合实践环节缺乏,学生系统实践动手能力较差[2]。
国内外在系统能力培养上已经取得许多相关研究进展。ACM/IEEE CS2013、SE2014、CE2016、IT2017等规范在知识结构方面调整的重点是进一步加强了系统知识和系统能力的培养,国际上CMU、Stanford、UC Berkley等高校在系统能力培养方面已经有很好的成效。
从2010年初起,针对计算机类专业中教育存在的问题,教育部高等学校计算机类专业教学指导委员会(以下简称教指委)就开始组织进行计算机类专业学生系统能力培养的研究和实践。由浙江大学、北京航空航天大学、南京大学、北京大学、国防科技大学、清华大学、上海交通大学、中国科技大学等高校的相关教授,以及机械工业出版社华章公司和高等教育出版社计算机分社负责人共同组成研究小组,进行了关于计算机专业学生系统知识、系统能力和系统课程的深入研究与实践。研究小组明确提出了适合于我国高等教育计算机类专业系统能力培养的课程体系改革总体设置思路,并对相关的主要课程内容及其实践内容进行了规划[3-4]。
以上先行一步的8所示范高校计算机学院已经在不同范围和程度上,对计算机系统能力培养进行了相关探索、研究和实践,取得了较好的进展,起到了高校计算机类专业系统能力培养示范院校的作用。近3年来,教指委已经设立了3批共约80所高等院校进行有关系统能力培养的研究课题和试点,成立了5个省级区域的工作组,发挥示范、合作和带头院校作用,推动试点工作深入展开,取得了良好的效果,目前正规划在国内高校进行更大范围的推广。
当前计算机类专业教育在理论知识教学上,正在建立新的系统级综合性课程,强化系统知识,重新规划计算机系统核心课程的内容,使这些核心课程之间的内容联系更紧密、衔接更加顺畅,整体系统性更强;同时需要加强系统实践动手能力培养,着力研究建设充足配套的实践环境和内容。
在教指委的研究和指导推进下,国内主要有以下3种系统能力培养模式[2]。
(1)采用引进教材《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective ,CMU1-213)或者《计算系统概论》(Introduction to Computing Systems,CMU18-447)。有的学校还借鉴国外课程教学方式、实验和过程,与国外高校密切合作。
(2)采用由南京大学袁春风教授编写的《计算机系统基础》。该教材将高级语言程序、汇编语言、编译和链接、组成原理、操作系统等相关的基础内容有机贯穿起来,以建立完整的计算机系统概念。
(3)融合课程群内容并进行系统实践。将核心课程群数字逻辑、计算机组成、操作系统、编译技术等教学内容整体规划,连通实践环节。实践教学目标是设计实现一个CPU、一个操作系统、一个编译器;改革思路是课程体系整合重构,根据系统构造的内在逻辑关系,梳理课程群知识体系,在统一硬件实验平台上实现计算机软硬件的物理综合,以MIPS或者ARM指令集为基础,逐步建立并深化系统观念[5-6]。
采用以上3种模式进行系统能力培养都取得了很好的进展和成效。近3年来为进一步深入研究和实践系统能力培养,教指委还组织了全国高校系统能力培养高峰论坛、中国计算机教育大会、中国计算机大会系统能力培养专题论坛等进行专题教学交流;组织了系统能力方面有关新课程的研究和新教材的编写;组织成立了“高等学校计算机系统能力培养研究”产学合作工作组,规划投入专项以支持系统能力培养的研究和实践;进行了全国高校范围的教师培训和导教,包括相关课程的理论教学内容和实践教学环节;启动了系统能力培养大赛等。
3 新工科系统能力培养研究项目
在教育部新工科研究实践项目中,教指委申请并获批了计算机类专业系统能力培养的项目。该项目的工作目标是改造升级一批高等学校传统计算机类专业,加强新工科计算机类专业系统能力培养,推动高新技术与计算机类专业的知识、能力、素质要求深度融合,探索计算机类专业改造升级的实施路径,提高学生适应新经济发展的整体素质和能力。该项目主要研究内容包括以下几方面。
(1)研究分析新经济对计算机类专业人才培养提出的知识、能力和素质新要求;研究新工科计算机类专业系统能力培养方式、培养方案、新的知识框架及内容;研究新工科计算机类专业系统能力培养水平的评价标准、与培养方案对应的系统能力培养分类分层次的新的课程体系及课程主要内容。系统能力培养分类分层次实践教学体系,包括各个课程的实践环节、综合课程设计等内容。
(2)组织编写和出版系统能力培养系列教材,主要侧重在对应新工科课程体系的核心和专业拓展2个层次的课程教材建设上;撰写和发表与该项目相关的教学研究论文。
(3)发挥好示范和带头高校的作用,进一步推动系统能力培养试点学校的工作,组织进行省或者跨省范围的区域性试点学校的指导、交流和研讨;举办各种类型和层次的全国高校系统能力培养研讨和交流大会,举办系统能力方面的教师培训班、导教班,提升讲授新工科计算机类专业系统能力相关课程的师资水平;举办全国高校系统能力竞赛,进一步调动教师和学生的积极性,以赛促学,以赛促教。
(4)提供校企合作的平台和联合研究,企业通过发布项目、提供需求、提供实践环境和内容等方式推动高校的系统能力培养工作取得实质性成果。
该项目的创新之处是通过研究、示范、试点和推广,推进计算机类专业教学改革,从理论和实践上全面提升计算机类专业学生的系统能力培养,以适应未来计算机科学技术和新经济的持续快速发展,满足未来智能时代社会应用的迫切需求。
教指委深入研究分析新经济对传统工科专业人才培养提出的新要求,调查若干国外高校本科生教学在计算机系统能力培养方面的一些做法和思路,通过借鉴国外大学的经验,面向人工智能、大数据、云计算、物联网等新技术,结合智能时代信息技术和社会发展趋势以及我国高校计算机人才培养的特点,提出了适合我国高等教育计算机专业系统能力培养的课程体系改革总体思路,并对相关的主要课程内容及其实验内容进行了规划。
在理论知识教学上,需要建立新的系统级综合性课程,强化系统知识,重新规划计算机系统核心课程的内容,使这些核心课程内容之间的联系更紧密、衔接更加顺畅、整体系统性更强;同时针对系统实践能力弱的问题,需要特别加强系统实践动手能力培养。教指委把课程分成3个层次:计算机系统基础课程、重组内容的核心课程以及侧重不同计算系统若干相关平台的专业拓展和应用课程。目前已经在第1层次的研究和实践上取得较好的进展,该项目将对第2和第3层次进行深入研究、实践和推广应用。
我们应着力研究并建设充足配套的实践环境和内容,把相应的系统实践能力培养放在重要位置予以加强。参加该项目的企业要结合自己的特色,提供实践平台和内容方面的大力支持。已经实施的基于MIPS的实践平台和内容要改进,进一步贴近新技术发展;同时在ARM作为应用主流的技术发展趋势下,必须要研究、开发、试点和推广基于ARM的实践平台和内容。
在教育部新工科建设的强力推动以及计算机学科技术迅速发展和社会应用的迫切需求下,该项目的研究、试点和推广将持续推进4年以上,在现有基础上,积累丰富的教学资源,形成有价值的实践经验,以系统能力培养为抓手持续提升计算机类专业办学水平和人才培养质量。具体措施和研究方式主要包括以下几方面。
(1)深入分析研究,提出改革方案。组织研究小组,进行国内外深入调查、分析和研究;提出和建立新的计算机专业本科教学课程体系,重新规划计算机系统核心课程的内容;研究提出新工科计算机类专业系统能力培养水平的评价标准。
(2)提倡示范院校带动。在新工科知识结构和课程体系下,要进一步推动示范院校系统能力培养工作,进行关于计算机专业学生系统知识、系统能力和系统课程的深入研究和分析,进一步提升对试点学校系统能力培养工作的指导。
(3)总结试点经验,向全国范围推广。根据所在院校的特色和目标,扎实推进试点工作,将系统能力培养研究实践的有效做法、课程内容、实践环境和内容等按照不同类型和层次向全国高校计算机类专业推广应用。
(4)加强教师培训,加快教材编写,发表相关的教学研究论文。推进教师系统能力理论和实践培训工作,加快以系统能力培养为核心的新教材编写工作,特别要把重点放在第2核心层次和第3专业拓展层次课程教材的编写上。
(5)检查交流促进,以竞赛提高水平。通过系统能力培养标准的实施,衡量整体系统能力培养水平并促进其提高;通过每年举办系统能力全国高校竞赛,促进高校间互相学习,调动学生对系统深入学习掌握的积极性。
4 结 语
系统能力是计算机类专业人员创新的基础保证,系统能力培养将积极提高学生创新能力,这非常切合新工科积极应对变化、引领创新的要求以及“双一流”提高本科学生培养质量的目标。要通过系统能力培养的过程,不断探索新经济变化背景下的工程教育新理念、新结构、新模式、新质量、新体系,培养能够适应时代和未来变化的卓越计算机类专业工程人才。系统能力培养将有力地提高计算机类专业人才培养水平和质量,促进新工科建设的深入展开。
参考文献:
[1] 吴爱华, 侯永峰, 杨秋波, 等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017(1): 1-8.
[2] 王志英, 周兴社, 袁春风, 等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育, 2013(9): 1-6.
[3] 王志英. 计算机系统能力培养现状与发展[R]. 天津: 第三届全国高校计算机系统能力培养高峰论坛, 2016.
[4] 马殿富. 计算机类专业人才系统能力培养[R]. 杭州: 第二届计算机类专业人才培养高峰论坛, 2013.
[5] 教育部高等学校计算机类专业教学指导委员会. 基于系统能力培养的计算机专业课程建设报告[M]. 北京: 高等教育出版社, 2016.
[6] 高小鹏. 计算机专业系统能力培养的技术途径[J]. 中国大学教学, 2014(8): 53-57.
更多精彩:
【言十系列】一流计算机学科建设的几个问题思考——一流计算机学科必须是一流本科教育