登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入   新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書

『簡體書』少儿计算思维养成记:六个孩子的编程学习笔记 第2版

書城自編碼: 4138600
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 包若宁 卜文远 傅鼎荃 等
國際書號(ISBN): 9787111781684
出版社: 机械工业出版社
出版日期: 2025-07-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 108.9

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
财富聚变时代: 发掘逆周期的生存智慧
《 财富聚变时代: 发掘逆周期的生存智慧 》

售價:HK$ 85.8
组合数、递推序列与同余式
《 组合数、递推序列与同余式 》

售價:HK$ 184.8
自由之困:非自由主义如何塑造美国历史
《 自由之困:非自由主义如何塑造美国历史 》

售價:HK$ 107.8
零号琴(日本科幻大师飞浩隆花十年写的长篇代表作!2019年星云奖*佳长篇小说得主!)
《 零号琴(日本科幻大师飞浩隆花十年写的长篇代表作!2019年星云奖*佳长篇小说得主!) 》

售價:HK$ 99.0
鼓楼新悦.创造居场所:孤独与归宿的社会学
《 鼓楼新悦.创造居场所:孤独与归宿的社会学 》

售價:HK$ 83.6
售前之道:销售工程师手册(第4版)(新时代·营销新理念)
《 售前之道:销售工程师手册(第4版)(新时代·营销新理念) 》

售價:HK$ 108.9
本心与实学——陆象山心学的展开(何俊著作集)
《 本心与实学——陆象山心学的展开(何俊著作集) 》

售價:HK$ 129.8
天地之间:天文分野的历史学研究(增订本)(中华学术·近思)
《 天地之间:天文分野的历史学研究(增订本)(中华学术·近思) 》

售價:HK$ 107.8

編輯推薦:
1.本书是六名小学生的编程学习笔记,忠实记录了中科院计算所三位研究员教授孩子们养成数学思维与计算思维的过程。2.本书通过10讲编程基础和18讲动手实例,讲述6个基本计算思维,包括从最简单的做起、逐级逼近、带剪枝的枚举等。第2版新增了3讲,讲述随机性的妙用,并大幅扩展“教师点评”,为家长朋友提供更详细的导读。3.科学大师和教育名师联袂推荐。
內容簡介:
计算思维是信息社会创新型人才的素养。本书是少儿计算思维养成过程的忠实记录:中国科学院计算技术研究所三位研究员组织了小SIGMA数学特别兴趣组亲子班,教授孩子们数学思维与计算思维。孩子们在学习时编程序、写心得、记笔记,最终汇集成册,形成本书。 本书通过10讲编程基础和18讲动手实例,讲述6个基本计算思维,包括从最简单的做起、逐级逼近、带剪枝的枚举等。第2版新增了3讲,讲述随机性的妙用,并大幅扩展“教师点评”,为家长朋友提供更详细的导读。 本书具有三大特色: ·以计算思维为纲,内容深刻。 ·以少儿视角行文,浅显易懂。 ·以动手促进动脑,手脑并重。 这是一本“孩子写给孩子看”的书,适合中小学生阅读自学,有助于科学素质培养、思维习惯养成。家长和老师也可以本书作为教材,以书中“教师点评”为导读,按“背景知识->基本思路->编程步骤”的顺序讲授,最后对比、检验实验结果。 在少儿时期养成计算思维,终身受益!
關於作者:
包若宁,中关村一小四年级魏文珊,中关村一小四年级傅鼎荃,北大附小四年级张秦汉,北京双榆树中心小学三年级卜文远,中关村一小四年级谭沛之,中关村一小五年级
目錄
目  录序言前言教师的话(一)教师的话(二)教师的话(三)什么是计算机程序一、什么是计算机语言 /2二、怎样让计算机听懂Scratch语言 /3三、什么是计算机程序 /4四、Scratch编程环境简介 /4五、Scratch积木简介 /6六、怎样让程序运行起来 /9七、第一个Scratch程序“Hello, World!” /9八、更复杂的Scratch程序 /10九、程序里的bug和debug /14十、教师点评 /16角色的动作、绘图和音乐演奏一、知识点 /17(一)角色的方向 /17(二)角色变换造型 /18(三)角色的画笔 /18(四)角色演奏音乐 /20(五)角色的遮挡 /20二、动手练:一个走动的钟表 /20(一)实验目的 /20(二)基本思路 /21(三)编程步骤 /21(四)实验结果 /23(五)遇到的bug及改正过程 /23(六)思考与延伸 /23三、课后作业 /23(一)实验一:音乐演奏 /24(二)实验二:用计算机键盘弹钢琴 /24四、教师点评 /24变量:角色的记忆一、知识点 /26(一)什么是变量 /26(二)变量名字的写法 /26(三)变量有几种 /27(四)什么是局部变量和全局变量 /27(五)怎样建立变量 /27二、动手练:给托球游戏加一个计数器 /28(一)实验目的 /28(二)编程步骤 /28(三)实验结果 /28三、课后作业 /28实验:小猫出口算题 /28四、教师点评 /30循环:重复做动作一、知识点 /31(一)什么是循环 /31(二)“重复执行”积木的种类 /32(三)循环的嵌套 /33(四)写循环的小秘诀 /33二、动手练:阅兵方阵 /33(一)实验目的 /33(二)基本思路 /34(三)编程步骤 /34(四)实验结果 /34(五)思考与延伸 /35三、教师点评 /36克隆:角色的双胞胎和多胞胎一、知识点 /37(一)什么是克隆 /37(二)什么时候用克隆 /37二、动手练:阅兵方阵列队行进 /38(一)实验目的 /38(二)基本思路 /38(三)编程步骤 /39(四)实验结果 /39(五)遇到的bug及改正过程 /40(六)思考与延伸 /41三、教师点评 /41条件判断:角色根据情况做动作一、知识点 /42(一)什么是条件判断 /42(二)多个条件的组合 /42二、动手练:判断奇偶数 /43(一)实验目的 /43(二)基本思路 /43(三)编程步骤 /43(四)实验结果 /43(五)遇到的bug及改正过程 /44三、教师点评 /45过程:程序的模块化一、知识点 /46(一)什么是过程 /46(二)在Scratch程序里怎样实现过程 /46(三)调用一个过程时到底发生了什么 /48二、动手练:会织网的蜘蛛 /49(一)实验目的 /49(二)基本思路 /50(三)编程步骤 /50(四)实验结果 /51(五)思考与延伸 /51三、课后作业 /52实验:彩虹风车 /52四、教师点评 /52列表:把几个变量合起来一、知识点 /54(一)什么是列表?为什么要用列表 /54(二)怎样理解列表 /55(三)对列表的操作 /55二、动手练:找出最大值和最小值 /56(一)实验目的 /56(二)基本思路 /56(三)编程步骤 /56(四)实验结果 /57(五)思考与延伸 /58三、课后作业 /58实验:计算列表中数据的平均值 /58四、教师点评 /59字符串:把几个字母合起来一、知识点 /60(一)什么是字符串变量 /60(二)对字符串变量有哪些操作 /60二、动手练:元音字母计数 /61(一)实验目的 /61(二)基本思路 /61(三)编程步骤 /61(四)实验结果 /62三、教师点评 /63收发消息:角色之间的沟通和协调一、知识点 /64(一)角色之间的沟通和协调 /64(二)什么是“消息” /64(三)怎样创建消息 /64(四)怎样发送消息 /65(五)怎样接收消息 /65二、动手练:“谁在哪里干什么”游戏 /66(一)实验目的 /66(二)基本思路 /66(三)编程步骤 /66(四)实验结果 /69三、教师点评 /69逐级逼近法:刘徽割圆法估计π一、实验目的 /72二、背景知识 /72(一)π是什么 /72(二) π是多少 /72(三)怎样找一个数尽量接近π /73(四)刘徽割圆法估计π /74三、基本思路 /74(一)画正多边形 /75(二)计算正多边形的边长 /75四、编程步骤 /76(一)角色设计 /76(二)变量设计 /76(三)过程描述与代码展示 /76五、遇到的bug及改正过程 /77六、实验结果及分析 /78(一)随着正多边形边数(n)的增加,π的估  计值的变化 /78(二)大圆小圆的结果一样吗 /80七、教师点评 /80(一)为何叫“割圆法”?哪里体现了“割” /81(二)本讲采用的方法和刘徽割圆法的差异 /81(三)刘徽和祖冲之的生平 /82聪明的枚举:巧解数字谜一、实验目的 /83二、背景知识 /83(一)最笨的方法怎么填 /83(二)如何使得枚举时不遗漏可能   的填数方案 /84(三)如何手工计算判断次数 /84三、基本思路 /85(一)最笨的枚举法 /85(二)聪明一点的枚举法 /85(三)更聪明的枚举法 /85四、编程步骤 /86(一)角色设计 /86(二)变量设计 /86(三)过程描述与代码展示 /86五、遇到的bug及改正过程 /87六、实验结果及分析 /88(一)算法找到了多少种答案 /88(二)对比笨算法和聪明算法的判断   次数 /89七、思考与延伸 /89八、教师点评 /90再论聪明的枚举:三阶幻方一、实验目的 /92二、背景知识 /92(一)什么是幻方 /92(二)怎样填幻方 /93(三)三阶幻方有哪些性质 /93(四)三阶幻方的“包卜魏猜想” /94三、基本思路 /95(一)最笨的填法怎么填 /95(二)聪明方法怎么填 /95四、编程步骤 /96(一)角色设计 /96(二)变量设计 /96(三)过程描述与代码展示 /96五、实验结果及分析 /98六、思考与延伸 /99七、教师点评 /99从最简单的做起:4个和尚分馍馍一、实验目的 /100二、基本思路 /100三、编程步骤 /100(一)角色设计 /100(二)变量设计 /101(三)过程描述与代码展示 /101四、遇到的bug及改正过程 /103五、实验结果及分析 /104(一)2个和尚分馍馍的分法与馍馍数    有何关系 /104(二)3个和尚分馍馍的分法与馍馍数    有何关系 /105(三)4个和尚分馍馍的分法与馍馍数    有何关系 /106六、思考与延伸 /106七、教师点评 /106用“试错法”求解鸡兔同笼问题一、实验目的 /110二、背景知识 /110(一)什么是鸡兔同笼问题 /110(二)怎样求解鸡兔同笼问题 /111三、基本思路 /112四、编程步骤 /112(一)角色设计 /112(二)变量设计 /112(三)过程描述与代码展示 /112五、遇到的bug及改正过程 /113六、实验结果及分析 /114七、思考与延伸 /114八、教师点评 /114随机有威力:打圆形靶子估计π一、实验目的 /116二、背景知识 /117三、基本思路 /117四、编程步骤 /118(一)背景和角色设计 /118(二)变量设计 /118(三)过程描述与代码展示 /119五、遇到的bug及改正过程 /119六、实验结果及分析 /120七、思考与延伸 /121八、教师点评 /122再论随机有威力:布丰投针估计π一、实验目的 /123二、背景知识 /124(一)布丰是谁?布丰实验是干什    么的 /124(二)历史上研究者做过的布丰投    针实验 /124三、基本思路 /125四、编程步骤 /125(一)角色设计 /125(二)变量设计 /125(三)过程描述与代码展示 /126五、遇到的bug及改正过程 /128六、实验结果及分析 /128七、思考与延伸 /129(一)扔圆环的碰线次数 /129(二)扔“将圆环掰直变成的投针”    的碰线次数 /130(三)扔拐弯针的碰线次数 /130(四)比较一下长针和短针的碰线    次数 /132(五)布丰投针能算π的终极解释 /132八、教师点评 /133玩游戏体会“递归法”:河内塔游戏一、实验目的 /134二、背景知识 /135(一)河内塔的故事 /135(二)什么是递归积木块 /135(三)递归积木块是怎样执行的 /135三、基本思路 /136(一)最简单的情形:1个盘子 /136(二)比较简单的情形:2个盘子 /137(三)难一点的情形:3个盘子 /138(四)再难一点的情形:4个盘子 /140四、编程步骤 /140(一)角色设计 /140(二)变量设计 /140(三)过程描述与代码展示 /140五、遇到的bug及改正过程 /141六、实验结果及分析 /141(一)输入不同的n,验证移动次数 /142(二)要是有64个盘子呢 /143七、思考与延伸 /143八、教师点评 /143“递归法”的应用:斐波那契数列 与黄金分割一、实验目的 /144二、背景知识 /146(一)斐波那契是谁?什么是斐波那    契数列 /146(二)什么是黄金分割 /146(三)斐波那契数列和黄金分割有    何联系 /147三、基本思路 /148四、编程步骤 /149(一)角色设计 /149(二)变量设计 /149(三)过程描述与代码展示 /149五、实验结果及分析 /150六、思考与延伸 /151七、教师点评 /151(一)如果兔子要3个月才成年呢 /152(二)斐波那契数列的有趣性质一:    相邻月份数目之和 /152(三)斐波那契数列的有趣性质二:    相邻偶数月份数目之积、相邻     奇数月份数目之积 /153(四)植物中的斐波那契数列 /153玩游戏体会“搜索法”:走迷宫一、实验目的 /155二、基本思路 /156三、编程步骤 /157(一)角色设计 /157(二)变量设计 /157(三)过程描述与代码展示 /158四、遇到的bug及改正过程 /163五、实验结果及分析 /163六、思考与延伸 /163(一)采用什么样的策略走最合适 /163(二) “走迷宫”和解数学题之间有什么    关系 /163七、教师点评 /164玩游戏体会“二分法”:找钻石一、实验目的 /165二、背景知识 /166三、基本思路 /166四、编程步骤 /167(一)角色设计 /167(二)变量设计 /167(三)过程描述与代码展示 /167五、遇到的bug及改正过程 /171六、实验结果及分析 /171七、思考与延伸 /172(一)采用什么样的策略最合适 /172(二)傅鼎荃说对8行8列的游戏    来说,使用二分法最多需要     6次,为什么 /172(三)用递归的观点想一想 /172八、教师点评 /173“二分法”的应用:估计的值一、实验目的 /174二、背景知识 /175(一)是怎么发现的 /175(二)毕达哥拉斯是谁 /175(三)为什么说的发现是一件重要的    事情 /175三、基本思路 /176四、编程步骤 /176(一)角色设计 /176(二)变量设计 /177(三)过程描述与代码展示 /177五、遇到的bug及改正过程 /178六、实验结果及分析 /179(一)除了,计算一下其他数的平方根,     比如,, /179(二)输入不同的初始估计值low和up,    需要多少次循环才能估计准 /180七、思考与延伸 /180(一)有没有更快的方法来估计出   的值呢 /180(二)计算2的十二次方根 /181八、教师点评 /184仿真世界:牛顿的大炮一、实验目的 /186二、背景知识 /186(一)牛顿是谁 /186(二)牛顿的大炮是用来做什么的 /187三、基本思路 /187四、编程步骤 /188(一)角色设计 /188(二)变量设计 /188(三)过程描述与代码展示 /189五、遇到的bug及改正过程 /190六、实验结果及分析 /191七、思考与延伸 /191八、教师点评 /192(一)如何根据斜方向的拉力F计    算出水平方向的拉力Fx和竖    直方向的拉力Fy /192(二)平方反比率的推导和背后的    原因 /193(三)牛顿和他所在的那个光辉时代 /194(四)用更大号的三棱镜重做牛顿的    光谱实验 /194再论仿真世界:森林里有几只老鼠、 几只猫头鹰一、实验目的 /195二、背景知识 /195三、基本思路 /196四、编程步骤 /197(一)角色设计 /197(二)变量设计 /197(三)过程描述与代码展示 /197五、遇到的bug及改正过程 /199六、实验结果及分析 /200七、思考与延伸 /200(一)要是第一年只有50万只老鼠呢 /200(二)假如1万只猫头鹰每年吃掉0.1万    只老鼠呢 /201(三)假如1万只猫头鹰每年吃掉0.2万    只老鼠呢 /201八、教师点评 /202博弈初探:会下tic-tac-toe棋 的阿尔法小狗一、实验目的 /203二、背景知识 /203(一)什么是tic-tac-toe棋游戏 /203(二)人是怎样下棋的 /204三、基本思路 /204(一)阿尔法小狗怎样表示棋局 /204(二)阿尔法小狗怎样判断下在哪    里赢面大呢 /205(三)阿尔法小狗怎样下棋呢 /206(四)阿尔法小狗怎样对棋局进行    评分呢 /207(五)阿尔法小狗要“深谋远虑”    还是“目光短浅” /208四、编程步骤 /209(一)角色设计 /209(二)变量设计 /209(三)过程描述与代码展示 /210五、遇到的bug及改正过程 /216六、实验结果及分析 /216七、思考与延伸 /218(一)怎样让阿尔法小狗变聪明 /218(二)新玩法:“狗狗大战” /218八、教师点评 /219(一)阿尔法狗的诀窍之一:控制    树不能太高 /220(二)阿尔法狗的诀窍之二:控制    树不能太宽 /220(三)神经网络是怎样学会打分    和走子的 /220仿真世界:花粉的布朗运动 与醉汉的脚步一、实验目的 /222二、背景知识 /222(一)什么是布朗运动 /222(二)布朗运动有哪几类 /222三、基本思路 /223四、编程步骤 /223(一)角色设计 /223(二)变量设计 /224(三)过程描述与代码展示 /224五、遇到的bug及改正 /224六、实验结果及分析 /224七、思考与延伸 /225八、教师点评 /225两颗钉子一根绳画椭圆一、实验目的 /229二、背景知识 /230(一)什么是圆 /230(二)什么是椭圆 /230(三)两点之间的距离怎么求 /230三、基本思路 /230(一)画圆的思路 /231(二)画椭圆的思路 /231四、编程步骤 /231(一)角色设计 /231(二)变量设计 /231(三)过程描述与代码展示 /232五、遇到的bug及改正 /233六、实验结果及分析 /233七、思考与延伸 /234八、教师点评 /234好玩的概率:蒙提·霍尔羊 车门问题一、实验目的 /235二、基本思路 /235三、编程步骤 /236(一)角色设计 /236(二)变量设计 /236(三)过程描述与代码展示 /237四、遇到的bug及改正 /241五、实验结果与分析 /241六、教师点评 /242后 记 /243
內容試閱
人生中一件幸福的事,是在中关村看见十来岁的孩子睁大了眼睛,兴奋地向你讲述计算思维的美妙。你手中的这本书就传递着这种兴奋和幸福。这本书是6名小学生写的编程课程学习笔记,加上了3位家长兼教师的批注点评。书中凝聚了他们过去一年半的心血、激情和智慧。本书具有三个鲜明的特点,特别适合全国各地的中小学生和家长使用,也适合作为中小学计算机课程的教材。特点一:独特的亲子游戏。作为家长,中科院计算所的3位研究员设计了一种有温度的亲子游戏,实践了一种以孩子为中心的学习过程。学习编程和计算思维不再只是通过枯燥的讲课、做作业来完成,而是让孩子们与家长一起玩计算机游戏和心智游戏,交心互动。他们的课堂洋溢着爱和欢乐。爱孩子是家长的天性,本书为家长提供了一个与孩子欢乐交心的独特渠道。特点二:动手动脑,内容走心。作为教师,3位研究员精心设计了这门编程和计算思维课程,既循序渐进,又充满了让孩子动手动脑的内容,实践了图灵奖得主高德纳(Donald Knuth)提出的终极测试:“对我是否理解某项知识的终极测试是看我能否对计算机讲清楚。”本书作者之一包若宁小朋友没听说过斯坦福大学的高德纳教授,但她在课程学习实践中,自己形成了与高德纳教授类似的观点:“……有一点错计算机就会不客气。可是如果程序写对了,计算机又会给你意外的惊喜。”特点三:实例丰富,易于使用。这本书及配套网站提供了丰富的知识点,每个知识点都配有实例。学习工具就是人手一台计算机,也可以通过互联网远程上课学习;用到的一些辅助教具,如三角形纸板等,都是很容易自行制作的。假如每周花4小时学习,学完全书内容大概需要大半年时间。家长和教师可以根据实际情况适当选择第10讲之后的内容进行学习。今后20年有两个大趋势:中国将进入信息社会,并跻身创新型国家前列。因此,培养中小学生成为信息社会的创新人才是社会的刚需。这本书是一部有趣而高质量的教材,希望你喜欢它!恭喜孩子们!也向他们的父母致敬!中国科学院计算技术研究所 徐志伟2021年8月于北京中关村小SIGMA数学特别兴趣组成立于2018年,有六名学生,由三位家长当老师,是“三个老师六个娃”的亲子班。我们这个特别兴趣组主要讲数学,最大的特点是“慢数学”,有时候两个小时才讲一道题。这让我们有足够的时间去思考、尝试,并发现一些好玩的规律。比如讲幻方时,包若宁、卜文远和魏文珊提出了“包卜魏猜想”—若已知三阶幻方的中心格子、左上角、左侧中间格子的三个数,这个三阶幻方就完全确定了。又如在学“鸡兔同笼”时,傅鼎荃自发地想出了“二分法”。2020年疫情期间,我们在家里都闷得无聊,便央求老师们教我们Scratch编程。当我们看到一个个美丽的角色,搭搭积木就能写程序时,便深深地爱上了编程。在编程里,似乎所有事情都能实现,于是我们想到什么事情就编程试一下。比如卜文远自发尝试写了一个小程序,用小球模拟病毒的传播。在学习编程的时间里,我们一起写过很多程序,有四个和尚分馍馍,算π,二分法找钻石……在这么多的程序中,最好玩儿的就是阿尔法小狗了!这只“小狗”会下井字棋,它本领高强,每次我们都赢不了它!通过编程,可以解决许多数学问题,比如数学里的鸡兔同笼、估算2的平方根等。我们还可以写一个程序估计森林里猫头鹰和老鼠的数目。模拟世界,这感觉很奇妙!我们写这本书时最初的想法是:大部分编程书都是大人写的,都是以大人的视角来看的,我们想以孩子的视角写一本编程书。于是,我们便一人写几章,把学习心得记录下来,最终形成了这本书。我们觉得这本书和其他书是不一样的,它记录的是我们每一位小作者对每讲的看法与总结,记录了我们每个编程初学者对程序从陌生到熟悉并形成自己思维的过程,我们也希望自己的经历可以帮助更多的小朋友爱上编程和计算思维。我们写的程序都放在https://deltadbu.github.io/6kids_learning_scratch/上,供大家参考。希望你们都能喜欢这本书!小SIGMA数学特别兴趣组2021年5月于北京中关村2018年的一天,我给同事包云岗打了个电话,说:“孩子们上二年级了,能否在轻松、活泼的氛围下,引导孩子们学一些数学思维呢?”他很赞同。我们就一起组织了一个小SIGMA数学特别兴趣组,权且由包云岗、兰艳艳和我担任老师,学员就是我们自己的孩子。在这个特别兴趣组中,学生用书是通用的奥数教材,不过教师用书可不太普通—我们用的是G. Polya写的《怎样解题—数学思维的新方法》和陶哲轩写的《陶哲轩教你学数学》。换句话说,我们践行的是Polya的数学教育观—重在倾听孩子们的理解和猜想,重在引导孩子们观察、尝试、联想、归纳、做“合情推理”,总之是一种“慢数学”的风格,有时候我们甚至2个小时只讲一道题。一开始的确看不出成效,但等到三年下来,才慢慢发现孩子们有了一些进步—当然,这些进步不是指孩子们参加某个杯赛拿了个奖,而是指孩子们掌握了一些基本的数学思维,体现在自己能够提出和证明一些猜想,比如包若宁、卜文远、魏文珊小朋友提出了三阶幻方的“包卜魏猜想”,傅鼎荃小朋友在学习“鸡兔同笼”问题时,完全自主地想出了“二分法”。在思维火花迸发的尤里卡时刻,孩子们兴奋得又喊又跳;躬逢其时,我们也非常欣慰—这是对教师最大的肯定和褒赏。等到了2020年春节,因为出现疫情,孩子们都憋在家里,很是无聊,就嚷嚷着让我们教他们编程。教一门编程语言容易,但是关键不在这里,而在于教“计算思维”,这给我们出了一个不小的难题。事实上,包云岗、兰艳艳和我都在中国科学院大学教计算机科学与技术:包老师讲授“操作系统”,负责“一生一芯”实践计划,讲解如何设计CPU和计算机系统;兰老师讲授“机器学习和人工智能”,训练计算机怎样学习;我讲授“计算机算法设计”,包括怎样观察问题和求解问题。简而言之,我们教的都是“计算思维”。不过我们面向的都是本科生和研究生,能否教小学生计算思维?教什么?怎么教?这对我们来说是全新的挑战。这可不像教数学,还有Polya和陶哲轩写的书能够当作教材,给我们一些指导。我们在开课前思考了很久,教的时候又边教边琢磨,把教授本科生、研究生的计算思维进行裁剪和修改,形成了一个初步的“小学生版”计算思维。所谓计算思维,其核心是碰到问题时如何观察、如何尝试,然后如何根据观察到的规律设计计算机程序来求解问题。下面这几条或许是最基本的计算思维:(1)先正向尝试理解题意,再反向求解问题碰到一个问题如何下手?孩子们往往会对着问题发呆,感觉束手无策。这不怪孩子们,求解问题是“反向思维”,有时候的确不太容易一下子就想出来。在这种情况下,“先正向尝试理解题意,再反向求解问题”是走出困境的一个好办法。以“鸡兔同笼”问题为例,可以先尝试一下“鸡有0只”,即使这个尝试非常粗糙也没关系,然后验证这个尝试对不对,不对再修改尝试,比如接着尝试“有1只鸡对不对”,如果不对再增加鸡的数目。先尝试猜测一个解(或许这个解很粗糙,这不要紧),再验证这个猜测是否满足要求,不满足要求就修改;这种“尝试—验证—改进”策略是“试错法”,也是“逐步改进法”。正向尝试有助于理解题意,或许应该成为孩子们碰到问题时的“第一反应”。这种策略看起来很笨,不过却有三个好处:一是能够使孩子们动起手来,避免发呆;二是能够启发我们写一个求解的程序;第三点更重要,孩子们尝试不了几次,可能就会自己发现规律,想出更好的求解方法—这不是想象或夸张,SIGMA的孩子们就是这样想出求解方法的。说得更远一点,计算机科学与技术里普遍采用这种“用正向尝试来反向解题”的策略。一个典型的方法就是神经网络的训练过程—尝试设置网络参数,做正向的网络传播,验证传播的结果,如果不好就修正网络参数,最终反向求解出网络参数。(2)从最简单的做起碰到一个复杂的问题怎么办?比如“4个和尚分馍馍”问题,唐僧师徒4人化缘化到了10个馍馍,问共有几种分法?孩子们没学过组合数学,看到这么多和尚和这么多馍馍,一下子就傻眼了。直接求解这个问题是很难的,我们就启发孩子们从最简单的做起:4个和尚、10个馍馍的问题不会解,那就先考虑2个和尚、1个馍馍的问题。反过来,如果最简单的情形都无法解决,那就说明这个问题太难了,要么放弃,要么琢磨最简单的情形与原始问题之间的差异。当知道怎样求解2个和尚、1个馍馍的问题之后,我们再增加难度,考虑2个和尚、2个馍馍的问题,以及3个和尚、3个馍馍的问题。找出问题的最简单情形,从最简单的情形入手,可以有效避免孩子们面对复杂问题时束手无策的情况。所谓下手,所谓破题,所谓“把手弄脏”,就是第二个有效方式。(3)要学会把复杂问题分解成简单问题这和上一点是一脉相承的。当面对复杂问题时,首先要思考什么是最简单情况,最简单情况下的问题会不会解。假如最简单的情况会解了,下面的思考方向就是如何把复杂问题分解成简单问题。还是拿“4个和尚分10个馍馍”做例子,假设知道唐僧吃了1个馍馍,剩下的问题就简化成“3个和尚分9个馍馍”了。把复杂问题分解成简单的、同类型的问题,就朝着最终解决问题前进了一大步。当然,这种“假设法”只是一种问题分解手段,除此之外,还有“二分法”等。我们设计了几个题目,比如“求2的平方根”,目的就是引导孩子们领会“二分法”。(4)枚举容易做,关键是剪枝如果说计算思维和数学思维有什么不同,我想最大的不同或许在于“枚举法”。其中的道理很简单:人力有限,惧怕枚举;计算机不怕累,不怕枚举,反而有时候喜欢枚举—枚举程序多容易写啊。碰到哪种问题可以尝试“枚举法”呢?如果一个问题的解是多个变量的组合,我们可以尝试一下“枚举法”。以“数字谜”问题为例,解是多个变量的组合,我们只需要枚举变量的所有组合就可以了。孩子们在数学课上常会碰到这种题目,当时很畏难—不是不会做,而是所有的组合太多了,一想到枚举就发怵。不过到了编程课上就简单了,只需要写一个“嵌套循环”,让计算机拼命算就行了。当然了,要是组合数实在太多的话,计算机也枚举不完。这时候的关键是找“最受限制”的变量,用这个变量对枚举“树”进行“剪枝”。我们在讲“数字谜”时,让孩子们尝试最笨的枚举,然后和带剪枝的枚举进行对比,从而体会剪枝的重要性。孩子们将来会发现很多问题和“数字谜”问题类似,解是由多个变量组成的。对这种问题,“枚举+剪枝”是行之有效的解题思路。(5)随机是个利器孩子们还是小学生,接触的“确定性”方法多,“随机性”算法少。我们设计了“布丰投针估计π”“打圆形靶子估计π”“布朗运动和醉汉的脚步”实验,意在引导孩子们从随机算法的角度思考问题。“布朗运动和醉汉的脚步”实验,意在告诉孩子们很多天然现象的本质就是随机;而“布丰投针估计π”和“打圆形靶子估计π”实验,是想让孩子们体会到即使是确定性的问题,也可以用随机方法解决。随机采样可以大大减少计算量,不用特别多的采样,也能得到很好的结果。(6)仿真物理世界在学习计算思维的过程中,一个需要防止的倾向是把计算机世界和真实的物理世界割裂开来。为了防止这种倾向,我们引导孩子们在写程序之前,尽可能先做一些物理实验。比如在写“打圆形靶子估计π”程序之前,先用圆珠笔作飞镖、向靶子上投掷;在写“花粉的布朗运动”仿真程序之前,先用激光笔照射淀粉悬浮液,体会真实的布朗运动;在写“牛顿的大炮”程序之前,先用三根弹簧秤探索拉力分解的奥秘。有了真实的体会再写程序,和没有体会直接写,感觉是大不相同的。此外,我们在设计题目时非常强调“数学建模”,即怎样把物理世界中的实际问题表示成计算机问题或数学问题。比如我们设计了“森林里有几只老鼠、几只猫头鹰”这一讲,意图引导孩子们体会如何仿真“猎物—捕食者”动力学系统;设计了“牛顿的大炮”这一讲,意图引导孩子们体会如何把物理世界“装”到计算机里去。值得指出的是,“森林里有几只老鼠、几只猫头鹰”背后有高深的数学思想;C. Lay写的《线性代数及其应用》中讲到矩阵特征值时,开篇用的就是这个例子。等到孩子们长大了,学习大学数学时,相信会有似曾相识的感觉。总结一下:从粗糙的解开始大胆尝试,不断改进;从最简单的情形做起,把复杂问题分解成简单问题;枚举所有的解,设计“剪枝”技术加快枚举过程;随机采样少量的样本,以减少计算量,这大概就是最基本的计算思维了。我们给本科生、研究生讲的无非也是这几条,只不过是更深、更广一些罢了。德国数学家、数学教育家F. Klein写了一本书,书名叫作《高观点下的初等数学》,其核心观点之一是“有些基础数学,从高观点下才能看得更加明白”。我们把讲授给本科生、研究生的计算思维做了筛选,然后讲授给孩子们;不揣浅陋,这或许可以称作“高观点下的少儿计算思维”吧。为了便于孩子们理解和掌握计算思维,我们还设计了一些游戏,比如“找钻石”游戏是为了体会“二分法”,“走迷宫”游戏是为了体会陶哲轩提出的解题大法—解题无非是尝试寻找一条从已知到结论的路径。我们几位老师平时研究的就是算法和系统,所以给孩子们讲授的计算思维自然而然地带有浓厚的“数学思维”和“系统思维”色彩。大概花了4个月的时间,我们就教完孩子们编程了,包括编程基础知识和计算思维。那孩子们学得到底怎么样呢?事情很是凑巧,2021年5月22日计算所举办“公众科学日”活动,其中一个节目是我带着小SIGMA们做一期“知乎课堂”,讲的题目是“如何用Scratch编程实现一只阿尔法小狗”。台下有300名现场观众注视,线上还有30万观众观看,孩子们顶住压力,现场编程,出了bug现场解决,成功实现了会下tic-tac-toe棋的阿尔法小狗;然后给观众讲解背后的原理和编程步骤,邀请观众进行“人狗大战”最后又分成两个战队进行“狗狗大战”,看哪一队设计的阿尔法小狗更厉害。现场完成编程和讲解,说明孩子们掌握了基本的计算思维和程序设计技能。此外,张秦汉小朋友参加“核桃杯”编程大赛,获得了北京市金奖,也是一个小小的证明,值得鼓励。我们在讲课时就要求孩子们做笔记,记录自己的理解、实验设计思路和实验结果。孩子们轮流来,每一讲都推选一位小朋友负责整理笔记:写程序、分析实验结果、上网查资料,这通常需要花费一周的时间。孩子们写完之后,由我们修改、校补和点评,最终汇集成了这本小书。我们所做的大修改都以“教师点评”的形式明确标识,尽量把修改最小化,以保持孩子们写作的原汁原味—童言童语,自当胜过老生常谈。这本书是孩子和家长共同劳动的成果:部分插图是孩子们手绘的;封面是刘卫玲设计的;全书由包云岗、张春明、谭光明、兰艳艳、何海芸校对。每一位家长都没有缺席。在我的心目中,小SIGMA数学特别兴趣组不是一个课外补习班,而是我们这些做父母的和孩子们做的一场亲子游戏,是把我们的思考和领悟教给孩子们的一次传承,是共同领略数学思维和计算思维的一次探秘之旅。我们这些家长们会永远记得这段时光。我想我们的孩子们将来上了大学,学到高等数学、概率论、计算机算法、人工智能时,应该时不时会感觉似曾相识,大道至简,当会心一笑罢。是为记。中国科学院计算技术研究所 卜东波2021年5月于北京中关村给孩子们的话计算思维是什么?也许孩子们是第一次听到“计算思维”这个词,但相信大家其实早已无意识地在实践计算思维,比如每天早晨上学的过程就是一次计算思维的实践。早上起床后,孩子们就会在大脑中快速形成一个“上学程序”:第一步刷牙洗脸,第二步换衣服,第三步吃早餐,第四步检查书包,第五步出门、步行或坐车去学校,第六步到校后找到座位,第七步……这其实就是计算思维的一种体现。当然,“上学程序”中的每一步还可以进一步分解为更细的步骤,比如刷牙洗脸又可以分解为挤牙膏、刷牙、漱口、接水、洗脸等,这是计算思维中的模块化思想;“上学程序”中有些步骤还可以并行,比如当时间来不及时,可以一边嚼着面包一边换衣服,这是计算思维中的并行思想。现在是不是觉得“计算思维”无所不在了?通俗地说,计算思维就是让我们学会用“编程序”的方法来解决问题。但这些“程序”并不一定仅仅在计算机上运行,也可能是由一个人、一个团队或者一个单位去执行。最近中国航天领域硕果累累,“嫦娥五号”实现月面取样返回地球,天宫空间站成功发射,“祝融号”首次登陆火星等,为什么中国航天总能完成一个个充满挑战的目标?这正是得益于航天领域的总设计师们精心设计的、由几万个航天人一起执行的“程序”,不仅能保障工程质量,还能缩短开发时间,这就是计算思维在航天领域的应用。孩子们也许对计算思维还是有些陌生,但大家都做过数学题,接触过数学思维,这本书希望通过用数学思维和计算思维去求解同一个问题,并进行对比分析,从而让大家体会数学思维和计算思维的区别以及计算思维的威力。将来有一天,当大家能有意识地将计算思维应用到学习和工作中,能把一个复杂任务分解为一个个小步骤,能把这些小步骤变成容易理解的数学模型或者容易执行的操作时,相信大家会发现那些看似复杂的问题变得容易解决了,大家也会变得更有信心去迎接挑战。给家长朋友们的话作为一名家长,我也经常会想:孩子未来会成为一个什么样的人?应该教给孩子什么?在众多我们希望传达给孩子的知识和能力中,我建议一定要把计算思维列进去。我从初中开始学习编程,本科就读于南京大学计算机系,也写过不少程序,但真正深刻认识到计算思维的力量,还是在大学本科毕业十周年的聚会上。当时,一位本科同学说他写了一个程序,为了验证和调试这个程序,他决定改行做高中老师。他设计的程序是这样的:1)将高中数学知识公理化。2)将解数学题的过程转化为一个搜索过程,即从题干出发搜索出对应的公理组合。3)设立几条搜索优先级规则,实现一个高效的搜索算法。需要说明的是:这个程序并不是让计算机执行,而是由人(就是高中生)来执行。一批高三学生在用这个程序练习了一段时间后,奇迹出现了—有一位学生第一次月考数学成绩为41分,第二次月考为71分,第三次月考达到117分,全班第二!这个例子给了我很多启示。我开始观察我们生活的世界,其实很多人的工作就是将各种复杂任务转变为一个个程序,由政府、企业、部门和个人去执行。计算思维无处不在!我意识到,应该教给孩子们应用计算思维去认识世界、改变世界的能力。然而,在我们从小到大的成长经历中,却从来没有一门课或一本书来专门介绍什么是计算思维,以及如何训练计算思维。于是我们几位家长决定自己去探索一种给孩子们教授计算思维的方式。这本书就记录了2020年上半年我们和孩子们一起进行的一次尝试。正如卜老师所言,这更像是一场亲子游戏,孩子们在学习的过程中始终充满了激情与活力,也充满了对新课程的期待。因此,我想如果要再给家长朋友们一个建议,那就是带着孩子们一起去实践书中的那些题目,一起去对比分析数学思维和计算思维的区别,一起去体会计算思维的威力。古人云,“授人以鱼,不如授人以渔”。计算思维,是乃渔也。中国科学院计算技术研究所 包云岗2021年6月于北京中关村今天是中国科学院一年一度的公众开放日,每年这个时间,各个研究所会敞开大门,科研工作者和博士生们准备了有趣的科学实验,向大众进行科普和展示。当然,最热闹的莫过于小朋友了,他们成群结队、快快乐乐地参与游戏,欣然向爸妈分享学到的科学知识。今天,小SIGMA数学特别兴趣组的成员们再一次齐聚登上讲台,给台下的小朋友们讲述小SIGMA数学特别兴趣组的故事,讲述他们编程学习的过程,还有本书中使用Scratch编程实现的阿尔法小狗。距离2021年知乎第一次直播阿尔法小狗的“狗狗大战”已经过去了三年,这一次,他们摆脱了初次登台的紧张和稚嫩,从容解说,默契配合,并与台下的观众们热切地互动。会后,卜老师和我交流三年来孩子们的变化。我感觉最重要的,是他们心中科学的种子已经生根、发芽,数学思维和计算思维成为他们头脑中的天然基座,他们看待问题、处理问题和语言表达会不自觉地使用这套思维模式。这是我们当时创建小SIGMA数学特别兴趣组的初心。现在来看,路没有走偏,作为老师我们是欣慰的,作为家长我们是欣喜的。讲座结束后,有家长提问:你们是上什么课外班学习编程的?每天要编程多长时间?小SIGMA数学特别兴趣组的下一个目标是什么?卜老师打趣,下一个目标是中考啊。哈哈,家长们的焦虑可以理解,我们也是普通的家长,但是大家对小SIGMA数学特别兴趣组和本书或许有些误解:我们写这本书的目标不是培养孩子们编程,而是用最简单的编程语言(即图形化编程语言Scratch)让孩子们认识和理解数学思维和计算思维。计算思维的培养不等同于编程!为什么计算思维的培养比编程更重要,或者说计算思维不仅仅包括编程呢?拿我自己的专业来举例子。我是一名人工智能专业的科研人员。大家知道这几年人工智能非常热门,其实这不是一个新名词,人工智能早在20世纪50年代左右就已经被提出,技术范式经过了四代更新,分别是基于规则的专家系统范式、基于统计的机器学习范式、基于表示的深度学习范式和生成式大语言模型范式,编程语言虽然也有一些变化,但是推动技术真正进步的是算法,是建模方式,是对问题不同的认识和定义。举个例子,以前的人工智能只会进行模式识别,给定一张猫的图片,能分成猫的类别;给定一张狗的图片,能分成狗的类别。现在的人工智能不仅会识别,还会创造。给定一句猫的语言描述“站在月季花旁边的白猫”,可以自动生成相应的图片;给定一段狗的动作语言描述“站在月季花旁边的小狗摇了摇尾巴,向它的主人走去”,可以自动生成相应的视频。这个变革的核心便是建模问题从判别式变成了生成式,运用计算思维的表述就是把寻找图片和标签之间的关系,变成了给定标签产生图片的问题。思维改变了,我们就可以搜集大量的数据,使用人工智能的学习算法来实现这个过程。再比如,人工智能不仅能够模拟人的智能,还能够模拟科学发现的过程,这就是AI for Science,是科学发现的新范式。具体来说,我们以前的科学发现过程主要依靠基于实验观测结果的归纳或者基于人类经验假设下的计算辅助,而现在,人工智能采用大语言模型的新范式,从大量的数据中学习普适的规律,再辅以在小规模试验标签上的拟合或者与试验手段互相增强的方式,已经在天气预报、蛋白质结构预测、新材料和药物发现、化合物设计与优化等方向取得了很大进步。这个变革和核心,便是我们把“向实验要结果”的科学发现思维变成“向实验要数据”的思维方式,进而利用人工智能算法来完成新的科学发现闭环。科技的发展日新月异,孩子们面对的是一个崭新的智能化时代。未来,知识的获取也许不是最重要的,学习的能力、理解知识的关联、使用知识的创新方式,这些都会变得更加重要。这些对人的要求林林总总,核心就是计算思维,而编程更多是实现计算思维或者实现算法的一个工具。那么,如何培养计算思维?为什么本书适合培养计算思维呢?读者刚拿到这本书,或许就会感觉和一般的书不太一样。题目不一样,编程语言也不一样。题目都是数学题,但又不是一般的奥数题,既有经典的数学故事,如刘徽割圆法和布丰投针估计π,又有数学游戏,如三阶幻方和鸡兔同笼,还有数学建模,如仿真世界、人工智能(如阿尔法小狗),以及我们自己设计的题目。虽然我们对问题进行了简化,但是这些问题背后对应的数学思维可不简单,包含了数学原理的科普、复杂数学问题的建模以及人工智能的算法推理。使用Scratch编程语言也是为了通过最简单的编程模式,让孩子在低龄阶段完成这些任务。这样可以有意弱化编程语言,而去强调计算思维的培养。可以说,能正确理解阿尔法小狗,也就理解了DeepMind AlphaGo的一些精髓,如果掌握了更高阶的数学知识和编程语言,自己编写出来一个AlphaGo也不再是一件高不可攀的事情。讲到这里,大概家长们就能够理解我们对计算思维的理解、培养路线和本书的编写意图了。化繁为简就是这本书贯穿始终的重要特色,也是计算思维的核心思想之一。从1到N,孩子们在游戏中逐渐形成提出问题、分析问题、解决问题的思路,长此以往,便可推而广之,在面临很多不同问题的时候形成天然的思维范式,有意识地去解决问题了。这就是我们践行的计算思维的培养路线。在这套路线下成长的小SIGMA数学特别兴趣组的同学们,他们其实并不是同龄人中的编程高手,也不是班级中的学霸,更不是大家想象中的天才儿童。如果要拼成绩,拼课外班,他们是大大落后了;但是他们自信、阳光,结伴度过了童年,收获了友谊,传递了喜悦和收获。去年大家一起参加人工智能比赛,用分立元器件实现巴贝奇差分机,四个孩子每人负责四块面包板,过程中要注意与非门、电阻、二极管等元器件连接,板子的高低电平等问题。由于面包板稳定性及任务的复杂性,在真正上场前都没有实现过一次完整的联调。果然在比赛现场,就遇到了大bug,单人的板子都调试成功了,放在一起就不行了,孩子们急得不行。但后来,他们冷静下来,互相鼓励,通过团队的力量仔细查找问题,终于成功实现了4比特的巴贝奇差分机,得到了评委老师的高度好评,获得了第六届全国青少年人工智能技术大赛的金奖。那一刻,他们自信地笑了。我们在后来听到他们讲述所有的故事的时候,也相视一笑,这就是我们期待的成长……傅鼎荃小朋友现在上初三了。前几天我问他:“上小SIGMA班已经过去三年了,你觉得这段经历对你现在的学习有帮助吗?”傅鼎荃给了回答,我一字不改地抄录如下:“当然有帮助了。第一,从简单到复杂,从特殊到一般的思维方式,贯穿我们学计算思维的始终。因为这方面养成了习惯,在我们遇到复杂难题的时候,也不害怕了。例如,初三开始有了新定义的题目,非常复杂,经常没有思路,这个时候使用从简单出发,或者从特殊情况出发,经常能够帮我们找到思路,把题目解开。第二,独立思考的能力。从小我们这个学习班上就特别强调让我们自己探索,自己总结,提出自己的观点。长大后越来越体会到独立思考的重要性。学知识不能只填鸭吸收,一定要通过多种方式进行思考内化。例如,学二次函数、abc三个变量的关系,不能只是死记硬背记公式,通过几何和代数结合的办法,去尝试变化不同变量,控制这个二次函数的图像,把规律搞透,才能记得长记得久,还能拓展到更复杂的场景。”我们把对于计算思维的理解通过游戏的方式和孩子们一起进行了探讨和实践,本书旨在将我们的这些实践过程进行分享,希望对孩子们的计算思维的培养有一定助益。清华大学人工智能产业研究院 兰艳艳2025年4月20日于北京中关村

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2025 (香港)大書城有限公司  All Rights Reserved.