新工科背景下计算机系统思维能力培养模式探析

2020-11-30 06:51孙大为张玉清
计算机教育 2020年7期
关键词:计算机系统计算机科学计算机专业

孙大为,张玉清

(中国地质大学(北京)信息工程学院,北京 100083)

0 引 言

以信息化、数字化为代表的新一轮科技革命与产业变革已经对社会生活的各方面产生了颠覆式的影响,改变了人们的生活方法,改变了传统的产业布局形态,也改变了科技人才的培养目标。2017 年教育部开始推进“新工科”的研究与实践[1],聚焦“复杂工程问题”,培养学生具备解决“复杂工程问题”的能力,积极主动培养适应新一轮科技革命与产业变革所需的新型工科人才,满足新的工科时代各产业的新需求和新挑战。

在“新工科”背景下,计算机专业人才的培养也需要具备“复杂工程问题”解决能力,面临着诸多新的变化,其本质可以概述为从注重让更多人“会编程”到让更多人“编好程”的根本性转变。经过几十年计算机教育的普及和发展,以及计算机软硬件技术的进步,“会编程”在今天已经不是问题,特别是以Python 为代表的高级编程语言易学、易用,一个不具有计算机基础的学生,可以在短短数天内,经过一定强度的学习和训练,就可以学会使用。但如何“编好程”,实现对分布式环境中计算机软硬件资源的高效利用,实现对高吞吐量数据的快速处理,是今天计算机专业人才面临着的突出问题。这就需要计算机专业人才具备良好的系统思维能力,从系统观的角度进行系统规划、程序编写和功能优化。

1 计算机系统思维

计算机系统思维源自于计算机软硬件的复杂性、用户需求的多样性、应用环境的动态性、系统运行的长期性等多方面因素。计算思维[2]是计算机科学的本质思维模式,系统思维则推动了计算机科学向纵深发展。

一般意义上,系统思维是以系统观为特征的认识世界、构建系统、优化性能、持续改进的基本思维,其注重从全局的角度进行计算机系统的规划,实现有效利用软硬件资源;从发展的角度进行计算机系统的设计,实现合理进行功能的细分;从生命周期的角度进行计算机系统的优化,实现快速进行计算机系统的升级。

系统思维是计算机专业人才的核心竞争力之一[3],是具备“复杂工程问题”能力的关键,也是区分“会编程”和“编好程”的关键标准之一。只有具备了计算机系统思维,才能够适应“新工科”背景下各行业、各领域对计算机专业人才的发展需求,实现对“复杂工程问题”的解决。

2 系统思维培养现状与需求分析

2.1 现状分析

在很长一段时间内,国内多数高校将计算机专业人才培养事实界定为对程序员的培养,专业知识学习过程中更多的是通过对编程能力的训练,仅仅达到“会编程”的目标。相当数量的学生,也仅以学过几种编程语言为满足。只有少数高校具备条件和能力,进一步加强对学生的系统思维能力的培养,达到“编好程”的目标。

随着计算机硬件的不断提升,软件的不断优化,特别是计算机高级语言的快速发展,“会编程”已经不是问题。一个非计算机专业的学生,只要具备一定的数学、英语等方面的知识储备,可以在1~2 周的时间内通过集训或自学等形式,进而达到“会编程”的目的。

计算机专业是最受学生欢迎的专业之一,也是就业率最高的专业之一。由于“会编程”的门槛已经很低,部分非计算机专业学生在毕业之际,放弃了本专业,通过短期的培训,就可以找到计算机领域的工作。工资待遇甚至比其原专业还要高。这个现象的产生,一方面源自于今天社会各行业对计算机人才的强烈需求,另一方面,由于计算机专业人才的就业率较高,很多计算机专业人才的培养止步于“会编程”的阶段,没有动力或没有能力进行“编好程”阶段的人才的培养。

2.2 需求分析

随着大数据、人工智能等前沿科技的发展,推动着新一轮科技革命与产业变革的不断进步,也迫切需要更多具有计算机系统思维的人才,不再停留在“会编程”的初级阶段,而是上升到“编好程”的高级阶段,需要具备“复杂工程问题”的解决能力。

在现阶段,简单地进行具体功能的实现往往很容易做到,如实现网页搜索,通过早期的编程语言进行实现,需要明白其中的具体实现逻辑,编写很多行代码。然而,今天可以很容易找到相关的软件包或利用已有工具,通过简单的几个调用语句就可以完成,编程人员甚至不需要了解其中的实现细节。

随着信息技术的不断发展和信息产品的不断普及,这种仅关注功能的实现,越来越不能够满足市场的需要。在用户规模不断增大、系统访问持续增加的情况下,系统的性能成为制约系统成功的关键因素。系统性能的改善需要编程人员具有系统思维能力,了解系统的全局架构、掌握功能实现的底层细节、明白制约性能的关键因素。也就是只有做到“编好程”,才能实现高质量工程问题的解决、高水平代码能力的应用、高效率软硬件资源的利用,才能够对该“复杂工程问题”进行系统化解决。

一般意义上,通过不同的计算机软硬件技术实现同一个复杂功能,其会存在性能上的差异。这种差异根据功能的复杂程度的不同、程序员对具体技术掌握的不同,其性能会很大。如高维矩阵乘法,一个“编好程”的程序员可以在“会编程”的程序员的基础上,通过计算机系统思维,根据计算机系统结构,综合利用软硬件资源,实现计算性能提升高达六万倍[4]。

可见,在“新工科”背景下,随着新一轮科技革命与产业变革,越来越多的“复杂工程问题”需要得到解决,这就要求培养更多具备“编好程”能力的计算机人才。

3 计算机专业新型工科人才系统思维能力培养的具体措施

计算机系统思维的培养要从系统观的角度入手,对教学环节各主体进行再优化,从培养目标、教学内容、教学方法、教学手段等方面进行再调整。要以培养高质量计算机人才为最终目标,真正做到“编好程”;要以“新工科”为立足点,以解决复杂工业实际需求为培养源动力;要以课程建设为抓手,在课程的教学过程中,让学生认识到系统思维的重要性,理解系统思维的实现方法,明白系统思维的内在逻辑。

3.1 加强计算机经典思想的启蒙,以计算机科学导论课程为抓手

在计算机人才的培养初期,应通过通俗易懂的方式讲授计算机科学领域经典的思想,在更宏观的层面上进行计算机知识的学习,也可以使学生有机会在后续的具体知识学习过程中,进一步理解和强化相关思想,提升对计算机科学认识的高度和层次。

在通常情况下,计算机科学导论作为基础类课程为所有专业本科生开设,主要介绍计算机科学的基本概念、思想和方法,其目的是让学生了解计算机学科、明白计算机的学科范围,理解计算机可以解决的问题边界,其重要性不言而喻。然而,目前国内大多数高校,在开设计算机科学导论课程的过程中,其所教授的内容只是对计算机专业部分课程的简化和叠加,讲授计算机基本概念、数据结构、计算机组成、软件工程、操作系统、信息安全等内容。这些内容只是简单的罗列,面向全体学生进行授课,其思想性、趣味性不强,很难引起学生的共鸣和兴趣。

作为介绍计算机科学的入门课程计算机科学导论,其在讲课内容的选择上可以聚焦于计算机的经典思想,如以计算思维、系统思维、算法思维、网络思维、数据思维等为章节进行讲授,针对各类计算机思维,从问题的提出、思想的形成与发展、思想的核心与要点等角度进行重点讲授。同时,结合具体应用、具体计算机软硬件产品、具体思想的提出者及其提出过程等案例,使学生认识到这些思想的形成是源自于计算机发展过程中的具体问题,当今计算机的应用也面临着诸多问题,这些问题的解决也将推动计算机的发展。通过这些改变,可以增强课程学习的思想性、趣味性、历史性和现实性,也可以为对计算机感兴趣的学生明确其学习好计算机后续课程的着力点和落脚点,解决计算机发展过程中的具体问题,推动计算机科学的应用与发展。文献[5]系统地总结了计算逻辑思维、算法思维、网络思维、计算系统思维4 个方面的思维,通过通俗的案例进行讲授,可以很好地告诉学生什么是计算机科学要解决的问题及其解决的基本思想,实现从“方法”到“思想”的提升。诸如此类的教材还有很多,可以根据实际情况进行选择,将计算机科学导论这门入门课真正作为打开计算机科学的金钥匙。

3.2 强化计算机硬件知识的学习,以计算机组成原理等课程为抓手

计算机系统是由软件和硬件两部分构成。硬件是基础,为软件提供支撑和平台;软件是灵魂,实现处理逻辑在更高层面上的提升,最大程度的发挥硬件的性能。软件和硬件两者之间相互促进、有机统一,最终实现计算机系统功能和性能的最大化。

计算机人才也需要同时具备软件和硬件两个方面的素质。由于多方面因素的作用,导致了目前计算机人才的培养主要集中在软件方面,相关的课程体系也比较全,涉及计算机硬件的课程偏少。这个现象在过去的一段时间内,在处于“会编程”的阶段时,具有一定的历史合理性,但在今天的“新工科”背景下,需要更多“编好程”的计算机人才,这就需要弥补计算机硬件的课程,让学生懂得软件系统是所运行的平台,以及如何更好地使用硬件资源,实现系统性能的提升。

在计算机硬件课程开设方面,可以通过提升硬件类课程在人才培养方案中的比例,细化不同层次的硬件课程的开设、强化规模不等的硬件实验、强化工厂生产实践环节、强化中到大规模多人协作工程项目等多种不同方式,以数字逻辑、汇编语言、计算机组成原理等课程的学习和实训为具体抓手,实现对理论知识和硬件实践的有机统一,通过强化硬件知识的认知和体会,进而更全面地培养计算机人才的系统思维和能力。

3.3 开展并行与分布式系统知识的教学,以分布式系统等课程为抓手

分布式是大数据时代计算机系统运行和部署的常态,很难想象一个大规模应用的计算机系统不是分布式的。这就要求教师对分布式环境下的计算机系统特征有着充分的认知。在目前的计算机人才培养课程体系中,也只有部分学校在计算机专业的研究生阶段开始了相关课程。

为了促进计算机人才的系统思维和能力的培养,提升分布式场景下的计算机系统的性能,在计算机人才本科的培养过程中和讲授具体知识点的过程中,通过分组和多人协作,针对具体场景的不同要求,针对性的开发具有特定特征的操作系统等实践活动,通过理论和实践环节相结合,强化操作系统等课程的学习。同时,结合大数据时期应用场景对计算机系统的复杂性、规模性、实时性等问题,以问题为出发点,进一步地增设分布式系统、分布式数据库等课程,在问题中学习和掌握分布式相关理论和知识,提升自身的核心竞争力。

3.4 丰富教学手段和教学方法,以实践、实习类课程为抓手

系统思维的理论性强、复杂性大、抽象性高,在完善现有理论知识学习的前提下,也需要通过多种不同教学手段,采用多样教学方法,让学生可以理解的清楚、实践的明白。在教学方法方面,可以引入实际分布式、大规模系统开发案例,并结合具体知识点,进一步提高学生对具体问题的理解。在教学实践方面,应该加强大型实验环节的训练,在团队合作、多人协调的情况下,开展课程实践活动,增强对系统思维的认知。如,在操作系统的教学过程中,可以分组完成对操作系统原型各个部分的开发实践,通过各组间的相互协调进行原型的构建。在基本功能实现的情况下,进行系统性能的调优,开展压力测试,拓展分布式功能等,实现从简单功能到复杂功能的逐步完善。在此过程中,实现对学习系统思维能力的逐步培养。

鼓励学生在学有余力的情况下,积极参加算法类和系统应用开发类的学科竞赛,如ACMICPC 国际大学生程序竞赛和中国大学生计算机设计大赛等,有助于提高学生的系统思维和综合分析应用能力。在条件允许的情况下,还可以让学生利用假期时间,参加到企业实际项目的开发过程中,进行系统思维的培养。在教学手段方面,可以引入慕课、引进优质外部资源,实现对教学质量的改进。

4 结 语

“新工科”建设聚焦“复杂工程问题”,计算机人才需要具备“复杂工程问题”的解决能力,本质上是实现了从注重数量的“会编程”阶段提升到注重质量的“编好程”阶段。计算机系统思维能力的培养是其中的关键一环,计算机人才需要基本系统思维能力,这是其核心竞争力之一。我们需要以课程改革为抓手,通过完善课程体系、改变教学方式,实现对计算机专业人才的系统思维能力的培养。

在下一阶段,我们将进一步细化培养各环节,整合各方面优势资源,更好地实现对计算机系统思维能力的培养,实现对“复杂工程问题”的系统解决。

猜你喜欢
计算机系统计算机科学计算机专业
新工科背景下计算机专业创新创业人才培养探究
高职计算机专业教学中融入课程思政的实践路径
中职计算机专业产教融合混合式教学研究与实践
计算机专业中外合作办学中引进课程教学改革研究
美国《CSTA计算机科学教师标准》评介
控制
试论计算机科学与技术的现代化运用
新英镑
IBM推出可与人类“辩论”的计算机系统
计算机组成与结构课程教学的探讨与实践