计算思维...

49
计算思维/“不插电”的计算机科学 西安交大-Google 中小学师资培训项目

Upload: others

Post on 09-Oct-2019

66 views

Category:

Documents


0 download

TRANSCRIPT

计算思维/“不插电”的计算机科学

西安交大-Google 中小学师资培训项目

计算思维

问题的提出什么是计算思维 计算思维可以做什么

4 计算思维的两个A 5.衡量计算思维中抽象 的标准 6.计算思维的主要应用 7.计算思维的影响 8.大胆展望 9.计算思维是什么,不 是什么 10.计算思维如何应用于 我国目前的教育

计算思维

Jeannette M. Wing (周以真)

Computational Thinking

(Jeannette M.Wing)曾任美国卡内基-梅隆大学(CMU)计算机科学系主任,现任美国国家基金会(NSF)计算机和信息科学与工程部(CISE)主任。于1983年在美国麻省理工学院(MIT)获得计算机

科学博士学位。主要研究方向为并行分布式系统的规范和认证以及编程语言。目前主要研究提升软件系统安全性技术的设计和评价方法。周教授是ACM

和IEEE会士。

问题的提出

• 什么是计算

– 数的加减乘除;

– 方程的求解、函数的微分积分等;

– 计算还包括定理的证明推导;

• 计算的本质是什么?

– 1930年代,由于哥德尔(K.Godel,1906-1978)、丘奇(A.Church,1903-1995)、图灵(A.M.TUI-ing,1912-1954)等数学家的工作,人们才弄清楚什么是计算的本质,以及什么是可计算的、什么是不可计算的等根本性问题。

– 计算就是依据一定的法则对有关符号串的变换过程

– 计算的本质就是递归

问题的提出

• 计算无处不在—计算概念的泛化

– 随着计算机日益广泛而深刻的运用,计算这个原本专门的数学概念已经泛化到了人类的整个知识领域,并上升为一种极为普适的科学概念和哲学概念,成为人们认识事物、研究问题的一种新视角、新观念和新方法。

• 计算无处不在—计算的世界观和方法论

– 计算的观念正在渗透到宇宙学、物理学、生物学乃至社会科学等诸多领域。

– 计算不但已经成为人们认识自然、生命、思维和社会的一种普遍方法,而且正在试图成为一种全新的世界观。

– 计算哲学、计算语言学、生命计算、计算化学、

计算社会学、计算人类学。

问题的提出

• 计算无处不在——计算新时代

– 最初发明计算机的动机,在于计算机运算能力的应用,如科学、工程等运算;

– 后来数据处理的发展也带来商业的应用;

– 近年多媒体及网络的普及,应用范围就延伸至教育、休闲以及国计民生各个方面。

什么是计算思维

• 计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。

• 计算方法和模型使我们敢于去处理那些原本无法由任何个人独自完成的问题求解和系统设计。

计算思维可以做什么

• 每个人的基本技能 – 计算和计算机对计算思维如同印刷出版对3R(Reading, wRiting, and

aRithmetic——3R)

– 计算机科学的成果正在成为我们解决问题的方法

• 问题的难易程度 寻找最优解

• 资源约束 环境

• 近似解 随机化

• 容错

计算思维就是通过约简、嵌入、转化和仿真等方法,

把一个看来困难的问题重新阐释成一个我们知道怎样解

决的问题。

计算思维可以做什么

• 是按照预防、保护及通过冗余、容错、纠错的方式从最坏情形恢复的一种思维。

– 避免死锁

• 是启发式推理的方法

– 规划

– 学习

– 调度

– 搜索

– 策略

– 权衡

• 抽象和分解

– 描述庞杂的任务或者设计巨大复杂的系统

– 隐藏系统内部的实现细节

– 适应将来的改变(预取、缓存)

计算思维可以做什么—举例

• 早晨上班前把当天需要的东西放进背包--------预置和缓存

• 路上丢了钱包沿走过的路寻找--------回推

• 什么时候停止租车自己买一辆--------在线算法

• 超市付帐时应当去排哪个队--------多服务器系统的性能模型

• 停电时电话仍然可用--------失败的无关性和设计的冗余性

• 完全自动的大众图灵测试如何区分计算机和人类--------人工智能和计算代理程序

计算思维的两个A

• Abstraction(抽象)

– 计算思维是抽象化的过程。(与数学类似)

– 计算思维同时在多个抽象层次上同时进行。

– 计算思维定义层次之间的关系。

• Automation(自动化)

– 计算思维的思考方式是:使抽象层次及其关系机械化。机械化的可行性是由精确和严格的符号和模型所保证。

– 在下面是一些“机器”(人或计算机,虚拟或实际的)。

衡量计算思维中抽象的标准

• 有效性

– 速度

– 空间

– 能力

• 正确性

– 做正确的事

– 做事(停机问题)

• 其他

– 简单和优美

– 有用性

– 可修改性

– 可维护性

– 花费

计算思维的关注点

• 关注于抽象和概念化的事物

– 复杂性:可计算性问题

– 算法:性能、近似值、随机化、优化

– 数据:数据结构

– 抽象机器:自动机、状态机

– 结构设计:分解、组合、模块化、分层抽象化

– 语言学:句法、语义、语法

– 推理:正确性、逻辑、类型、证明、排错

– 控制:递归、循环、条件、判断、并行、分布

– 通讯:同步、异步、广播、p2p、客户机、服务器、共享内存、消息传递

– 外界约束:容错、可靠性、动力

• 不关注于

– 计算机一般应用:word、excel、上网

– 如何编程

计算思维的影响:

---单学科中应用多种方法

• 生物学:

– 鸟枪算法 vs 基因测序

– 语言中的字符串 vs DNA序列

– 布尔网络 vs 生物网络

– 进程演算 vs 分子间相互作用

– 电路 vs 自动调节的细胞

– 状态图 vs 发育遗传学

计算思维的影响:机器学习

---一种方法应用于多学科

• 天文学:

– 探索星系:机器学习

– 超大量多维数据分析:KD-tree

• 医学:

– 药物研制

– 疾病诊断

– 疾病治疗

• 气象学:

– 气候现象的形成研究

• 神经科学:

– 运用机器学习研究语言

计算思维的影响:机器学习

---一种方法应用于多学科

• 信用卡

• 超市

• 金融行业

• 娱乐领域

• 体育

• …

• 化学:

– 原子计算

– 化学反应中的算法

计算思维的影响:

---对于其他领域

• 数学:

– E8的破解

• 18人,4年,77小时,600亿

– 四色定理证明

计算思维的影响:

---对于其他领域

• 工程学:

– 电气学

– 机械

– 航空

– 宇航

计算思维的影响:

---对于其他领域

• 社会:

– 经济

– 法律

– 人文

– 地球学

计算思维的影响:

---对于其他领域

• 大胆展望:计算思维不仅对于其他领域的科学家,而且对每个人都适用。

– 普适计算是昨天的梦想,今天的现实。

– 计算思维是今天的梦想,明天的现实。

大胆展望

• 根本的,不是刻板的技能

– 根本技能意味着每个人必须掌握

– 刻板技能意味着机械的重复

• 具有讽刺意味的是,当计算机像人类一样思考之后,思维可就真的变成机械的了。

计算思维是什么,不是什么

• 概念化,不是程序化

– 计算机科学不是计算机编程

– 追求抽象的多个层次上思维

• 是人的,不是计算机的思维方式

– 聪颖

– 想象力

– 激情

– 计算机只是实现人类智慧的工具

计算思维是什么,不是什么

• 数学和工程思维的互补与融合

– 本质上源自数学思维(形式化基础)

– 本质上源自工程思维(面向实际)

– 以虚拟世界超越物理世界

• 计算机科学不是计算机编程

– 智力上的挑战和引人入胜的科学问题依旧亟待理解和解决

– 计算机科学和其他任何科学没有冲突只有互相促进

计算思维是什么,不是什么

• 是思想,不是人造物

– 非物理实体

– 接近和求解问题

– 日常生活

– 交流和互动

– 无处不在

计算思维如何应用于我国目前的教育

• 在哪些阶段引入计算思维

– 小学

– 初中

– 高中

– 大学

– 大学之后

• 在哪些课程中引入

– 计算无所不在、像计算机科学家那样思考

– 计算语言学、计算生物学、计算经济学、计算天文学。。。

• 用什么样的方法引入

– 不插电的计算机科学

• 教学与生活的关系

• 对教师的培养

参考资料

• REU Sites PI Meeting,Arlington, VA,March 13, 2009, Jeannette M. Wing

• 不插电的计算机科学的背景

• 不插电的计算机科学的内容

• 不插电的计算机科学的内涵

• 实现“不插电”学习计算机科学的教学方法

• 讨论与思考

二、不插电的计算机科学------内容提要

• 计算机无处不在,无处不用;

• 中小学生有必要探寻、领悟计算机的原理及其解决问题的精妙思想;

• 通过游戏教学将抽象、复杂的计算机原理形象化、简单化,使学生们了解计算机工作的基本原理;

• 培养学生们的“计算思维”,开发他们解决问题的方法,自我获取知识的能力。

CS Unplugged的背景

• 不插电的计算机科学是一系列免费的学习活动, Unplugged通过使用卡片、串珠、蜡烛等,穿插有大量的活动,参与一些游戏及谜题,达到学习计算机科学的目的。

• 这些活动向学生介绍了计算机科学中的很多概念,像二进制数, 排序算法 以及 数据压缩等,不使用计算机,学生可以学到计算机科学中的很多思想。

• 不插电的计算机科学适合于各个年龄阶段的人,从孩子到老人,从城市到乡村。在世界各地,人们使用不插电的计算机科学已经超过15年了,无论是在教室、科学中心、家里,甚至是在公园里,Unplungged 可以作为假日活动来进行。

CS Unplugged的背景

为了满足人们的需要,计算机会在内部处理两类事情:

• 计算机会存储数据

数据是计算机工作时处理的原材料对象,计算机会将内部数据转换为人们可以理解的信息(如:数字、词语和图像)。

• 计算机通过一系列指令对数据进行处理

通过这些指令(即算法)使得计算机能够解决许多问题(如:排序、查询、发送及传输信息)。

不插电的计算机科学的内容

• 二进制数和“比特”

不插电的计算机科学的内容

• 介绍:

– 保存数据是计算机首先要完成的事情

– 二进制是所有计算机的数据储存形式

– 这来源于计算机内存中晶体管的“开”“关”状态

• 游戏:二进制卡片

• 游戏目的

掌握比特(bit)非0即1 ,二进制的性质以及二进制与数字之间的转换规律。

• 游戏内容 通过学生手持卡片的翻转反面和正面,代替比特的 “0”、“1”变化;

通过人数的变化,说明二进制的性质。

• 游戏结果 比特是计算机技术中一种常用的度量单位,非0即1 ,且容易实现;从

小比特可到大数字。

二进制数和“比特”

• 互动:

– 准备卡片

– 你留意到卡片的规律没有?

– 如果向左侧继续增加一张卡片,这张卡片需要画几个点?

二进制数和“比特”

– 数字6如何表示?

二进制数和“比特”

– 数字0-9如何表示?

– 任何数字能用不止一种方法来表示吗?

– 5张卡片能表示的最大数字是多少?

– 能表示的最小数字是多少?

二进制数和“比特”

– 二进制01001表示多少?

– 这些卡片一共有多少个比特?

二进制数和“比特”

– 用任意符号代表二进制中的0和1

二进制数和“比特”

• 探寻

比特还可以表示字母、图像,如:ASCII码或Unicode码来存储字符;比

特表示像素存储图像。

字节是连续存储的8比特,可以表示256个不同的数值(从0-255),它是最基本的存储单位。常用的存储单位有:B、KB、MB、GB、TB

等。

比特

• 最简单的黑白图像中,每个像素只有两种值:黑或白,如下面字母a的放大图。

• 当计算机存储这样的图片时,它只需记录图像中哪些是黑点哪些是白点,也就是比特的组合。

从比特到图像

• 游程编码:记录每个白色或黑色连续区域的长度。

图像压缩

1,3

4,1

1,4

0,1,3,1

0,1,3,1

1,4

• 计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等,到更具体的主题如编程语言、程序设计、软件和硬件等。

• 尽管没有涉及计算机如何工作的全部细节, 但能培养学生的洞察力。

• 不插电即不用打开计算机,通过游戏学习。

• 不用计算机学会计算机。

CS Unplugged的内涵

游戏教学法

就是以游戏的形式,使学生在激烈的竞赛中,在无比的兴奋中,甚至是在刺激和上瘾中,不知不觉地学到了教材中的内容,或者学到了青少年必须掌握的知识。

CS Unplugged的教学方法

• 教育游戏

能够培养游戏使用者的知识、技能、智力、情感、态度、价值观,并具有一定教育意义的计算机游戏类软件。

• 理论基础

游戏是人类文化的载体。

游戏是一种复杂的心理活动(想象、动机、情感体验及自我控制)。

游戏具有较强综合能力。

CS Unplugged的教学方法

• 游戏与教学关系

游戏的本体性与工具性:外在价值与内在价值的统一。

游戏的教学化与教学的游戏化:教学游戏是教学活动与

游戏活动的统一。

游戏中的教学与教学中的游戏:双向渗透。

游戏教学的定位:教学策略。

CS Unplugged的教学方法

• 游戏教学设计的注意事项

游戏目的、游戏内容、游戏时间

操作形式、操作次数

学生背景、奖惩制度

• 游戏教学遵循的原则

游戏开展应有一定的目的性。

游戏应有一定的创造性。

游戏开展应具有一定的灵活性。

游戏的形式应多样化。

CS Unplugged的教学方法

• http://csunplugged.org/zh-hans

• 孙俊峰,杨帆译.不插电的计算机科学,华中科技大学出版社

• 部分内容源自Internet

参考资料

谢谢!