正确答案
计算机科学包括离散结构、程序设计基础、算法与复杂性、体系结构、操作系统、网络计算。程序设计语言、人机交互、图形学和可视化计算、智能系统、信息系统、软件工程、社会和职业问题、科学计算等主领域。对各个主领域的内容简述如下。
离散结构包括集合论、数理逻辑、代数系统、图论和组合数学等重要内容。
程序设计基础领域的知识由程序设计实践中所需要的基本技能和概念组成,该领域的知识单元包括了基本程序设计概念、基本数据结构、算法程序等。
算法是计算机科学和软件工程的基础。现实世界中任何软件系统的性能仅依赖于两个方面:所选择的算法、以及在各不同层次实现的效率。算法研究能够深刻理解问题的本质和可能的求解技术,而不依赖于具体的程序设计语言、程序设计模式、计算机硬件、或其他任何与实现有关的内容。
计算机在计算技术中处于核心地位。作为计算专业的学生,都应该对计算机系统的功能部件、功能特点、性能和相互作用有一定的理解,而不应该只将计算机看作是一个执行程序的黑盒子。
操作系统是对计算机硬件行为的抽象,程序员用它来对硬件进行控制。操作系统还负责管理计算机用户间的共享资源(如文件等)。
网络计算包括的子领域有:计算机通信网络的概念和协议、多媒体系统、Web标准和技术、网络安全、移动计算、以及分布式系统等。
程序设计语言是程序员与计算机交流的主要工具。一个程序员不仅要掌握一种程序设计语言,更要了解各种程序设计语言的不同风格。在工作中,程序员会将使用不同风格的语言,也会遇到许多不同的语言。为了迅速掌握一门新语言,程序员必须理解程序设计语言的语义以及在不同的程序设计范式之间设计上的折中。为了理解程序设计语言实用的一面,还要求具有程序设计语言翻译和诸如存储分配等方面的基础知识。
人机交互的重点,在于理解作为交互式对象的人的行为,知道怎样使用以人为中心的方法来开发和评价交互式软件系统。
图形学和可视化计算领域可以划分成计算机图形学、可视化、虚拟现实、计算机视觉等4个相互关联的领域。其中,计算机图形学是一门以计算机产生,并在其上展示的图像进行信息交流的艺术和科学;计算机图形学的目标是对人的视觉中心及其他认知中心有进一步深入的了解。可视化领域是为了确定并展示存在于(如计算和医学科学)和比较抽象的数据集中基本的相互关联的结构与关系;展示的主要目标应当是发掘在数据集中替在的信息,从而有助于用户对它们的理解。虚拟现实是要让户能够经历由计算机图形学以及可能的其他感知通道产生的三维环境,提供一种能增进用户与计算机创建的“世界”交互作用的环境。计算机视觉的目标是推导从一幅或多幅二维图像所表示的出三维图像世界的性质和结构。
智能系统依赖于一整套关于问题求解、搜索算法以及机器学习技术的专门知识表示机制和推理机制。
信息系统包括信息获取、信息数字化、信息表示、组织、转化和信息的表现;有效地访问和更新存储信息的算法、数据建模和数据抽象以及物理文件的存储技术、共享数据的信息安全、隐私性、完备性和保护。
软件工程是一门关于如何有效构建满足用户需求的软件系统所需的理论、知识和实践的学科。软件工程适应各种软件开发,它包含需求分析和规格、设计、构建、测试、运行和维护等软件系统生存周期的所有阶段。软件工程使用工程化的方法、过程、技术和度量标准。
通过学习社会和职业问题主领域的知识,学生需要了解计算学科本身基本的文化、社会、法律和道德等问题,知道这个学科的过去、现在和未来,同时也要了解在该学科的发展过程中起着重要作用的哲学问题、技术问题和美学价值观。学生应该有能力提出关于社会对信息技术的影响问题,以及对这些问题的可能答案进行评价的能力。最后,学生需要认识到软/硬件销售商和用户的权利,还必须遵守相关的职业道德。
科学计算领域提供了许多有价值的思想和技术,包括数值表示的精度、误差分析、数值技术、建模和仿真。