计算和计算机基础 Computing and Computer Fundamentals(CCF)
现代数据科学高度依赖计算技术和计算机设备:收集和存储数据、分析数据、展现分析结论、以及分析结果落实到应用系统中。因此,数据科学家应当在一个较高层次理解操作系统结构、文件系统、编译原理、网络,记忆与之相关的安全问题。
注1:本知识域中的很多内容取自于CS2013。
注2:本知识域的大多数能力旨在表明对概念的高层次理解,而不是深入的技术理解。
范围 | 能力 |
---|---|
|
|
子领域 | |
CCF-计算机基础架构-T1,T2 CCF-存储系统基本原理-T1 CCF-操作系统基础-T1,T2 CCF-文件系统-T1,T2 CCF-网络-T1,T2 CCF-互联网和互联网编程-T1,T2 CCF-编译器和解释器-T1 |
CCF-计算机基础架构
数据科学家需要了解数据的数字化表示方式及其对精度的影响,以及不同类型的处理器和配置对计算效率的影响程度,并从中受益。
知识
T1:
- “功率墙”。
- 比特、字节和字。
- 数字类型数据的计算机表示。
- CUP和GPU。
T2:
- 非数字类型数据的计算机表示
- 多核和多处理器
- 冯诺依曼机的基本组成结构
- 并行计算架构(例如SIMD、MIMD)
技能
T1:
- 解释“功率墙”对提高处理器性能的影响,以及推动并行计算发展。
- 解释固定长度的数字表示法如何影响准确性和精确度。
- 描述CPU的作用,与专门用途的GPU进行比较和比对。
T2:
- 描述非数字数据的内部表示法,如字符、字符串和图像。
- 描述多核和多处理器系统之间的区别。
- 解释经典冯诺依曼机的架构及主要功能单元。
- 讨论超越经典冯诺依曼模型的并行处理概念。
品行
T1:
- 领会现代计算设备中数据表示和处理器速度的优势和限制。
CCF-存储系统基本原理
在数据科学家分析大量数据的情况下,他们需要了解这些数据在处理过程和中式如何存储和移动的。这有助于了解完成大量分析所需耗费的时间,以及应当如何选择合适的硬件设备和配置来实现这些工作。
知识
- 存储系统及其技术。
- 寄存器、缓存、RAM。
- 虚拟内存。
技能
- 识别主要的内存技术类型(例如SRAM、DRAM、Flash、磁盘)以及他们的成本和性能。
- 描述如何使用如同内存来有效减少读写延迟。
品行
- 理解昂贵快速和廉价慢速存储器之间的权衡选择。
CCF-操作系统基础
鉴于数据科学分析和应用中对安全和隐私的重要考虑,数据科学家将从对操作系统及其易受攻击方式的高水平理解中受益。
知识
T1:
- 操作系统的作用和目的。
- 安全威胁的类型和缓解方法。
T2:
- 网络操作系统、客户端服务器操作系统和分布式操作系统。
- 可靠性和可用性。
技能
T1:
- 描述现代操作系统的目标和功能。
- 列出操作系统的潜在威胁(例如软件漏洞、权限问题、恶意软件)以及为防范这些威胁而设计的安全功能类型。
T2:
- 讨论网络操作系统、客户端服务器操作系统和分布式操作系统以及与单用户操作系统的区别。
- 讨论可靠性和可用性的重要性,描述确保两者的容错方法
品行
T1:
- 领会操作系统在提供人与系统资源之间以及系统资源之间接口方面的重要作用,同时了解操作系统容易受到攻击的方式以及需要注意的事项。
CCF-文件系统
文件系统提供了组织数据和程序的物理机制。数据科学家应该知道单个文件是如何存储的,它们之间的关系是如何组织的,以及如何为安全和隐私的目的保护它们。数据科学家应该知道如何为大容量的数据规模选择合适的文件系统(例如,对于海量数据而言,基于单个服务器上的本地文件系统不是一个好选择)。
知识
T1:
- 文件:数据、元数据、操作、组织。
- 目录:内容和结构。
- 文件保护。
T2:
- 文件:顺序、非顺序。
技能
T1:
- 比较不同文件组织方法,认识每种方法的优点和缺点。
- 描述文件保护的级别和设置机制。
品行
T1:
- 理解良好的文件组织的重要性,以及保护文件不被不当访问的重要性。
CCF-网络
数据和应用程序是通过计算机网络共享的。了解它们的工作原理有助于了解数据和应用程序容易被引入错误、信息丢失或被攻击的方式,以及保护数据和应用程序免受这些影响的方式。此外,网络知识对于理解云系统、大数据集群和性能非常重要。
知识
T1:
- 网络的组成部分:主机、路由器、交换机、网络业务提供商、无线接入点、防火墙。
- 局域网:局域网拓扑结构(例如:总线、环形)。
- 互联网的组织:互联网服务供应商(ISPs)、内容提供商等。
T2:
- 电路交换与分组交换网络。
- 分层网络结构。
- 命名和地址方案(DNS、IP地址、统一资源标志符等)。
- 基本协议:TCP、IP
- 作为应用层的协议HTTP/HTTPS
技能
T1:
- 列出计算机网络的主要组成部分。
- 认识到局域网可以被组成各种拓扑结构。
- 阐明互联网的组织结构(在应用层面)。
T2:
- 解释电路交换和分组交换之间的区别。
- 描述典型网络结构的分层结构。
- 列出网络中名称和地址的区别和关系。
- 描述诸如TCP和IP等基本协议是如何工作的。
- 描述应用层协议,如HTTPS是如何工作的。
品行
T1:
- 理解在网络上传输信息的复杂性,以及缓解可能出现问题的机制。
CCF-互联网和互联网编程
数据经常是通过互联网应用程序获得的,数据科学家应该能够编写和使用互联网应用程序,并了解这样做的潜在隐患。
知识
T1:
- 互联网和万维网之间的关系。
- 互联网编程语言(如HTML5、JavazScript、PHP、CSS)。
- 对互联网应用程序漏洞和安全攻击的认识(例如SQL注入、分布式拒绝服务攻击)
T2:
- 安全攻击的检测和缓解。
技能
T1:
- 描述互联网和万维网之间的关系。
- 设计和实现一个简单的互联网应用程序。
- 描述常见的互联网应用程序漏洞和安全攻击。
T2:
- 意识并应用保护安全攻击的方法。
品行
T1:
- 理解编写和使用互联网应用程序的潜在风险,以便尽可能安全的完成这两项工作。
CCF-编译器和解释器
无论是为了收集数据,进行分析,还是基于分析的现场应用,数据科学家都会使用和编写软件。理解编译器和解释器的目的和区别,对选择编程语言和工具很有帮助。
知识
- 将(其他)程序作为输入的程序:解释器、编译器、类型检查器。
- 文档生成器。
- 解释与编译成本地代码与编译成可移植的中间表示法。
- 语法解析与语义评估。
- 属于解释与编译类别的语言的例子。
技能
- 解释处理其他程序的程序如何将其他程序作为其输入数据处理。
- 讨论解释性代码与编译型代码的优点和缺点。
- 区分语法解析与语义评估
品行
- 理解解释代码与编译代码在速度上的权衡。
- 理解编译到本地代码与可移植的中间表示法之间的灵活性权衡。
- 了解解释器在代码开发中的作用。