从“中兴事件”看研考计算机学科“系统能力”的考查
2018-10-16袁春风陈朔鹰
李 骐 袁春风 陈朔鹰
从“中兴事件”看研考计算机学科“系统能力”的考查
李 骐 袁春风 陈朔鹰
中兴公司被美国实施制裁事件反映了我国计算机核心技术与世界先进水平的巨大差距。人才培养是科技进步的基础,加强计算机专业人才的系统能力培养,是提升我国信息产业自主创新人才水平的必由之路。尽管在研究生招生考试计算机专业学科联考中采取多种方式在试题中贯彻系统能力考查的思想,但历年的考后数据显示计算机专业本科教学中还存在着各种问题。要继续在研究生考试中坚持和推广系统能力的考查,配合高校计算机专业的教学改革,逐渐扭转计算机核心技术人才培养不足的局面。
中兴事件;研究生招生考试,计算机专业;系统能力
2017年4月,美国以违反对伊朗实施禁运的法令为由,宣布制裁中国中兴通讯股份有限公司(以下简称“中兴公司”),禁止美国企业在七年内与中兴公司进行任何商业来往(这一事件以下简称“中兴事件”)。中兴公司作为世界知名的通讯设备供应商,所需芯片高度依赖美国企业,美国的芯片禁运可能使中兴公司面临“无米之炊”的窘境。此次“中兴事件”引起了社会各界的巨大反响,人们看到我国在以芯片制造为代表的核心集成电路技术和产业方面,与世界先进水平还存在巨大的差距。人才培养是一切科技进步的基础,“中兴事件”从一个侧面真实反映了我国计算机专业高等教育的现状,即还没有规模化培养出能够深入理解并掌握以CPU和操作系统为代表的计算机核心技术的人才[1]。改革我国计算机专业高等教育模式,培养适应我国信息产业自主创新的高素质人才是一项复杂工程,而全方位加强计算机专业学生系统能力的培养则是其中的一条“必由之路”。
“系统能力”是指能够自觉运用系统的观点,理解计算机系统的整体性、关联性、层次性、动态性和开放性,并用系统化方法,掌握计算机软、硬件协同工作及相互作用机制的能力。近年来,教育部计算机专业教学指导委员会以及清华大学、南京大学等高校在推动面向计算机系统能力培养的教学改革方面进行了一系列的研究和实践[1-4],取得了一定的成果。全国硕士研究生招生考试计算机科学与技术学科联考(以下简称“研考计算机学科联考”)作为我国计算机专业领域最高层次的全国性统一考试,其目的是科学地考查计算机专业本科生的专业基础知识和能力,为高等学校和科研院所选拔合格的硕士研究生,同时也承担诊断和引导全国计算机专业本科教学的任务。在研考计算机学科联考中坚持贯彻系统能力考查的思想,能够很好地配合和推进国内高校计算机专业课程体系、教学思想和培养模式的改革,改善我国在计算机系统研发设计领域创新型人才培养不足的问题。
一、为什么要加强计算机学科系统能力的培养
从1946年世界上第一台电子计算机ENIAC诞生到现在,计算机已经从最初的电子管、晶体管计算机时代发展到当前以多核处理器、嵌入式设备和云计算技术为代表的后PC机时代,计算机系统的功能越来越强大,结构也越来越复杂。计算机科学与技术作为一个学科门类,其主要研究内容就是将复杂的计算机系统抽象成不同的功能层次,通过认知各个抽象层次的工作原理和实现技术,培养能够在不同层次进行相关设计、研发和应用工作的专业化人才。计算机系统的抽象层次模型如图1所示[4]。
图1 计算机系统的抽象层次模型
分层思想是认知和学习计算机系统的基本方法,也决定了计算机系统的使用者及其工作内容的分类。所有计算机的使用者可以分为最终用户、系统管理员、应用程序员、系统程序员和系统设计者。最终用户使用计算机设备进行日常的工作和学习;系统管理员为计算机系统的应用进行软硬件的安装、设置和维护等管理工作;应用程序员将现实中的应用问题通过算法设计成可解决的方案,再使用高级语言将方案编写成具体的应用程序或软件;系统程序员熟悉底层硬件设备和指令集结构,负责编写供应用程序员和系统管理员使用的系统软件;系统设计者的任务是进行芯片、集成电路以及计算机体系结构的研究和设计。显然,计算机专业人才培养的对象包括了系统管理员、应用程序员、系统程序员和一部分系统设计者。无论是哪个层面的计算机专业人才,都应该对计算机系统有深刻的理解,能够站在整个系统的高度考虑和解决应用问题;合理划分计算机系统各部分的功能,对计算机系统整体性能进行分析和优化,在此基础上经过进一步的专业学习,使自己具备CPU、操作系统软件以及计算机体系结构的设计和研发能力。
近年来,以电子商务、移动支付等为代表的新兴产业发展迅速,繁荣的互联网产业催生了对各类应用程序员的巨大市场需求,而我们的高校在培养合格应用程序员和系统管理员方面也取得了显著的成果,每年大量的计算机专业毕业生进入到各类互联网企业,薪资待遇远超大多数其他专业的毕业生。这种人才供需两旺的现象在一定程度上掩盖了高校计算机专业在更高层次的系统程序员和系统设计者培养方面的不足,计算机专业的本科生甚至研究生都不具备开发符合工业标准的CPU、操作系统以及编译器的能力,专业人才的缺失直接制约了我国芯片制造、操作系统等计算机核心技术产业的发展。
二、如何在研考计算机学科联考中实现系统能力的考查
从2009年开始,研考计算机学科联考实行全国统考,作为一项面向全国的选拔性考试,由于研考计算机学科联考受到纸笔考试形式、试卷容量和答题时间有限、需兼顾各层次高校教学实际情况等多方面的限制,因此要通过一张试卷考查和区分考生的系统能力水平,需要围绕以下几个方面进行精心设计。
1.以性能和效率为核心,强调找到解决问题的“最优解”
计算机科学的核心任务和发展动力就是追求在解决实际问题的过程中,能够以最快的速度,最少的消耗获得更好的性能。因此,在设计编写程序时是否能从性能和效率最优化的角度去考虑问题,是衡量计算机专业本科生专业素养的重要标准。研考计算机学科联考中,数据结构知识的试题最能体现“性能和效率最优”的思想,要求考生不仅能够设计解决特定问题的算法或程序,还要求这些算法或程序“尽可能地高效”。在每年的试卷中,都会设置一道有关算法设计的综合应用题,其基本模式为:给定某个应用问题,要求考生运用相关数据结构知识写出解决该问题的算法思想,并使用某种高级程序语言将算法实现,最后要指出所设计算法的空间或时间复杂度。这道试题考查学生综合运用数据结构基础知识解决实际问题的能力,而是否能编写性能最好的程序是区分考生能力水平的主要指标。这类试题的参考答案会列举出符合题目要求的各种算法思想及其实现程序,并且按照算法不同的时间或空间复杂度给出得分,考生设计的算法和程序性能越好,对应的得分也越高。在心理测量理论中,用区分度(D)指标描述测试题目对心理测量对象能力区分的有效性,取值范围是-1~+1,值越大说明区分效果越好,通常认为区分度在0.4以上的试题即是“非常优良”的试题。根据考后数据统计,研考计算机学科联考的统考试题从2011~2017年共7道算法设计综合题的区分度如表1所示,区分度均在0.5以上,说明能够很好地区分不同能力水平的考生。
表1 2011~2017年研考计算机学科联考统考试题中算法设计综合题的区分度
2.强调从硬件的角度出发设计和调试计算机程序
用高级语言编写的计算机程序,无论有多么复杂,最终都要通过编译器转换成能够被计算机硬件识别的机器指令,操控各种器件完成二进制的加减乘除以及逻辑运算,从而实现相应的功能。目前在高校计算机专业本科教学中,普遍存在“重软件,轻硬件”的现象。一方面,很多学生对于掌握各种新型编程语言和软件工具更加感兴趣,追求以最快的速度来开发应用软件,觉得学习枯燥抽象的计算机硬件知识是浪费时间;另一方面,很多高校计算机专业的硬件课程教学却仍然沿用传统的教学理念,教学内容还停留在计算机硬件的基本构成和基本原理层面,没有将底层硬件知识与程序设计课程的教学内容进行有效衔接,使得学生不能建立计算机软硬系统的整体概念,开发设计程序不考虑与硬件的协同配合。针对这种情况,在研考计算机学科联考中计算机组成原理相关试题的设计就彻底摒弃了“某硬件的结构是什么?”“某设备的工作原理是什么?”等传统命题模式,而是通过给定一段小程序,根据程序对应的指令序列在执行过程中涉及的硬件结构及工作原理进行提问,考查学生站在硬件的角度设计和调试计算机程序的能力。考生要正确回答这类试题,必须要熟悉计算机程序从编译到运行过程中与硬件相结合的实际过程,而系统性地进行硬件实验训练是理解软硬件协同工作最有效的手段,试题中的这种命题模式可以在一定程度上引导或促进高校重视和加强相关硬件实验课程的教学。
3.以真实运行场景作为题干,考查考生对计算机内部数据处理过程的掌握
计算机科学与技术作为一门典型的工科学科,在考试命题中必须要突出其应用性和工程性的特点。尽管受到纸笔考试形式本身的限制,无法直接将真实的计算机环境设计到纸质试卷中来,研考计算机学科联考试题仍然可以通过对计算机系统实际运行场景进行模拟和抽象,作为试题题干进行问题设置,考查考生对计算机内部数据处理过程的理解和掌握。例如,对于计算机网络部分,每年的试卷中都要设置一道综合应用题,其题干场景就是模拟一个实际运行的局域网络,局域网中的用户可以实现收发电子邮件、浏览网页等各种网络业务功能。这类试题要求考生根据题干中的要求,完成相应的配置、设计和操作,从而保证用户网络应用的实现。考生要回答这类试题,仅仅知道各种网络协议的功能和机制是不够的,必须要熟悉网络应用在各种网络协议的作用下实际的处理过程。
4.融合不同子学科的内容设计试题,考查考生计算机基础知识的综合运用
研考计算机学科联考试题包括数据结构、计算机组成原理、操作系统和计算机网络等四部分内容,其中每一部分都是计算机专业本科阶段的一门独立课程,从完整的计算机系统角度看,这四部分内容之间又是紧密联系的。比如,操作系统、计算机网络协议中大量使用了各种数据结构类型和算法思想,而计算机的运行则需要各种硬件设备与操作系统的协同工作,等等。因此,研考计算机学科联考统考试题在命题中不再拘泥于机械地按照某一子学科的内容来设计,而是根据计算机的实际工作原理,在一道试题中融合不同子学科的知识,考查考生站在系统的高度,综合理解和运用计算机基础知识解决问题的能力。例如,2014年的第42、43题都是将数据结构与计算机网络两部分的知识内容联合设讲成一道试题,考查数据结构中“图”的相关知识点在网络路由器中的应用;2017年的第43题、44题和45题也都是分别将计算机组成原理与操作系统两部分的内容联合设计成一道试题,考查操作系统中的存储管理和进程管理机制如何在硬件机器指令执行过程中发挥作用。通过这种命题和考查方式,能够引导学生在平时的专业课学习过程中,将不同学科内容进行融会贯通,有助于更加深入地理解计算机系统的复杂工作原理。
三、历年研考后数据分析揭示的问题
通过对研考后试卷进行测量学统计分析,可以反映被测试群体对专业知识的掌握情况,从而进一步监测和诊断教育教学水平。近年来研考计算机学科联考统考试题的考后数据统计结果主要呈现出以下几方面的特点。
1.试卷得分率较低,计算机专业本科教学总体水平有待加强
在教育测量学中,试卷得分率是指样本平均得分与试卷总分数的比值,主要反映被测群体总体的答题情况。得分率越高,说明答题情况越好,试卷越容易;得分率越低,说明答题情况越差,试卷越难。近七年来的研考计算机学科联考统考试卷的得分率如表2所示。
表2 2011~2017年研考计算机学科联考统考试卷得分率
由表2可知,研考计算机学科联考的统考试卷得分率多年来保持相对稳定,基本位在0.4~0.5区间。与其他21门研考全国统考试题相比,除了2011年的心理学、法律硕士专业基础两门课程的得分率要低于计算机学科的外,其余各年度计算机学科都是得分率最低的试卷,成了研考中最难考的统考科目。真的是研考计算机学科联考统考试题太难吗?研考计算机学科联考的考试大纲中规定了数据结构等4门专业基础课的基本概念、基本原理和基本方法,是各高校计算机专业教学的核心内容,涉及约247个知识点。而每年统考试卷中出现的知识点大约在90~100个左右,并且均不涉及复杂的数学计算和大段落的程序编写,只要学生对计算机专业最基础、最核心的知识能够真正理解并且灵活运用,就可以顺利地解答大部分试题。出现连续多年研考计算机学科统考试卷得分率低于0.5的情况,说明学生专业基础知识较差,对于一些基本概念和基本原理认识和理解不到位,一定程度上反映了在本科教学中教师对一些基本概念和原理没有讲清讲透;学生分析问题能力较差,遇到问题只会照搬公式套概念,而不会融会贯通地灵活运用,也透视了在教学过程中,教师没有很好地将基本概念和基本原理与实际问题结合起来进行讲解,缺乏对学生分析具体问题能力的训练。
2.计算机组成原理部分试题得分率偏低,硬件类课程教学中的问题突出
2011~2018年研考计算机学科联考统考试题各部分得分率如表3所示。
表3 2011~2018年研考计算机学科联考统考试题各部分得分率
由表3可见,在历年的试卷中,计算机组成原理部分的得分率都是最低的。计算机组成原理是介绍计算机内部结构组成、逻辑功能和运行机制的计算机专业核心课程,是培养计算机专业学生建立系统观念必不可少的部分。同时,计算机组成原理也是芯片及集成电路技术的理论基础,对这一领域的技术创新和产业发展起着极其重要的作用。从考后统计数据来看,考生对于计算机组成原理课程,无论是基础知识的掌握还是基本能力的训练,都存在明显的不足。因为相比于数据结构、操作系统和计算机网络课程,计算机组成原理的教学效果更加依靠实验环节,只有学生亲自动手搭建和调试各种计算机设备,才能真正理解计算机硬件内部的工作原理和流程,从而建立计算机硬件系统协同工作的完整概念。目前,在以计算机组成原理为代表的高校硬件类课程教学中,实验环节存在实验教材缺失、实验设备陈旧、实验内容过时等诸多问题,缺乏能够贯穿整个计算机硬件系统的综合实验平台。学生学完书本知识后,没有办法通过做实验将书本知识真正消化理解,因此在考试中遇到不是“死记硬背”类的试题就只能束手无策。
3.多知识点试题得分普遍较低,考生的计算机知识综合运用能力欠佳
考后数据显示,试题所涉及的知识点越多,考生的平均得分就越低。在研考计算机学科联考统考试卷中,单项选择题通常只涉及1~2个知识点,综合应用题一般会将多个知识点融合在一起进行设问,2011~2017年各年度的单项选择题和综合应用题的得分率如表4所示。
表4 2011~2017年研考计算机学科联考统考卷中单项选择题与综合应用题得分率对比
由表4可知,历年综合应用题的得分率都要远远低于单项选择题,表明考生对于将多个知识点综合运用的能力比较欠缺。特别对于将不同子学科知识相互融合的综合应用题,考生的得分情况更加不理想。比如,2017年的第43、44和45题,融合了计算机组成原理和操作系统两部分的内容,考后统计得分率分别仅为0.373、0.335和0.318,是当年7道综合应用题中得分率最低的3道试题。考生在考试中所表现的计算机知识综合运用能力欠缺,反映了考生缺乏对计算机专业基础知识的整体认识和把握,不清楚课程之间的关系,甚至一门课中知识和知识之间的关系都搞不清楚,学到的知识是割裂的,在日常本科教学中,教师没有有意识地将所教课程与其他相关课程有机结合,导致学生难以掌握课程的本质和精髓。
综上所述,研考计算机学科统考试题的考后数据反映了我国高校计算机本科专业基础教学存在着“轻应用、缺关联、少综合、无系统观”等问题,应从改变教学理念、更新教学内容和教学手段、加强教学交流和师资培训入手,强化课程核心内容的教学,提升学生对专业基础知识体系的认识和学科实际应用知识的实践,加强学生计算机系统能力的培养。
四、建议与展望
1.坚持系统能力的考查不放松,发挥统考试题的标杆示范作用
研考计算机学科联考实施全国统考后,由于其标准把握严格,试题形式灵活,造成了统考试题难度明显大于自主命题的难度。这对于部分非计算机学科名校的研究生招生产生了很大影响,引起部分高校的强烈反对。在调研听取了多方意见后,教育部从2013年开始,对研考计算机学科联考命题政策进行了调整,给予各招生单位充分的自主选择权利,即既可以选用全国统考试卷,也可以选择自主命题。在自由选择统考命题或自主命题后,虽然统考报名人数出现了一定幅度的下降,但仍然得到很多计算机学科传统名校和专业优势单位的认可。以2014年为例,有17所“985工程”建设大学和30所“211工程”建设大学选择了统考试卷,代表我国计算机学科科研和应用较高水平的中科院和航天集团各研究院(所)也都选择了统考试卷[5]。即使是因为各种原因放弃了统考试卷的高校,在进行自主命题过程中也参考或借鉴了统考试卷的命题理念,开始重视对考生系统能力的考查。因此,研考计算机学科联考中的系统能力考查应该继续坚持下去,努力将计算机专业课统考打造成为一种高质量的公共服务产品,更好地帮助选择统考试卷的高校和科研院所选拔高质量的考生,同时也为采用自主命题试卷的招生单位提供参考。
2.排除影响高校选择统考试题的非学科因素,促进系统能力考查的推广和深入
多年来的考后阅卷评价以及各方面的意见反馈显示,研考计算机学科统考试卷的能力考查思想与试题质量,都得到国内主流计算机学科教育界以及研究生招生单位的普遍认可,同时,采用统考试卷可以大大减轻招生单位自主命题、阅卷和考务管理的压力,提升招考工作的效率。因此,从考试组织本身考虑,大多数的研究生招生单位对于统考试卷是欢迎和接受的。然而,实行选择统考试卷与自主命题“双轨制”政策后,很多高校因为各种非学科因素选择了退出统考。首先,在所有工科类的研考专业课目中,只有计算机专业有统考的形式,加上计算机专业课试卷难度明显高于其他工科类专业自主命题的难度,而在录取过程中所有工科类专业课采用的却是统一的录取分数线,这就造成计算机专业课统考考生上线率要远远低于其他工科类专业,对于很多生源不是很好的学校,能够达到专业课录取分数线的考生越来越少,甚至出现了招不到学生的现象,迫使这些学校退出统考而选择自主命题的方式。其次,目前研究生招生考试的阅卷采用的是分省阅卷的方式,部分省区市由于人力、物力条件限制,不能为本省区市所在高校提供研考计算机学科联考统考试卷的阅卷服务,造成有些高校无法选择统考试卷,不得不自主命题、自行阅卷。这些非学科本身的因素影响了研究生招生单位对统考试卷的选择,限制了系统能力考查与培养在全国高校计算机专业中的推广。针对这种情况,建议招生主管部门可考虑研考计算机联考专业课考试采取单独划线的方式,这样就可以解决与其他工科类自主命题专业课统一划线而出现的难度不均衡问题。同时,建议对研考计算机学科联考统考采取集中统一阅卷的方式,避免因为阅卷问题影响高校对统考试卷的选择。
“中兴事件”引起了全社会对我国高科技领域核心技术缺失问题的关注和讨论。高端芯片和基础软件受制于人已经成为我国经济发展的一个软肋,必须要引起政府、科技界、产业界和教育界的高度重视。人才培养是科技与产业的基石,只有提升我国计算机专业人才整体系统能力水平和素养,才能够推进信息产业自主创新和核心竞争力的发展。考试作为教育过程的一个重要环节,能够起到选拔评价人才,引导教育教学的作用,因此,要继续坚持在研考计算机学科专业课考试中贯彻和推广系统能力考查的思想,配合高校计算机专业面向系统能力培养的教学改革,逐渐扭转我国信息产业基础技术落后、人才培养不足的局面。
[1] 王志英, 周兴社, 袁春凤, 等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育, 2013(9): 1-6.
[2] 高小鹏. 计算机专业系统能力培养的技术途径[J]. 中国大学教学, 2014(8): 53-58.
[3] 刘卫东, 张悠慧, 向勇, 等. 面向系统能力培养的计算机专业课程体系建设实践[J]. 中国大学教学, 2014(8): 48-52.
[4] 袁春风, 王帅. 大学计算机专业教育应重视“系统观”培养[J]. 中国大学教学, 2013(12): 41-46.
[5] 李骐, 陈朔鹰. 研究生入学考试专业课统考与自主命题“双轨制”政策的实效分析——以计算机科学与技术专业为例[J]. 学位与研究生教育, 2015(9): 38-42.
(责任编辑 赵清华)
2018年教育部“新工科”研究与实践项目“新工科计算机类专业系统能力培养的改革与实践”
10.16750/j.adge.2018.10.010
李骐,教育部考试中心助理研究员,北京 100084;袁春风,南京大学计算机系教授,南京 210046;陈朔鹰,北京理工大学网络中心主任,副教授,北京 100083。