面向大数据时代的计算机系统能力培养改革与实践

2017-12-31 13:41枫1
计算机教育 2017年3期
关键词:计算机系统编程课程体系

陆 枫1, 2, 3, 4

(1.华中科技大学 计算机科学与技术学院,湖北 武汉 430074;2.华中科技大学 服务计算技术与系统教育部重点实验室,湖北 武汉 430074;3.华中科技大学 集群与网格计算湖北省重点实验室,湖北 武汉 430074;4.华中科技大学 大数据技术与系统湖北省工程实验室,湖北 武汉 430074)

面向大数据时代的计算机系统能力培养改革与实践

陆 枫1, 2, 3, 4

(1.华中科技大学 计算机科学与技术学院,湖北 武汉 430074;2.华中科技大学 服务计算技术与系统教育部重点实验室,湖北 武汉 430074;3.华中科技大学 集群与网格计算湖北省重点实验室,湖北 武汉 430074;4.华中科技大学 大数据技术与系统湖北省工程实验室,湖北 武汉 430074)

针对大数据时代计算机本科专业人才培养出现的新问题,分析目前国内外计算机系统能力培养的改革现状和趋势,阐述将培养并行计算能力作为基本培养目标之一,从新增和沉淀的角度改革和整合课程内容,以抽象和总结的方法形成层层递进的课程知识体系,提出面向大数据时代计算机系统能力培养的课程体系改革方案。

计算机本科教学改革;大数据时代;计算机系统能力培养;并行计算能力培养

1 时代发展对计算机人才培养提出挑战

众所周知,自2012年3月22日奥巴马宣布美国政府投资2亿美元启动“大数据研究和发展计划”以来,大数据中隐含的巨大商业价值和商机正在从社会、经济、科研等多方面影响着时代的发展。在计算机专业教育领域,大数据时代的到来也正在悄然引起变革。已有的串行机器学习与数据分析算法都需要根据不同的大数据并行处理平台以并行化方式重写。从社会和企业需求看,超过传统冯·诺依曼串行计算的学科知识需要计算机专业教育工作者们去审视思考,考虑如何将这些知识融入大学本科的课程体系中,培养能够面对大数据时代需要的人才。

2 国内外已做出的改革尝试

2.1 计算机系统能力培养国内外现状

以美国计算机四大名校为例,自1998年起,美国卡内基·梅隆大学(CMU)开始改革计算机系统导论课程,整合计算机组成、操作系统、系统结构和编译原理等多门课程内容,培养学生的系统能力,目前该课程已在全球200多所学校得到推广。斯坦福大学在2008年实施的改革中将计算机系统课程(CS110)列入了6门专业核心课程[1]。麻省理工大学(MIT)在计算机科学(CS)和电子工程(EE)学士学位中将该课程(6.033)列为三门CS的专业限选课之一。被IEEE Spectrum评为“美国计算机界的卓越泰斗”的Yale N. Patt在美国得克萨斯大学奥斯汀分校开设了计算机系统课程。

国内,清华大学将数字电路逻辑设计、汇编语言程序设计、计算机组成原理、操作系统、编译原理等课程依据统一的系统能力培养教学理念整合起来,采用纵向视角的教学内容组织与方法,基于工业标准的统一教学实验平台培养学生的计算机系统能力[2]。北京大学引入CMU的15-213课程,采用大班讲授、小班研讨的方式整合教育资源[1]。南京大学袁春风教授于2009年开始建设计算机系统结构课程群,进行计算机系统能力培养改革尝试[3],南京大学包含计算机系统能力培养在内的“以问题求解为核心的计算机专业基础课程体系的重构与实践”获得2014年度国家级教学成果二等奖。北京航空航天大学以建设大课重课改革思路推进的“计算机系统核心课程群及其实验体系的研究与实践”获得了2014年度国家级教学成果二等奖[4]。浙江大学通过建立层次化、循序渐进、开放式课程群的课程体系,贯通软硬件知识培养学生的系统设计能力[5]。国防科大以系统能力培养为主线,压缩学时、打破课程界限,大幅度提高实践比例,培养具有实践创造性的后备人才。中国科技大学将计算机系统课程作为入门课程,让学生从零开始全面认识计算机系统,逐步建立起对计算机软件与硬件的认识。中科大和浙大还分别邀请Yale做客暑期学校讲授计算机系统基础课程。上海交通大学软件学院根据互联网时代的特征,学习四大名校的基础上,在二年级上下两学期培养学生的计算机系统能力,总共占9个学分。

2.2 并行计算课程改革现状

目前计算机技术的发展进入面向并行计算的转折期。美国计算机协会ACM和国际电子电气工程师协会计算机学会IEEE-CS(ACM/IEEECS)发起制定每10年及时更新计算机专业课程设置指南之CS2013[6],首次将并行与分布式计算类课程的等级由原来的选修课程提升为核心基础课程,且推荐的核心学时数与传统的核心基础课程操作系统相当。

国内外知名大学已面向高年级本科生开设相关课程。比如,康奈尔大学围绕并行与分布式计算开设了5门系列课程:分布式计算导论(CS 4412)、并行计算机的应用(CS 5220)、云计算(CS 5412)、分布式计算原理(CS 5414)、并行与分布式计算(CS 5460)。哥伦比亚大学开设并行编程(COMS W4130)、并行计算机体系结构(CSEE E6824)。莱斯大学开设并行编程原理(COMP 322)、分布式程序结构(COMP 413)、分布式计算机系统导论(COMP 420)、并行计算导论(COMP 422)。中科大面向本科生开设并行计算、并行程序设计和高性能处理器体系结构等。浙江大学开设多核计算、网格计算和分布式系统、并行计算机体系结构和编程等。北京大学开设多核编程等。

上述在高年级本科生或研究生层次上开设课程的方式从某种程度上解决了问题。然而,在基础课程体系设置中未将并行计算系统和思维的培养纳入考虑。在当前计算环境的整体发展趋势下,计算机系统能力的培养应当同时涵盖串行与并行计算机系统。需要重新审视和沉淀计算机学科知识,规划和重建课程体系,从根本上解决计算机系统能力培养问题。这一观点,在CS2013[6]中有体现。比如,CS2013建议分别从系统和软件开发两个层面,归纳和沉淀计算机学科的专业核心知识,强调计算机系统能力的培养。

3 依据的教育学理论基础

多年来,高等工程教育已初步形成“以需求为导向,以实训为动力,以学生为中心,务课程之重构”的一体化的教育模式[7],进行工程教育改革,需要在发展需求和问题的引导下,强调实践的引领作用,研究理论与实践的关系,总结认知规律,最终落实到课程的重构上,培养优秀人才[78]。

首先,将计算机系统能力作为目前的专业基础能力之一符合高等工程教育的价值取向。高等工程教育的价值归属在于工程应用性[7],“以学生为中心”的工程应用性的具体体现就是培养学生的专业基础能力。计算机类专业教指委目前给出的专业基础能力在强调科学思维能力的同时,更进一步强调解决实际问题的能力,明确定义了计算机本科生应具备的工程应用能力。

其次,采用抽象和总结的方法结合专业教育和通识教育是高等教育人才培养的可选方法。一般认为,大学教育应该更看重追求普遍的真理,也就是通识教育的基本目的。“没有通识教育,大学就失去了灵魂”[9],而对通识教育的理解是“精心设置的一系列课程,文理兼顾,在加强和提高学生心智才能的同时,也让他们熟知人类探寻的知识中重大课题的主导原则”。将专业训练涉及的相关知识内容通过抽象和总结,纳入到通识教育的基本课程体系中,从问题求解的角度锻炼学生的计算机系统能力,是高等教育人才培养中对于通识教育强调的一种可选方法。

4 以并行计算为主线的计算机系统能力培养课程体系改革

对工程教育来说,社会的需求、市场经济的需求、第二产业(尤其是制造业)的需求以及学生未来发展的需求,直接决定着工程教育的信念、目标、体制、运作过程和质量评估标准[7]。改革与建设以并行计算为主线的计算机系统能力培养课程体系,将并行与分布式计算能力培养融入现有计算机系统能力培养的课程体系中,使得培养的学生能够真正适应现有和未来的技术发展趋势,是面向大数据时代计算需求的必然选择。

自2011年秋季开始,CMU计算机系试行新的课程体系,将并行与分布式计算能力培养融合到整个计算机本科专业培养计划中。本科生在一二年级的基础训练阶段,首先通过计算原理(15-110,第一学期,非本专业必选)的学习,建立对计算最基本的认识。其次,通过命令式计算原理(15-122,第一学期,必选)和函数式编程原理(15-150,第二学期,必选),分别以C语言和ML语言为代表,让学生掌握和熟悉如何将问题或数学模型转化为可计算的解决方法,强调如何将问题转化为须依次执行(串行)或同时执行(并行)的计算步骤,进而学习并行与串行数据结构与算法(15-210,第四学期,必选),重点讲授利用并行或串行计算方法解决经典计算问题涉及的相关原理、方法和技术,并行和串行计算方法的训练涵盖在问题的解决方式中。最后,在高年级的课程中,通过开设并行计算机体系结构和编程(15-418/618)、云计算(15-319)、分布式计算(15-640/440)、真实世界中的算法(15-853)等选修课程,让学生进一步掌握在面对不同领域、不同体系结构和存储结构时问题的并行计算解决方案。

多年来,华中科技大学计算机学院一直在并行与分布式处理学科方向上注重学生的培养。自2002年起,陆续面向硕士生与高年级本科生开设了并行处理(210.503),网格和云计算(210.805)、分布式系统与中间件(210.527)、多核操作系统(210.550)、并行编程(210.520)、集群和高性能计算(0820041)等多门并行与分布式处理课程。在此基础上,自2011年起,我院在教育部—英特尔专项基金的资助下,在全国率先建设针对本科生的并行编程原理与实践课程。该课程于2013年12月,经ACM/IEEE—CS的CS2013指导委员会筛选,被正式发布为全球计算机专业示范课程。这是我国唯一被列入ACM/ IEEE—CS的示范课程。随后,在学习国内外面向计算机系统能力培养课程体系的基础上,开始建设以并行计算为主线的计算机系统能力培养课程体系。第一学期上计算思维课程,建立学生对计算的最基本认识;第三学期上函数式编程原理和命令式计算原理,让学生掌握如何将问题转化为计算步骤;第四学期上并行与串行数据结构与算法,不仅训练学生的并行与串行计算思维能力,同时训练并行与串行算法设计与分析能力;第六学期上并行编程原理与实践,让学生熟悉在特定编程环境下,涉及不同数据存储和多处理器体系结构时问题的求解方法。同时加强训练学生的程序设计与实现能力以及系统能力;进而在第七学期开设云计算与虚拟计算、大数据分析与处理等课程,让学生了解面向特定重要领域的关键问题的并行或分布式求解方法。

5 取得的经验

面向时代新需求改革和建设新的课程体系目前已经成为计算机教育界的共识,各高校已经开始了不同角度的教学改革尝试,取得了良好进展。

斯坦福大学围绕核心和跑道类课程改革的课程体系已经取得良好效果。从社会认可度看,2008年9月开始实施新课程体系,一年内新生数增长了41%,第二年又增长了29%,两年内增长了83%(美国大学计算机系学生人数通常取决于学生自由申请的数量)。

我院在推进以并行计算为主线的专业基础能力培养中也取得了一些成效。在学生的认同方面,并行编程原理与实践课程受到热烈欢迎。开课以来,由于选课人数超过预计,曾经有两个学期在教学中申请对教室进行调整,安排到可容纳更多人数(150人)的教室授课。学生们普遍反映通过课程的学习,对并行计算和编程有了更为正确和深刻的理解,其中,对并行系统、并行计算和高性能计算等新兴知识的认识,提升并行程序的性能,学会使用openMP等并行语言编程等内容,让学生感觉非常兴奋。学生在并行计算相关的大学生国际比赛中取得不错的成绩。2013年3月,在由我院6名学生组队参加的亚洲大学生超级计算大赛中,我队针对BSDE应用以60 000倍的性能加速成绩获得了“Best Mic Performance”单项奖励以及总分第三的成绩;同年6月该队参加全球大学生超级计算机比赛,以8.45TFlops的成绩获得最佳计算性能奖,并打破该项赛事记录;11月我院本科生参加了全国大学生RDMA编程比赛,获得一等奖。2016年参与ASC世界大学生超级计算机竞赛(ASC16),获得总冠军和e Prize计算挑战奖。

从方法的推广性方面看。在2013年由教育部计算机类专业教指委和机械工业出版社华章分社联合举办的系统能力培养系列课程研讨班上,金海教授介绍了以并行计算为主线的计算机系统能力培养课程体系改革的思路做法,得到全国各高校教师的积极响应。在我院于2013年起连续两年举办的并行计算系列课程暑期导教班上,我们推行并行计算课程的思路也得到了包括中国人民大学、中国科技大学、复旦大学、上海交通大学、同济大学、西安电子科技大学、西安交通大学、华南理工大学、哈尔滨工业大学、南京航空航天大学、南开大学等30多所211高校教师的普遍认同。

6 结 语

时代的发展已经对计算机教育界提出新的希望,全球各高校计算机院系开始了一系列迎合时代发展的教育改革尝试。以并行计算为主线的计算机系统能力培养课程体系改革不仅具有教育学理论基础,并且已经在实践中得到证明。当然,也仍然存在一些问题,首先是教材的建设问题,除了与机械工业出版社签订并行编程原理与实践的教材编写合同外,目前我院与CMU达成基本意向,共同编写包括并行与串行数据结构与算法、函数式编程原理等教材;其次是实验教学环节的建设问题,需要高校充分借助科研与企业的相关力量,在教学改革与实践中慢慢积累。实际上,教育改革的根本在于教学实践,特别是需要得到学生的认同。在这些相关课程资源尚未成熟以前,建议从一类本科院校做起,慢慢扩散到更多的学校中去。

[1] 陈钟. 斯坦福与北大计算机课程的改革实践[J]. 中国计算机学会通讯, 2013(1): 46-51.

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

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

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

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

[6] ACM/IEEE-CS. The Joint Task Force on Computing Curricula[EB/OL]. [2016-11-20]. http://ai.stanford.edu/users/sahami/CS2013/.

[7] 姜嘉乐.《走向前沿的模式创新》序[J]. 高等工程教育研究, 2014(1): 24-26.

[8] 朱高峰. 论工程教育研究与改革——对建立工程教育学科的思考[J]. 高等工程教育研究, 2014(1): 1-5.

[9] 王建华. 高等教育的理想类型[J]. 高等教育研究, 2010(1): 1-10.

(编辑:郭田珍)

1672-5913(2017)03-0033-04

G642

湖北省高等学校省级教学研究项目(2014054); 2015年产学合作专业综合改革项目(教高司函[2015]51号)。

陆枫,女,副教授,研究方向为并行处理、移动互联网,lufeng@hust.edu.cn。

猜你喜欢
计算机系统编程课程体系
三维视角构建劳动教育课程体系
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
高职Java程序设计课程体系建设思考
纺织机上诞生的编程
关于不法分子冒充《小型微型计算机系统》名义诈骗的严正声明
构建优质学前健康教育课程体系促进幼儿健康成长
“三位一体”课外阅读课程体系的实施策略
IBM推出可与人类“辩论”的计算机系统