李泽,国内资深创客,软件设计师、信息系统项目管理师。2013年毕业于新疆医科大学信息管理与信息系统专业,有十余年编程实战经验。教育部教育装备研究与发展中心中小学人工智能教材项目课标组和编写组成员,《青少年编程能力等级》标准主要起草人,工信部人才交流中心“蓝桥杯青少年创意编程大赛”Scratch专家委员会委员。自媒体“科技传播坊”(公众号:kejicbf)研发百余集少儿编程教学视频,已出版《Scratch高手密码》《计算思维养成指南》等共十余本著作。
陈婷婷,北京交通大学硕士。曾就职于索尼移动通信产品有限公司,八年软件开发工作经验,通过国际PMP认证,2017年底加入编程猫负责教研工作。参与教育部教育装备研究与发展中心中小学人工智能教材项目,负责小学人工智能编程课程研发设计工作。
金乔,美国明尼苏达大学计算机科学与工程系在读博士,在中国科学院自动化研究所获得硕士学位,山东大学获得本科学位。主要研究方向为情感计算及面向儿童的人机交互技术。在ACM Interaction Design and Children(儿童交互设计)等国际会议发表多篇论文,拥有三项国家发明专利,参与过多个儿童认知与编程环境相关的国家自然基金项目。
前言
在人工智能时代,我们和智能设备打交道的机会越来越多,很多重复的事情都交给了智能软硬件,那么人类的价值怎么体现呢?当前人工智能技术与人类的最大区别在于,人类能够寻找到目标并主动解决问题,这是前者所不具备的。换言之,人具有主观能动性,具备主动解决问题的能力。计算思维正是扩展该能力的维度,特别是信息时代的难题。什么是计算思维?
简单地说,计算思维就是人们在解决计算问题时蕴含的思维方式。这里的“计算”不只是加减乘除等数学计算方法,还涵盖了更宽泛的概念,涉及逻辑推理和问题求解等方方面面。显然,它与计算机并无直接关联.古人们的智慧也闪烁着计算思维的光芒。例如,建筑项目的规划、十进制、割圆术、银票、镖局和钱庄、货比三家、托物言志的诗歌、排兵布阵的战术等,上述场景分别体现了如下思维方式:可行性分析、信息编码、极限思维、契约和签名、代理、比较、抽象具象。本书之后会对这些思维方式做细致的讲解。为什么古人没有把这些通用的思维方式总结出来呢?
计算机从诞生至今仅70多年,但却极大地促进了社会的发展,推动了社会的进步。另一方面,它也极大地增强了人类解决问题的能力:你可以快速进行3D建模并直观地展示模型并收集反馈,你可以快速求解古人不可想象的复杂计算问题(比如计算圆周率小数点后1000位),你可以快速分享自己的才艺给全世界,你可以轻松统计出长篇小说的词频,你可以快速设计出使用手机控制家用电器的物联网装置,你可以……随着创意的交点越来越多,解决问题的速度越来越快,通用的思维模式体现得愈加频繁。终于,周以真教授于2006年提出了“计算思维”的概念,并将其定义为“运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动”。因此,通过计算机去寻找这些思维模式是非常好的路径,本书的“后记”部分详细展示了这一过程,在此不再赘述。那么学习计算思维,对我们有什么帮助呢?
最直接的益处在于拓宽我们解决问题的边界。本书会带你了解89个计算思维,展示它们在日常生活中和编程中的体现。你会发现,考场上的两套文具和硬盘备份具有相同的思维模式,乐高积木的设计和软件升级也有类似的思想,去餐厅点餐和面向接口程序设计异曲同工,做好最坏打算的习惯和编程中异常机制的思维方式完全一致。最终你会恍然大悟,这些思维方式可以用于解决其他生活或程序上的问题。
前言
新计算思维框架
第一章 挖掘身边的疑问——发现并分析问题
数学思维
分类/分组 为什么要把商品分类摆放?
对照 没有尺子怎么测量长度?
比较 闪电与电火花是一回事儿吗?
类比 鸟和蜻蜓与飞机有什么关系?
概率 同月同日生的“奇妙缘分”很难寻吗?
求同/求异/模板/泛化/特化 为什么居里夫人能找到“钋”和“镭”?
算法思维
算法权衡 医生如何选择合适的治疗方案?
编程思维
输入输出 计算机的“眼”“耳”和“口”在哪里?
抽象/具象 苹果落地和重力是如何联系起来的?
工程思维
预处理 为什么跳水比赛要去掉最高分和最低分?
分解 学霸是怎样炼成的?
可行性分析 为什么永动机是无法实现的?
签名 古代调兵遣将为什么要用兵符?
统筹 如何举办一场精彩的联欢晚会?
协议/契约 商鞅是如何取信于民的?
防御性思想/最坏打算 为什么汽车要配置安全气囊?
持久化 文物出土后是如何被保存的?
第二章 解决难题的思路——系统模型设计
数学思维
特征识别/模式识别/概括 为什么人类能区分动物或表情?
映射 没有名字的世界会怎么样?
替代/替换 如何测量一个灯泡的容积?
排列/组合 如何在小空间中放置多种家具?
分离 为什么空调压缩机要安装在室外?
算法思维
索引 为什么图书要有目录?
先进先出 什么是“先进先出”的现象?
先进后出 什么是“先进后出”的现象?
信息编码 盲人是如何阅读的?
编程思维
状态机 为什么切换软件界面时不会发生混乱?
信息压缩 如何更快地记录老师的板书?
模块化 为什么汽车制造采用模块化的生产方式?
预置/缓存/缓冲 为什么店铺内要设置储存室?
事件驱动 为什么生活就是被事件所驱动的?
参数化 如何成为摄影小达人?
工程思维
分布式/去中心化 小蜜蜂是如何搬家的?
分层/层次化 多级运载火箭有什么优势?
可视化 篮球明星库里和科比的投篮风格有什么不同?
单一职责 为什么拍摄电影需要各种专业人士?
接口依赖 为什么点餐时不直接和厨师交流?
原型 以“米老鼠”为原型的建筑是什么样的?
第三章 落地思路的策略——实施解决方案
数学思维
近似 国土资源面积是精确的数值吗?
蒙特卡洛 为什么套圈游戏总是套不中?
枚举/穷举 警察叔叔是如何破案的?
计数 2500年前的罗马人是如何计数的?
算法思维
排序 为什么酒店的房间号是有顺序的?
搜索/检索 如何在图书馆里找到一本书?
递推 侦探推理的诀窍是什么?
递归 雪花和羽毛有什么奇妙的规律呢?
分治 罗马帝国为什么会被一分为二?
回溯 迷宫游戏有没有什么窍门?
动态规划 如何寻找自驾游的最短行程呢?
唯一依赖 为什么购买火车票需要身份证?
启发式算法 为什么地图软件会给出多条线路?
编程思维
初始化 篮球比赛中的24秒规则是什么?
顺序/序列 月相的变化规律是什么?
选择/分支 为什么相近血缘的“达尔文雀”看起来差别很大?
循环/重复 西西弗斯的石头代表了什么?
嵌套隐藏 在俄罗斯套娃背后的秘密是什么?
串行/并行 飞机场是如何提高安检效率的?
同步/异步 多人如何分享一台掌上游戏机?
代理 为什么要选出课代表?
互斥/对立 为什么厕所门上的锁很重要?
时空互换 如何避免频繁重复地输入登录信息?
助记 为什么说好记性不如烂笔头?
优先级 为什么假期作业总是被拖到最后一刻?
信息隐藏 如何使用诗词传递秘密信息?
信息加密 杨子荣是如何智取威虎山的?
工程思维
冗余/冗稳性/备份 为什么高铁“小黄车”从不载客?
协作 玲珑的犀牛鸟为什么与粗笨的犀牛是“知心朋友”?
复用 乐高积木是如何被批量生产出来的?
集成 《论语》是孔子写的吗?
第四章 检验策略的优劣——分析验证解决方案
数学思维
边界值/临界值/阈值 地球上新的一天从哪里开始?
等价 为什么原始社会能以物易物?
极限 圆周率是怎么计算出来的?
抽样 如何调查城市植物的种类情况?
算法思维
约简 第一部移动电话是什么样的?
编程思维
优化 如何避免“鼠标手”?
调试 为什么电力系统安装后不能立刻投入使用?
自动化 为什么机器人的工作能力比人类强?
工程思维
容错 正在编辑的文件会不会因断电而丢失?
测试 如何在上市前保证新药的安全性?
第五章 维系完善的方法——系统维护
......
作者通过对以往的计算思维模式和计算思维概念进行回顾整理,在已有研究的基础上,大胆提出了新计算思维框架,本书便是围绕这一框架对计算思维展开讲解。书中通过“发现并分析问题、系统模型设计、实施解决方案、分析验证解决方案、系统维护”五个思维过程循序渐进地向读者介绍计算思维的四大思维模式:数学思维、算法思维、编程思维、工程思维,并详细展示它们在日常生活中和编程中的体现。书中列举的案例贴近生活,生动有趣,便于青少年读者轻松习得计算思维知识,从而提高自身的创新思维能力和发散思维能力。
四位行业专家倾情力荐:
编程猫创始人CEO 李天驰
我们进入信息社会已经很多年,如何让孩子学会利用信息化的手段解决问题, 是我们当前教育面临的重要挑战。如何培养孩子的计算思维?从计算思维一词被提出以后,很多专家学者与从业人员各有所见,却鲜有实践者。李泽他们从儿童的编程教育出发,不断追问计算思维的本质是什么,历经两年,终于把他们的实践和思考总结成书。希望这本书能给业界抛砖引玉, 让更多人理解计算思维,理解编程教育的本质,也让更多孩子探寻到这把通往未来的钥匙。
北京景山学校 吴俊杰
在阅读本书的小样的过程中,我能够想象到作者和编辑共同的一种狂喜:让计算思维像水一样融合进生命中的每一个细胞,以至于我们看任何事物都有它的影子—一个全新的世界。这本书帮助我解决了之前的担忧:编程奥数化或者工具码农主义之外还有一个思想上的高地值得所有人去攀登。而确确实实,这种思考值得被翻译为多国语言,成为人类的共同财富。
北京师范大学计算思维教育研究中心主任兼副教授 张进宝
我们向孩子们教授数学方面知识已有数百年的经验,但将计算机科学作为基础性学科进行教授才刚刚开始。本书通过提炼国际上计算思维的主流认识,引入生活和计算机科学核心实践领域中的大量案例,为孩子们提供了形式多样的学习内容,必将激发他们对计算机科学不尽的好奇与无限的想象。我坚信,该书必将成为中国计算思维教育发展史上重要的里程碑。
首都师范大学教育学院副教授 王晓春
计算思维是21 世纪公民应具备的关键能力。本书以现实问题为切入点,介绍了计算思维中的常用基本思想,不仅能开阔我们的视野,而且对日常生活和计算机科学中的问题解决都有很大帮助。
来自全国各地的试读员对本书的评价:
我是这本书的“尝鲜”官,我很负责地告诉大家:这本书很难,不过真的很有趣!原来学习和生活中有那么多现象与“计算思维”有关。现在我遇到新的问题,就会尝试分析:它能不能用“递归”或“分治”等方法来解决,反正犯错没关系,可以“回溯”的嘛!
— 浙江某小学学生
我学习编程一年多了,对编程非常感兴趣。通过试读《计算思维养成指南》,我对计算思维有了更加直观和清晰的认识。计算思维在生活中无处不在,包括输入输出、具体和抽象、状态转移、信息压缩、模块化、事件驱动等,它们都在日常生活中有所体现,与我们的生活息息相关。
— 河北某中学学生
没想到很习以为常的生活现象竟蕴含着那么有意思的计算思维。通过试读,我明白了生活中好多好玩的计算思维。我会在以后的生活中做一个有心人,发现生活中这些有趣的计算思维,用计算思维去思考生活。
—河南某实验学校学生
适用读者:8-14岁的青少年人群
陶行知先生曾说过这样一句话:教育的目的在于解决问题。而学习计算思维,就是为了更好地解决问题。计算思维是众多的思维方式和方法,旨在帮助孩子提高解决问题的能力,学习掌握更多解决问题的思维方式!
计算思维是什么?简单说,就是人们在解决计算问题时蕴含的思维方式。但这里的“计算”不单指加减乘除的计算问题,还涉及逻辑推理和问题求解等方方面面。
你能想象考场上准备两套文具和硬盘备份具有相同的思维模式?去餐厅点餐和面向接口程序设计思维有异曲同工之妙?乐高积木的设计和软件设计意外蕴含着类似的思想 ··· ···
作者通过对以往的计算思维模式和计算思维概念进行回顾整理, 在已有研究的基础上, 大胆提出了新计算思维框架, 本书便是围绕这一框架对计算思维展开讲解。书中通过“发现并分析问题、系统模型设计、实施解决方案、分析验证解决方案、系统维护”五个思维过程循序渐进地向读者介绍计算思维的四大思维模式: 数学思维、算法思维、编程思维、工程思维, 并详细展示它们在日常生活中和编程中的体现。书中列举的案例贴近生活, 生动有趣, 便于青少年读者轻松习得计算思维知识, 从而提高自身的创新思维能力和发散思维能力。