第02章 计算与计算科学 — 信息技术导论

北京大学苏清元《信息技术导论》课程第2章 原文件:第02章 计算与计算科学.ppt(1.53MB,PowerPoint 97-2003二进制格式) 文本提取方式:LibreOffice 转 PDF + pdftotext 全文提取

章节概览

本章分为三大模块:

  1. 计算的本质 — 计算的定义、图灵机模型、计算学科的定义与研究领域
  2. 人工智能 — AI的定义、图灵测试、机器智能的争议
  3. 计算学科的专业方向与知识领域 — CS/CE/SE/IT 四大专业方向的知识体系

一、计算的本质

2.1.1 探索计算之源

计算的定义:计算就是符号串的变换。从一个已知的符号串开始,按照一定的规则,一步一步地改变符号串,经过有限步骤,最后得到一个满足预先规定的符号串,这种变换过程就是计算。

算法的定义:算法是求解某类问题的通用法则或方法,即符号串变换的规则。

广义计算观:

  • 广义上讲,一个函数变化(把 x 变成 f(x))就是一个计算
  • 如果把一切都看作信息,那么计算就是对信息的变换
  • 自然界充满了计算:小球落地弹起,可以看作大地对小球信息(位置、速度、形状)的一次变换
  • 计算就是某个系统完成了一次从输入到输出的变换

2.1.2 计算模型与图灵机

图灵机:一种抽象计算模型,用来精确定义可计算函数。由三部分组成:

  • 一个控制器(有限状态自动机)
  • 一条可以无限延伸的带子(存储介质,被划分为方格)
  • 一个在带子上左右移动的读写头(读写方格内容)

阿兰·图灵(Alan Turing)的贡献:

  • 16岁:开始研究爱因斯坦相对论
  • 24岁:提出图灵机理论(奠定计算理论基础)
  • 31岁:参与破译德国密码机器 Enigma
  • 33岁:设想仿真系统
  • 35岁:提出自动程序设计概念
  • 38岁:设计”图灵测试”

图灵最大的贡献就是把算法这样一个基本的、深刻的概念用他的图灵机模型讲清楚了。正是因为图灵奠定的理论基础,人们才有可能发明计算机。因此人们称图灵为:计算机理论之父。

ACM 图灵奖:美国计算机协会(ACM)从 1966 年起设立的最高荣誉奖。

2.1.3 计算的困惑——如何认识计算科学

学科认知争论的背景:

  • 1984年7月,美国计算机科学与工程博士单位评审部在犹他州召开会议讨论计算认知问题
  • 促使 ACM 与 IEEE/CS 于 1985 年春联手组成任务组
  • 经过近4年工作,提交了里程碑式的报告:“计算作为一门学科”(Computing as a Discipline)
  • 报告论证了计算作为一门学科的事实,回答了长期争论的问题
  • 将计算机科学、计算机工程、计算机信息学等专业及其研究范畴统称为计算学科

计算学科的定义:

计算学科是对描述和变换信息的算法过程进行的系统研究,包括理论、分析、设计、效率、实现和应用等。

计算学科的研究包括:

  • 从算法与可计算性的理论研究
  • 到根据可计算硬件和软件的实际实现问题的研究
  • 涵盖所有科目的理论研究、实验方法和工程设计

2.1.4 计算机科学的研究领域(七个方面)

  1. 计算机系统结构的研究
  2. 程序设计科学与方法论的研究
  3. 软件工程基础理论的研究
  4. 人工智能与知识处理的研究
  5. 网络、数据库及各种计算机辅助技术的研究
  6. 理论计算机科学的研究
  7. 计算机科学史的研究

二、人工智能

2.2.1 无”心”的机器 — 计算机有智能吗?

  • 引出问题:深蓝(Deep Blue)与卡斯帕罗夫对弈,机器是否具备智能?
  • 这是一个哲学与技术交织的核心问题

2.2.2 人工智能 ——“计算机像海参一样愚蠢”

1. 什么是人工智能

人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。

2. 图灵测验(Turing Test)

图灵提出的思想实验:

  • 一个人在不知情的条件下,通过特殊方式和一台机器进行问答
  • 如果在相当长时间内,他分辨不出交流的对象是人还是机器
  • 那么这台机器就可以认为是能思维的

这就是著名的”图灵测试”——判断机器是否具备智能的经典标准。


三、计算学科的专业方向与知识领域

2.3.1 背景

  • 信息技术迅速扩展到各个领域
  • 社会和人类对信息的依赖迅速增长
  • 计算机技术已成为信息社会的重要基础设施
  • 计算机教育和培训成为高等教育的重要环节

2.3.2 计算机专业培养规格分类

(PPT本节为图示,文字内容少,核心内容在 2.3.3 节展开)

2.3.3 计算学科的领域及知识空间

四大专业方向(计算机科学与技术专业之下):

  1. 计算机科学(Computer Science, CS)
  2. 计算机工程(Computer Engineering, CE)
  3. 软件工程(Software Engineering, SE)
  4. 信息技术(Information Technology, IT)

CC2005 报告:

  • IEEE/CS 和 ACM 任务组于 2001-2005 年分别提交了 5 个分支学科的教程及总报告
  • 5个分支:CS(计算机科学)、IS(信息系统)、SE(软件工程)、CE(计算机工程)、IT(信息技术)
  • 给出了各分支学科的知识体以及核心课程
  • 为各专业教学计划设计奠定基础

中国的情况:

  • 教育部高等学校计算机科学与技术教学指导委员会(“计算机教指委”)
  • 《高等学校计算机科学与技术发展战略研究报告暨专业规范(试行)》(2006年9月)
  • 采纳了 CC2005 报告中的四个分支学科(CS/CE/SE/IT),以专业方向形式进行规范

学科专业名称的演变史:

时间事件
1956年中国开设”计算装置与仪器”专业
1962年美国普渡大学开设最早的计算机科学学位课程
1968年秋NATO在联邦德国召开会议,提出”软件工程”概念(应对软件危机)
20世纪70年代计算机工程从电子工程学科中脱离,成为独立二级学科
20世纪80年代英国和澳大利亚最早开设软件工程学位课程
20世纪90年代信息系统和信息技术学位课程兴起(美国等西方国家)

即使在美国,5个分支学科同时在一所大学开设的情况也不多,更多高校仍以传统的”计算机科学”为主;在中国,则是以”计算机科学与技术”为主。

2.3.4 计算机科学(CS)学科与知识领域

学科定位:

  • 涉及范围很宽:计算的理论、算法和实现,以及机器人技术、计算机视觉、智能系统、生物信息学等
  • 是计算各学科的基础
  • 培养学生更关注计算的理论基础和算法,从事软件开发及其相关的理论研究

CS 知识领域(14个):

  1. 离散结构(Discrete Structures)
  2. 程序设计基础(Programming Fundamentals)
  3. 算法和复杂性(Algorithms & Complexity)
  4. 程序设计语言(Programming Languages)
  5. 计算机结构与组织(Architecture & Organization)
  6. 操作系统(Operating Systems)
  7. 人-机交互(Human-Computer Interaction)
  8. 图形学与可视计算(Graphics & Visual Computing)
  9. 智能系统(Intelligent Systems)
  10. 信息管理(Information Management)
  11. 网络计算(Network Computing)
  12. 软件工程(Software Engineering)
  13. 数值计算科学(Computational Science)
  14. 社会和职业问题(Social & Professional Issues)

2.3.5 计算机工程(CE)学科与知识领域

学科定位:

  • 对现代计算系统和由计算机控制的有关设备上的软件与硬件的设计、构造、实施和维护进行研究
  • 基础包含计算、数学、科学及工程的理论与原理
  • 培养学生更关注设计并实施集软件和硬件设备为一体的系统(如嵌入式系统)

CCCE 学科报告(2004年6月):CE 核心知识领域(18个)

  1. 计算机体系结构和组织
  2. 计算机系统工程
  3. 电路和信号
  4. 数据库系统
  5. 数字逻辑
  6. 数字信号处理
  7. 电子学
  8. 嵌入式系统
  9. 算法和复杂性
  10. 人机交互
  11. 计算机网络
  12. 操作系统
  13. 程序设计基础
  14. 社会和职业问题
  15. 软件工程
  16. VLSI 设计与构造
  17. 离散结构
  18. 概率和统计

2.3.6 软件工程(SE)学科与知识领域

CCSE2004 对软件工程的新定义:

以系统的、学科的、定量的途径,把工程应用于软件的开发、运营和维护;同时,开展对上述过程中各种方法和途径的研究。

  • 明确提出了”把工程应用于软件”
  • 体现了软件工程领域内两类重要的研究和应用方向:工程学和方法学
  • 培养学生更关注以工程规范进行的大规模软件系统开发与维护的原则,并尽可能避免软件系统潜在的风险

SE 教育知识体系(CCSE)知识领域(11个):

  1. 计算的本质
  2. 数学与工程基础
  3. 职业训练
  4. 软件建模与分析
  5. 软件设计
  6. 软件验证
  7. 软件进化
  8. 软件过程
  9. 软件质量
  10. 软件管理
  11. 系统与应用专题

2.3.7 信息技术(IT)学科的知识领域

信息系统学科:研究如何将信息技术的方法与企业生产和商业流通结合起来,以满足这些行业需求。

  • 培养学生更关注信息资源的获取、部署、管理及使用
  • 能分析信息的需求和相关的商业过程
  • 能详细描述并设计与目标相一致的系统

信息技术学科:

  • 侧重在一定组织及社会环境下,通过选择、创造、应用、集成和管理的计算技术来满足用户的需求
  • 与信息系统相比,信息技术更关注于”技术”层面
  • 信息系统则重于”信息”层面
  • 培养学生更关注基于计算机的新产品及其正常运行和维护,使用相关技术计划、实施和配置计算机系统

IT 学科的知识领域(12个):

  1. 信息技术基础
  2. 人机交互
  3. 程序设计基础
  4. 信息保障与安全
  5. 信息管理
  6. 集成程序设计技术
  7. 计算机网络
  8. 平台技术
  9. 系统管理与维护
  10. 系统集成和体系结构
  11. 信息技术与社会环境
  12. 系统和技术

关键洞见

  1. 计算的本质是信息变换:从符号串变换到广义信息变换,计算的概念不断扩展,自然界本身也可以被理解为计算过程
  2. 图灵的核心地位:图灵机定义了可计算性的边界,图灵测试定义了智能的判断标准,两者共同构成了计算理论的基石
  3. 学科的分化与统一:从单一的”计算机科学”分化出 CS/CE/SE/IT/IS 五大分支,反映了计算学科的成熟与广度;同时它们共享基础理论,又各有侧重
  4. 软件工程的工程属性:CCSE2004 明确定义了软件工程是”把工程应用于软件”,强调系统性、学科性、定量性三大特征
  5. 学科演进的驱动力:问题驱动(软件危机催生软件工程)、技术驱动(网络普及催生信息技术)、社会需求驱动(企业信息化催生信息系统)

关联笔记