计算机专业系统能力培训的探讨及实施(一)

时不时听到有老师提问之下问题:为什么学完高级语言程序设计后有些学生即使不欣赏电脑专业了?为什么越来越多之学员越学越不爱电脑专业?

也时听到学生问之下问题:像地质系这些非计算机专业的生自学JAVA语言等学科后呢克找到软件开发的做事,而我们计算机专业学生大多学那么基本上课程不呢只好干同样的作业吗?我们计算机专业学生比较其它专业进修计算机课程的学员强在哪里啊?现在电脑课发展这么快,什么领域还与处理器有关,为什么咱们计算机课毕业的生确实能干的从业啊非多也?……

真的,对于多数计算机本科专业学生吧,硬件设计力量不设电子工程规范学生,行业软件开发与动能力不使另相关规范学生,算法设计和分析基础而不如数学系学生。那么,计算机专业学生的一技之长在何?笔者认为计算机专业学生的优势之一在于计算机体系能力,即具有计算机体系层面的咀嚼和规划能力、能起计算机体系的万丈考虑与缓解问题。但和国外一流大学相比,国内高校当系能力培训方面尚留存有问题。因此,本文将介绍笔者于当下地方的思和开探索,并拿于此起彼伏几篇稿子中于有南京大学计算机有关在这上面实践的汇总改革方案。

1 计算机人才体系能力培训的显要

乘势大规模数据基本(WSC)的树和个体倒装备(PMD)的大度奉行使用,计算机发展进来了晚PC时代,呈现出“人以及信息世界和物理世界融合”的主旋律以及网络化、服务化、普适化和智能化的显而易见特点。后PC时代WSC、PMD和PC等现有,使得原本基于PC而起起的正规教学内容已经远远不能够体现现代社会对电脑专业人才的扶植要求,原先计算机专业人才培养强调“程序”设计为改成更强调“系统”设计。

继PC时代,并行成为主要主题,培养有系统观的、能够进行软、硬件并计划的软硬件贯通人才是着重。而且,后PC时代对大气行应用开发的应用程序员的求吗换得更胜似。首先,后PC时代的施用问题再度复杂、应用领域更广阔。其次,要能编写出各类不同平台所符合之快捷程序,应用开发人员必需对电脑体系有完善的认识,必需了解不同体系平台的底色结构,并操纵并行程序设计技术与工具。

766游戏网官网 1

Paste_Image.png

图1 计算机体系抽象层的变

自图1可见见,计算机体系由不同的抽象层结,“计算”的进程就不同抽象层转换的经过,上层是下层的悬空,而下层则是上层的切切实实贯彻。计算机课主要研究之是电脑体系依次不同抽象层的实现及其相互转换的建制,计算机课培养的相应要是当微机体系或者以系统某些层次上从事相关工作的丰姿。

相对而言于其它标准,计算机专业学生的优势在针对性网深刻的明,能够站在系统的高度考虑同化解采取问题,具有系统层面的体会及规划力量,包括:能够对软、硬件功能拓展合理划分;能够针对系不同层次开展抽象和包裹;能够针对系统的完整性能进行解析以及调优;能够对系各层面的谬误进行调试以及修正;能够根据网贯彻机理对用户程序进行标准的性能评估以及优化;能够冲不同之行使要求合理构建系统框架等。

假定达成上述这些以网层面达到的辨析、设计、检错和调优等体系能力,显然,需要加强学生对任何电脑体系贯彻机理的认识,包括:对计算机体系整体概念的认;对电脑体系层次结构的深刻理解;对高档语言程序、ISA、OS、编译器、链接器等中涉及的刻骨铭心掌握;对指令以硬件及推行进程的领悟和认识;对做计算机硬件的着力电路特性与筹划方式等的为主了解等。从而能够重新深切地了解时空开销和权衡、抽象和建模、分而治之、缓存和区域性、吞吐率和时延、并发和交互、远程过程调用(RPC)、权限和掩护等重点之中坚概念,掌握现代计算机体系被最为中心之技巧与贯彻方式。

2 美国顶级大学有关教学情况

前不久我们对美国MIT、UC
Berkeley、Stanford和CMU这四单大学的微机专业有关教学体系及系学科教学与试验情况开展了跟踪调查。

(1)麻省理工学院(MIT)

MIT的EECS系提供了三单不等的学位:Electrical Engineering(EECS
6-1)、Electrical Engineering & ComputerScience(EECS
6-2)和ComputerScience(EECS
6-3),每个学位中以提供了不同之取向。所有学位课程分为7类:数学(math)、导论(Introductory)、基础(Foundational)、核心(Header)、实验(Lab)、高级(Advanced)和异常品种(Project)。

打EE、EECS和CS三单学位课程列表可以观看,导论课程EECS 1(6.01)和EECS
2(6.02)以及基础课程6.004凡是负有学生都须学之学科,其中,基础学科6.004底课名为吧Computation
Structures,它是同等宗贯穿整个电脑体系的课程。在硬件及它们涵盖了门电路→功能部件→单周期和流程CPU之间的有着骨干内容,在软件及其含有了C语言→汇编语言→机器指令之间的基本内容,涉及到过程调用、系统调用、进程、并行、性能评价等部分至关重要概念。

于主导类学科被,6.004学科的接续课程6.033又是EECS 6-2跟EECS
6-3片个规范的学位课程。其教材是《Principles ofComputer System Design: An
Introduction》(Jerome H. Saltzer和M. Frans
Kaashoek编著),内容包含了计算机体系布局、操作系统、网络等多门学科被的要害概念,包括计算范式、并行、跨层通信、资源分配和调度、虚拟化等。它涵盖了一个程序员为支付大性能应用而必须了解之有关系统里面的具备重大概念以及文化。

(2)加州大学伯克利分校(UC Berkeley)

UC Berkeley的EECS系有三三两两只例外专业型:Bachelor of Arts和Bachelor of
Science。

前者(B.A.)为那些注册到 Collegeof Letters & Science
的备将双学位(如CS与数学,CS与体会是)的生提供,EECS系提供CS方面的科目。后者(B.S.)提供零星种不同之Program:ECE
(Electricaland Computer Engineering)和CSE(ComputerScience and
Engineering)。ECE又提供三种植不同方向:Electronics、Communications,Networks
and Systems和Computer Systems;CSE仅发生Computer
Science一个主旋律,它跟B.A.专业型一样,是偏CS的规范,两者的反差就在所选择的其他非CS课程是偏工程类课程要偏人文社会学学科,对于CS方面课程以来,两者没有任何异样。此外,B.S.也供对学位Program(如EECS与资料是和工程、EECS与核工程)。由此可见,UC
Berkeley提供的正式于偏工程可行性上分较密切,也专门讲究交叉学科人才的培育。

她提供了同等家贯穿整个电脑体系的必修基础课CS 61C,其课程名称为Great
Ideas in Computer Architecture(2011年以前为Machine
Structures),所用教材除了C语言和计算机组成和统筹方面的外侧,还将一如既往按照有关数据基本方面的书写长吗课后读材料;涉及的试行内容很普遍,2011年前的14独实验主要分五类:C语言编程、汇编程序设计、流水线CPU等硬件逻辑电路设计、Cache模拟与多核多线程编程实验,2011年后以搭了讲计算平台上之相互编程(MapReduce)、SIMD数据级并行编程和多线程编程(OpenMP)实验等,让学生经过试验体验不同粒度下的并行处理技术。

CS 61C的继承课程是EECS
150,是数字系统规划课程,它要求学生成功能够落实多数常用命令的五级流水线MIPS
CPU。

(3)卡内基梅隆大学(CMU)和斯坦福大学

CMU的电脑是学院(SCS)与斯坦福大学CS系的做法类似,提供的差不多只培训方向中都出电脑体系或电脑工程(CE)方向。

鲜校都来一致门户为CS和EE(ECE)所有学员开设的贯通整个电脑体系的基础课:CMU的CS
213跟斯坦福的CS 107。所用教材都是《ComputerSystems: A Programmer’s
Perspective》(Randal E. Bryant与David R.
O’Hallaron编著),教学内容和试验内容不同不多,都是由此一样组精心设计的C语言编程实验,使学生能更好地问询高级语言程序转换为机代码的经过,深刻理解底层机器的系统结构(包括指令格式、数据表示、寄存器组织、Cache结构、虚存空间的映照等),提高编制高效程序及调试程序的力,并为延续之系布局、编译技术、操作系统等科目打下好的根底。斯坦福的任何一样帮派一定修课CS
110虽然MIT的6.033学科所用教材一样。

3 中自得其乐大学相关教学情况对比

由此对MIT等四只美国大学在相关课程方面教学情况的跟踪调查,我们发现,中沾沾自喜大学当处理器专业人才培养以及学科教学方面存在重重异。

(1)关于分流培养问题

美国四校都利用了疏散培养模式,都装了偏硬件还是系统的规范或动向,例如,有EE、ECE、CE和处理器体系等;而当前国内多数高等学校还单出一个正经:计算机是与技术,专门分出ECE、CE、计算机体系规范或动向拓展人才培养的学校生少。绝大多数大学不得不养应用程序员,而且是指向电脑体系底层知之甚少的应用程序员。

(2)关于CS和EE(ECE)课程共享问题

无论是像MIT和UC
Berkley这样以EE和CS合为一个有关的校,还是如Stanford和CMU这样将EE(ECE)与CS分开设系或学院的学堂,他们还下课程互选共享的主意,即CS方面的学科由CS部门设立,EE(ECE)方面的课由EE(ECE)部门设置,并且课程可共享,学生可交互选课程;在境内高校中这种体制还不是颇到。

(3)关于电脑体系入门课程

美国四校都办了平派CS和EE(ECE)专业有学员必修的贯通整个电脑体系的根基课,表1深受有了系学科中心教学情况的相比总结。

表1 美国四校计算机体系入门课程教学骨干情况

766游戏网官网 2

Paste_Image.png

于表1可见到,MIT的系课程又尊重于硬件底层,UC-Berkeley次之,而Stanford和CMU的近乎,主要由程序员角度介绍计算机体系,更偏于吃系统软件层面。

MIT
6.004学科则课堂教学中没凸起反映于程序员角度认识计算机体系这样的思索,但是,在试行环节呢装了打C语言程序及汇编语言程序进行手工转换的试验,基本上涵盖了高级语言及机器级语言转换的拥有重点概念。

起美国四校有关学科的教学内容以及规划之实验内容来拘禁,充分说明了他们充分讲究学生的系能力培训,通过专门的同等流派科目将电脑体系的相继层次串起来,为学生整体地、全面地认识计算机体系打下了良好的底子。

于国内多数高等学校办的科目中,很麻烦找到接近份量的有关电脑体系的入门课程,虽然国内高校为产生计算机体系概论、计算机体系入门或导论之类的科目,但内容广而未生,什么都提一点,什么还提不显露,基本上是计算机课程概论,而不是计算机体系概论。如果说国内的微机组成原理课相当给美国大学的微处理器体系入门课程,那么该教学内容的广度与深度又都距离大远。国内多数大学的组原课基本上只有是硬件概述,既无见面和高档语言编程建立关系,也绝非讲明白和操作系统的关系,更看不到编译的影子,即使以硬件设计方面为遥没高达MIT
的6.004以及UCBerkeley的CS
61C的吃水。因此,国内目前多数高等学校的组原课没有于及当贯穿整个电脑体系的基础课的来意。也就是说,目前境内大部分高等学校都无同门户确乎关于电脑体系的入门课程。

(4)关于硬件设计方面的教程

通过对美国四校课程体系的跟踪调查,我们发现,这些院校于电脑体系入门课程后还开设了有关数字系统规划之课程,课程内容基本上涵盖了国内数字逻辑电路和做原理两派课的具有内容,有的学校分数字系统规划(一)和数字系统规划(二)两门课来讲,有的就是一门课,基本上还务求学生因此EDA方式设计相对完好的流程CPU,而且还是由于EE(ECE)部门设立,但并无求拥有学员都如法炮制,通常是偏硬件类的EE、ECE、CE和计算机体系专业或动向的生必学,其他可行性学生选修。

回顾国内大部分高等学校,基本上都是事先上数字逻辑电路(有些合并了部分模电内容)课程,然后上结合原理课(有些组成原理课上之是电脑原理同接口的情),而且,这片宗课程基本上都是持有学生的必修课程,并不曾设想不同方向学生对此电脑底层硬件知识及硬件设计能力的两样需求。

为脚下国内多数学的组原课程教学基本上要沿用传统的教学理念,教学内容还栖息于电脑硬件的骨干成和基本计划原理层面,既未像海外EE(ECE)部门设置的数字系统规划那种硬件设计课程,能够被学生确实了解如何用硬件描述语言通过FPGA来设计现代电脑硬件系统;也不是一样门关于电脑体系的入门课程,能够给学员圆地领悟整个电脑体系的落实机理。因此,目前大部分大学的组原课程的教学,既无会达塑造学生采用现代化工具进行实际硬件设计之力量,也尚无被学员学会使用机械底层硬件及系统结构知识来提高高效软件开发和程序调试的力量,更不曾经过该课程为学员树立于计机软、硬件系统的总体概念[5]。

(5)关于大级计算机系统内容的教学

在MIT和Stanford等学校还开办了有关电脑体系的高档课程,主要内容包含在ACM/IEEE
CS2013负初长的知识点SF中,而相应的学科时当境内本科生教学中尚非多呈现,因此,在计算机体系能力培训方面,国内的本科教育相对于美国一流大学来说,在此间为少失了同一片。

(6)关于课程教学理念

打美国四校相关课程体系可以见到,他们都十分看重计算机体系能力的养,都当模拟了高层的编程语言及其程序设计课程后办了一样帮派关于电脑体系的功底课程,而且,在课程内容上特地重视于处理器体系依次抽象层及的纵向766游戏网官网关联,沿着一漫漫主线,把每个抽象层都拧起来,从而形成一体化的处理器体系概念。而境内的学科设置,基本上是准电脑体系层次结构进行横向切分,自下而上分解成数字逻辑电路、计算机组成原理、汇编程序设计、操作系统、编译原理、程序设计等学科,而且,每门课程都只局限在随抽象层,相互之间几乎从来不提到,学生对整电脑体系的认过程就如“瞎子摸象”一样,很为难形成一个针对整体计算机体系的到认识。

2009年开始,计算机专业的研究生入学考试采用全国统考方式,计算机专业基础综合统考科目包括数据结构、组成原理、操作系统和网四派别学科,总分也150分。五年来的抽样结果显示,全卷平均分每年就在60~78之间,试题统计难度(单选题指答对人口/总人数,综合应用题指样本平均分/该题总分,最终难度啊加权平均值)仅于0.41~0.52以内,其中成原理最低,特别是其综合使用题之难度特在0.181~0.440间,五年并10独综合采取题,只生星星点点题的难度上了0.4以上,说明拥有考生平均单控制所考内容的横30%横,有的方面只是发生20%请勿至,也就是考生们对多边归纳使用能力考核内容都未曾掌握。从抽样省客来拘禁,前三年抽样的基本上是高等教育水平比较大的地段,可想而知,全国的取样数据应重新不比。近五年的综合运用题抽样数据表明,试题统计难度以及解题涉及到的知识点个数相关性较生,通常涉及的知识点越多得分越差,说明学生的汇总采取能力比弱,平时欠对有关知识和定义关联性的思辨。

依据多年来对全国研究生计算机专业基础综合统考科目考试成绩的取样调查结果,可以见到我国大学计算机本科专业基础课的教学确确实实是“轻应用、缺关联、少综合、无系统观”的题材。

4 国内有关教学改革概况

眼下,越来越多之高等学校发现了电脑专业基础科目教学中之片题材,开始青睐学生的体系能力培训。

目前为止,已经生一些高等学校为MIPS为模型机,对数字系统规划之相干内容开展了深切的教和实施,也时有发生一部分高等学校以将CPU设计与操作系统和编译的情融合起来进行尝试课程的立。浙江大学大多年来每年在暑假都见面设置有关CPU及其计算机体系规划的选修课;东南大学为特别举办了面向所有学员的微处理器体系综合试验课程;北京航空航天大学从2006年始张罗,花了5年时间实现了突破,在有关的数电和组原、OS及编译原理课被日渐被学员好一个完好无缺计算机体系的宏图;清华大学即为曾经形成了电脑综合实验平台的具备软、硬件部分的支付,准备在享有本科生中设置计算机体系综述试验课程。此外,中科大与国防科大相当高校也直接在实施本科生的电脑体系规划力量培训计划。可喜的凡,像南师非常、南京航空航天大学、首都师范大学相当有大学的任课老师也以组合原理课的教学及其相关实验中,引入了以MIPS为模型机的
CPU设计的教学及尝试内容。

单向,像复旦大学软件学院与上海交大软件学院相当则开了和CMU的CS
213近似之教程,北京大学呢于上年毕引入了CMU的CS
213科目教学内容。但是,总的来说,目前以境内到进行像CMU的CS
213那样的课程教学,困难还是无小,对任课教师和学员来说都是一个请勿聊的挑战。

笔者袁春风,南京大学计算机系教授
文章来源:
微信公众号:开点工作室(kaidiancs)
(未完待续)

发表评论

电子邮件地址不会被公开。 必填项已用*标注