计算机

在ACM最新制定的计算机科学专业课程体系标准 Computer Science Curricula 2013(CS2013)中(注:CS2013已由ACM中国教育委员会与教育部计算机类专业教学指导委员会翻译完成,本文内容亦来源于此,在此表示感谢),对计算机专业毕业生应该具备的核心能力进行了归纳和总结,其内容如下:

计算机科学专业的毕业生应掌握计算机科学知识体中各领域的基本知识(注:可参见ACM CS2013),尤其是列入核心知识点的那些知识领域,具备这些领域要求的基本能力。他们还应具备一些在知识体中没有明确列出的基本能力,因为该领域的专业人士通常会表现出一些独特的思维和解决问题的风格特征,这些特征通常是从具体的学习和工作经历中获得。下面描述的这些特征或者称为核心能力,我们认为计算机科学专业的毕业生们应该至少达到某种初级水平。这些特征可以使他们在计算领域内获得成功,并有更好的职业发展。当然,其中的一些特征和技巧也适用于其他领域,但我们还是把它们包括在这里,因为在计算机科学专业计划中,应该明确地鼓励学生们努力发展这些技能和特征。以下这个列表基于CC2001和CS2008中出现过的类似列表,但新版列表也包含了一些实质性的修改,这些实质性的修改是在CS2013指导委员会进行调研的结果下做出的。

在一个广义层面上,计算机专业的毕业生应具有以下特征(核心能力):

对计算机科学在技术层面上的理解

毕业生应该对计算机科学有所掌握,具体体现在掌握知识体中的核心部分。

熟悉通用的主题和原则

毕业生需要对一些反复出现的知识点有所理解,如抽象化、复杂性、渐进式改变等,也要对一些通用原则有所掌握,如共享资源、安全性、并发性等。毕业生应该认识到,尽管这些知识点和原则是在介绍某具体知识领域时引入的,但它们在计算机科学领域有着广泛的应用,并不限于这些具体的知识领域。

对理论与实践之间的相互作用有所理解

计算机科学的一个基本特点就是要理解理论与实践的相互作用以及它们之间基本的关联性。计算机科学专业的毕业生需要了解理论与实践是如何相互作用的。

系统分层观点

计算机科学的毕业生需要在多种细节程度、多个抽象层面上思考问题。这种思考方式能够超脱于各部件实现细节之上,达到对计算机系统整体结构的理解,并理解其组建的过程及分析的过程。他们还需要了解一个计算机系统会在怎样的环境中运行,会怎样与人类用户、物理世界进行交互。

解决问题的能力

毕业生要了解如何运用自己学到的知识来解决实际问题,而不仅仅是编写代码或搬动比特位。他们应该能够对一个系统的功能、实用性、性能等方面做出定量和定性的评估,并能设计和改善此系统。他们应该认识到,对一个给定的问题可能有多种解决方案,做出合理的选择并不是一个纯粹的技术问题,因为这些解决方案将对人们的生活产生真正的影响。毕业生也应该能够把自己的解决方案向别人做清晰的表述,解释一个解决方案为什么能解决给定的问题、是怎样解决了这个问题以及是在什么假设下解决这个问题的。

项目经验

为确保毕业生能够成功地应用他们所学到的知识,所有的计算机科学专业毕业生都应该参与过至少一个重要的项目。在大多数的情况下,这个项目可以是一个软件开发项目,但在特殊情况下,其他方面的项目也是适宜的。这些项目应以激励学生发挥综合性能力为主,要求学生对潜在的解决方案进行评估,其规模应大于一般课程下的项目规模。作为项目经验的一部分,学生应该抓住机会开发和训练人际交往的沟通能力。

致力于终身学习

毕业生应该认识到,计算机领域的进步速度可以用迅猛来形容,毕业生必须拥有一个坚实的基础,使得他们能够而且乐于在领域进步时跟上步伐,保持相关的技能。编程语言和技术平台会随时间而改变,因此,毕业生需要认识到在他们的整个职业生涯中,必须不断地学习和调整他们的技能。要获得这种能力,学生们应该接触多种编程语言、工具、范式和技术,并在受教育的全过程中,始终坚持对底层基本原理的学习。此外,与前辈们不同,当代毕业生们需要管理他们自己的职业发展和提升。在寻求职业发展时,毕业生需常常参与专业活动,如获取认证证书、参加管理培训及获得其它领域的知识等。

承担职业责任

毕业生应该认识到计算学科内含有的社会、法律、伦理和文化问题,他们也必须认识到,不同的国家有不同的社会、法律和道德标准。他们应该熟知,伦理问题、技术问题、审美价值的相互交织,在开发计算系统时将会起到非常重要的作用。从业人员必须了解他们个人和集体所承担的责任及系统故障可能导致的严重后果,但他们也必须了解自己的局限性,以及他们所使用工具的局限性。

沟通和组织能力

毕业生应有能力向各类听众解释清楚技术问题及其解决方案,这可能涉及面对面的、书面的及电子的通信方式。他们应准备好作为团队的一员进行有效的工作,并能够管理好自己的学习和发展过程,包括对时间的管理、重点任务的安排及进度的管理等。

对计算广泛适用性的认识

计算平台的范围很广,小可以到嵌入式微型传感器,大可以到高性能集群和分布式云计算中心。计算机应用几乎影响到现代生活的所有方面,毕业生应了解计算技术所有可能的应用方向。

对特定领域知识的鉴赏

毕业生应理解计算技术会与许多不同的领域接触,很多特定领域内问题的解决同时需要计算技能和特定领域知识。因此,毕业生在其职业生涯里,要能够与来自不同领域的专家进行交流,并向其学习。

注: ACM,即Association for Computing Machinery,美国计算机学会,创立于1947年,是全球历史最悠久和最大的计算机教育和科研机构。目前ACM提供的服务遍及100余国家,会员人数达80,000多位专业人士,涵盖工商业,学术界及政府单位,并有近1000个机构会员。