书籍详情
少儿计算思维养成记:六个孩子的编程学习笔记
作者:包若宁,卜文远,傅鼎荃 等编著 张国强 审
出版社:机械工业出版社
出版时间:2022-03-01
ISBN:9787111702481
定价:¥79.00
购买这本书可以去
内容简介
计算思维是信息社会创新型人才的素养。本书是少儿计算思维养成过程的忠实记录:中科院计算所三位研究员组织了小SIGMA 数学兴趣亲子班,教授孩子们数学思维与计算思维;孩子们在学习时编程序、写心得、记笔记,终汇集成册,形成本书。本书包含10讲编程基础和15讲动手实例,讲述6个基本计算思维,包括从简单的做起、逐级逼近、带剪枝的枚举等,具有3大特色:以计算思维为纲,内容深刻;以少儿视角行文,浅白易懂;以动手促进动脑,手脑并重。这是一本“孩子写给孩子看”的书,尤其适合中小学生阅读自学。家长和老师也可以本书作教材,以书中的“教师点评”为导读,按“背景知识->基本思路->编程步骤”顺序讲授,后对比、检验实验结果。让孩子们在少儿时期建立正确的计算思维,将使其终生受益。
作者简介
小SIGMA数学特别兴趣组的六名学员:包若宁,中关村一小四年级魏文珊,中关村一小四年级傅鼎荃,北大附小四年级张秦汉,北京双榆树中心小学三年级卜文远,中关村一小四年级谭沛之,中关村一小五年级 指导老师卜东波中科院计算所研究员。研究方向为计算机算法设计和生物信息学。在国科大讲授“算法设计与分析”,讲授问题求解思维。包云岗中科院计算所研究员。研究方向为计算机系统。负责国科大“一生一芯”实践计划,在国科大讲授“操作系统”,讲授系统思维。兰艳艳清华大学教授、前中科院计算所研究员。研究方向为统计学和机器学习。在国科大讲授“人工智能与机器学习”,讲授机器学习思维。
目录
目录
序 言
前 言
教师的话一
教师的话二
编程基础篇
第1讲
什么是计算机程序?
一、什么是计算机语言? /2
二、怎样让计算机听懂Scratch语言? /3
三、什么是计算机程序? /4
四、Scratch编程环境简介 /4
五、Scratch积木简介 /6
六、怎样让程序运行起来? /10
七、个Scratch程序“Hello, world!” /10
八、更复杂的Scratch程序 /11
九、程序里的bug和debug /15
十、教师点评 /17
第2讲
角色的动作、绘图和音乐演奏
一、知识点 /19
(一)角色的方向 /19
(二)角色变换造型 /20
(三)角色的画笔 /20
(四)角色演奏音乐 /21
(五)角色的遮挡 /22
二、动手练:一个走动的钟表 /23
(一)实验目的 /23
(二)基本思路 /23
(三)编程步骤 /23
(四)实验结果 /25
(五)遇到的bug及改正过程 /26
(六)思考与延伸 /26
三、课后作业 /26
(一)实验一:音乐演奏 /26
(二)实验二:用计算机键盘弹钢琴 /27
四、教师点评 /27
第3讲
变量:角色的记忆
一、知识点 /28
(一)什么是变量? /28
(二)变量名字的写法 /28
(三)变量有几种? /29
(四)什么是局部变量和全局变量? /29
(五)怎样建立变量? /29
二、动手练:给托球游戏加一个计数器 /30
(一)实验目的 /30
(二)编程步骤 /30
(三)实验结果 /30
三、课后作业 /31
实验:小猫出口算题 /31
四、教师点评 /32
第4讲
循环:重复做动作
一、知识点 /33
(一)什么是循环? /33
(二)“重复执行”积木的种类 /34
(三)循环的嵌套 /35
(四)写循环的小秘诀 /36
二、动手练:阅兵方阵 /36
(一)实验目的 /36
(二)基本思路 /36
(三)编程步骤 /36
(四)实验结果 /37
(五)思考与延伸 /37
三、教师点评 /38
第5讲
克隆:角色的双胞胎和多胞胎
一、知识点 /40
(一)什么是克隆? /40
(二)什么时候用克隆? /40
二、动手练:阅兵方阵列队行进 /41
(一)实验目的 /41
(二)基本思路 /42
(三)编程步骤 /42
(四)实验结果 /43
(五)遇到的bug及改正过程 /44
(六)思考与延伸 /44
三、教师点评 /44
第6讲
条件判断:角色根据情况做动作
一、知识点 /45
(一)什么是条件判断? /45
(二)多个条件的组合 /45
二、动手练:判断奇偶数 /46
(一)实验目的 /46
(二)基本思路 /46
(三)编程步骤 /46
(四)实验结果 /47
(五)遇到的bug及改正过程 /47
三、教师点评 /48
第7讲
过程:程序的模块化
一、知识点 /49
(一)什么是过程? /49
(二)在Scratch程序里怎样实现过程? /49
(三)调用一个过程时到底发生了什么? /51
二、动手练:会织网的蜘蛛 /53
(一)实验目的 /53
(二)基本思路 /53
(三)编程步骤 /53
(四)实验结果 /54
(五)思考与延伸 /55
三、课后作业 /55
实验:彩虹风车 /55
四、教师点评 /56
第8讲
列表:把几个变量合起来
一、知识点 /57
(一)什么是列表?为什么要用列表? /57
(二)怎样理解列表? /57
(三)对列表的操作 /58
二、动手练:找出值和小值 /59
(一)实验目的 /59
(二)基本思路 /60
(三)编程步骤 /60
(四)实验结果 /60
(五)思考与延伸 /62
三、课后作业 /62
实验:计算列表中数据的平均值 /62
四、教师点评 /63
第9讲
字符串:把几个字母合起来
一、知识点 /64
(一)什么是字符串变量? /64
(二)对字符串变量有哪些操作? /64
二、动手练:元音字母计数 /65
(一)实验目的 /65
(二)基本思路 /66
(三)编程步骤 /66
(四)实验结果 /66
三、教师点评 /67
第10讲
收发消息:角色之间的沟通和协调
一、知识点 /68
(一)角色之间的沟通和协调 /68
(二)什么是“消息”? /68
(三)怎样创建消息? /68
(四)怎样发送消息? /69
(五)怎样接收消息? /69
二、动手练:“谁在哪里干什么”游戏 /70
(一)实验目的 /70
(二)基本思路 /70
(三)编程步骤 /70
(四)实验结果 /73
三、教师点评 /74
计算思维篇
第11讲
逐级逼近法:刘徽割圆法估计π
一、实验目的 /76
二、背景知识 /76
(一)π是什么? /76
(二)π是多少? /76
(三)怎样找一个数尽量接近π? /77
(四)刘徽割圆法估计π /78
三、基本思路 /79
(一)画正多边形 /79
(二)计算正多边形的边长 /80
四、编程步骤 /80
(一)角色设计 /80
(二)变量设计 /80
(三)过程描述与代码展示 /80
五、遇到的bug及改正过程 /82
六、实验结果及分析 /82
(一)随着正多边形边数(n)的增加,π的估计值的变化 /82
(二)大圆小圆的结果一样吗? /84
七、教师点评 /85
(一)为何叫“割圆法”?哪里体现了“割”? /85
(二)本讲采用的方法与刘徽割圆法的差异 /86
(三)刘徽和祖冲之的生平 /86
第12讲
聪明的枚举:巧解数字谜
一、实验目的 /87
二、背景知识 /87
(一)笨的方法怎么填? /87
(二)如何使得枚举时不遗漏可能的填数方案? /88
(三)如何手工计算判断次数? /89
三、基本思路 /89
(一)笨的枚举法 /89
(二)聪明一点的枚举法 /89
(三)更聪明的枚举法 /89
四、编程步骤 /90
(一)角色设计 /90
(二)变量设计 /90
(三)过程描述与代码展示 /90
五、遇到的bug及改正过程 /92
六、实验结果及分析 /92
(一)算法找到了多少种答案? /92
(二)对比笨算法和聪明算法的判断次数 /92
七、思考与延伸 /94
八、教师点评 /94
第13讲
再论聪明的枚举:三阶幻方
一、实验目的 /96
二、背景知识 /96
(一)什么是幻方? /96
(二)怎样填幻方? /97
(三)三阶幻方有哪些性质? /97
(四)三阶幻方的“包卜魏猜想” /98
三、基本思路 /99
(一)笨的填法是怎么填的? /99
(二)聪明的方法怎么填? /99
四、编程步骤 /100
(一)角色设计 /100
(二)变量设计 /100
(三)过程描述与代码展示 /100
五、实验结果及分析 /103
六、思考与延伸 /103
七、教师点评 /103
第14讲
从简单的做起:4个和尚分馍馍
一、实验目的 /104
二、基本思路 /104
三、编程步骤 /105
(一)角色设计 /105
(二)变量设计 /105
(三)过程描述与代码展示 /105
四、遇到的bug及改正过程 /107
五、实验结果及分析 /108
(一)2个和尚分馍馍的分法与馍馍数有何关系? /108
(二)3个和尚分馍馍的分法与馍馍数有何关系? /109
(三)4个和尚分馍馍的分法与馍馍数有何关系? /110
六、思考与延伸 /110
七、教师点评 /111
第15讲
用“试错法”求解鸡兔同笼问题
一、实验目的 /112
二、背景知识 /112
(一)什么是鸡兔同笼问题? /112
(二)怎样求解鸡兔同笼问题? /113
三、基本思路 /114
四、编程步骤 /114
(一)角色设计 /114
(二)变量设计 /114
(三)过程描述与代码展示 /115
五、遇到的bug及改正过程 /116
六、实验结果及分析 /116
七、思考与延伸 /116
八、教师点评 /116
第16讲
随机有威力:打圆形靶子估计π
一、实验目的 /119
二、背景知识 /120
三、基本思路 /120
四、编程步骤 /121
(一)背景和角色设计 /121
(二)变量设计 /121
(三)过程描述与代码展示 /114
五、遇到的bug及改正过程 /122
六、实验结果及分析 /123
七、思考与延伸 /124
八、教师点评 /125
第17讲
再论随机有威力:布丰投针估计π
一、实验目的 /127
二、背景知识 /128
(一)布丰是谁?布丰实验是干什么的? /128
(二)历史上研究者做过的布丰投针实验 /128
三、基本思路 /129
四、编程步骤 /129
(一)角色设计 /129
(二)变量设计 /130
(三)过程描述与代码展示 /130
五、遇到的bug及改正过程 /132
六、实验结果及分析 /132
七、思考与延伸 /133
(一)扔圆环的碰线次数 /133
(二)扔“将圆环掰直变成的投针”的碰线次数 /134
(三)扔拐弯针的碰线次数 /135
(四)比较一下长针和短针的碰线次数 /136
(五)布丰投针能算π的终极解释 /137
八、教师点评 /138
第18讲
玩游戏体会“递归法”:河内塔游戏
一、实验目的 /139
二、背景知识 /140
(一)河内塔的故事 /140
(二)什么是递归积木块? /140
(三)递归积木块是怎样执行的? /140
三、基本思路 /141
(一)简单的情形:1个盘子 /142
(二)比较简单的情形:2个盘子 /142
(三)难一点的情形:3个盘子 /142
(四)再难一点的情形:4个盘子 /145
四、编程步骤 /145
(一)角色设计 /145
(二)变量设计 /145
(三)过程描述与代码展示 /146
五、遇到的bug及改正过程 /146
六、实验结果及分析 /147
(一)输入不同的n,验证移动次数 /147
(二)要是有64个盘子呢? /148
七、思考与延伸 /148
八、教师点评 /148
第19讲
“递归法”的应用:斐波那契数列与黄金分割
一、实验目的 /149
二、背景知识 /151
(一)斐波那契是谁?什么是斐波那契数列? /151
(二)什么是黄金分割? /152
(三)斐波那契数列和黄金分割有何联系? /152
三、基本思路 /153
四、编程步骤 /154
(一)角色设计 /154
(二)变量设计 /154
(三)过程描述与代码展示 /155
五、实验结果及分析 /156
六、思考与延伸 /156
七、教师点评 /157
(一)如果兔子要3个月才成年呢? /157
(二)斐波那契数列的有趣性质一:相邻月份数目之和 /157
(三)斐波那契数列的有趣性质二:相邻偶数月份数目之积、相邻奇数月份数目之积 /158
(四)植物中的斐波那契数列 /159
第20讲
玩游戏体会“搜索法”:走迷宫
一、实验目的 /160
二、基本思路 /161
三、编程步骤 /162
(一)角色设计 /162
(二)变量设计 /162
(三)过程描述与代码展示 /163
四、遇到的bug及改正过程 /167
五、实验结果及分析 /167
六、思考与延伸 /169
(一)采用什么样的策略走合适? /169
(二) “走迷宫”和解数学题之间有什么关系? /169
七、教师点评 /169
第21讲
玩游戏体会“二分法”:找钻石
一、实验目的 /171
二、背景知识 /172
三、基本思路 /173
四、编程步骤 /173
(一)角色设计 /173
(二)变量设计 /173
(三)过程描述与代码展示 /173
五、遇到的bug及改正过程 /177
六、实验结果及分析 /178
七、思考与延伸 /178
(一)采用什么样的策略合适? /178
(二)傅鼎荃说对8行8列的游戏来说,使用二分法多需要6次,为什么? /178
(三)用递归的观点想一想 /179
八、教师点评 /179
第22讲
“二分法”的应用:估计的值
一、实验目的 /180
二、背景知识 /181
(一)是怎么发现的? /181
(二)毕达哥拉斯是谁? /181
(三)为什么说的发现是一件重要的事情? /182
三、基本思路 /182
四、编程步骤 /183
(一)角色设计 /183
(二)变量设计 /183
(三)过程描述与代码展示 /183
五、遇到的bug及改正过程 /185
六、实验结果及分析 /185
(一)除了2,计算一下其他数的平方根,比如3、5、7 /185
(二)输入不同的初始估计值low和up,需要多少次循环才能估计准? /186
七、思考与延伸 /186
(一)有没有更快的方法来估计出呢? /186
(二)计算2的十二次方根 /187
八、教师点评 /191
第23讲
仿真世界:牛顿的大炮
一、实验目的 /192
二、背景知识 /192
(一)牛顿是谁? /192
(二)牛顿的大炮是用来做什么的? /193
三、基本思路 /193
四、编程步骤 /194
(一)角色设计 /194
(二)变量设计 /194
(三)过程描述与代码展示 /195
五、遇到的bug及改正过程 /197
六、实验结果及分析 /197
七、思考与延伸 /198
八、教师点评 /198
(一)如何根据斜方向的拉力F计算出水平方向的拉力Fx和竖直方向的拉力Fy? /199
(二)平方反比率的推导和背后的原因 /200
(三)牛顿和他所在的那个光辉时代 /201
(四)用更大号的三棱镜重做牛顿的光谱实验 /201
第24讲
再论仿真世界:森林里有几只老鼠,几只猫头鹰?
一、实验目的 /202
二、背景知识 /202
三、基本思路 /203
四、编程步骤 /204
(一)角色设计 /204
(二)变量设计 /204
(三)过程描述与代码展示 /204
五、遇到的bug及改正过程 /207
六、实验结果及分析 /207
七、思考与延伸 /208
(一)要是年只有50万只老鼠呢? /208
(二)假如1万只猫头鹰每年吃掉0.1万只老鼠呢? /208
(三)假如1万只猫头鹰每年吃掉0.2万只老鼠呢? /209
八、教师点评 /209
第25讲
博弈初探:会下tic-tac-toe棋的阿尔法小狗
一、实验目的 /211
二、背景知识 /211
(一)什么是tic-tac-toe棋游戏? /211
(二)人是怎样下棋的? /212
三、基本思路 /213
(一)阿尔法小狗怎样表示棋局? /213
(二)阿尔法小狗怎样判断下在哪里赢面大呢? /213
(三)阿尔法小狗怎样下棋呢? /215
(四)阿尔法小狗怎样对棋局进行评分呢? /216
(五)阿尔法小狗要“深谋远虑”还是“目光短浅”? /216
四、编程步骤 /218
(一)角色设计 /218
(二)变量设计 /218
(三)过程描述与代码展示 /219
五、遇到的bug及改正过程 /225
六、实验结果及分析 /225
七、思考与延伸 /227
(一)怎样让阿尔法小狗变聪明? /227
(二)新玩法:“狗狗大战” /228
八、教师点评 /228
(一)阿尔法狗的诀窍之一:控制树不能太高 /229
(二)阿尔法狗的诀窍之二:控制树不能太宽 /230
(三)神经网络是怎样学会打分和走子的? /230
序 言
前 言
教师的话一
教师的话二
编程基础篇
第1讲
什么是计算机程序?
一、什么是计算机语言? /2
二、怎样让计算机听懂Scratch语言? /3
三、什么是计算机程序? /4
四、Scratch编程环境简介 /4
五、Scratch积木简介 /6
六、怎样让程序运行起来? /10
七、个Scratch程序“Hello, world!” /10
八、更复杂的Scratch程序 /11
九、程序里的bug和debug /15
十、教师点评 /17
第2讲
角色的动作、绘图和音乐演奏
一、知识点 /19
(一)角色的方向 /19
(二)角色变换造型 /20
(三)角色的画笔 /20
(四)角色演奏音乐 /21
(五)角色的遮挡 /22
二、动手练:一个走动的钟表 /23
(一)实验目的 /23
(二)基本思路 /23
(三)编程步骤 /23
(四)实验结果 /25
(五)遇到的bug及改正过程 /26
(六)思考与延伸 /26
三、课后作业 /26
(一)实验一:音乐演奏 /26
(二)实验二:用计算机键盘弹钢琴 /27
四、教师点评 /27
第3讲
变量:角色的记忆
一、知识点 /28
(一)什么是变量? /28
(二)变量名字的写法 /28
(三)变量有几种? /29
(四)什么是局部变量和全局变量? /29
(五)怎样建立变量? /29
二、动手练:给托球游戏加一个计数器 /30
(一)实验目的 /30
(二)编程步骤 /30
(三)实验结果 /30
三、课后作业 /31
实验:小猫出口算题 /31
四、教师点评 /32
第4讲
循环:重复做动作
一、知识点 /33
(一)什么是循环? /33
(二)“重复执行”积木的种类 /34
(三)循环的嵌套 /35
(四)写循环的小秘诀 /36
二、动手练:阅兵方阵 /36
(一)实验目的 /36
(二)基本思路 /36
(三)编程步骤 /36
(四)实验结果 /37
(五)思考与延伸 /37
三、教师点评 /38
第5讲
克隆:角色的双胞胎和多胞胎
一、知识点 /40
(一)什么是克隆? /40
(二)什么时候用克隆? /40
二、动手练:阅兵方阵列队行进 /41
(一)实验目的 /41
(二)基本思路 /42
(三)编程步骤 /42
(四)实验结果 /43
(五)遇到的bug及改正过程 /44
(六)思考与延伸 /44
三、教师点评 /44
第6讲
条件判断:角色根据情况做动作
一、知识点 /45
(一)什么是条件判断? /45
(二)多个条件的组合 /45
二、动手练:判断奇偶数 /46
(一)实验目的 /46
(二)基本思路 /46
(三)编程步骤 /46
(四)实验结果 /47
(五)遇到的bug及改正过程 /47
三、教师点评 /48
第7讲
过程:程序的模块化
一、知识点 /49
(一)什么是过程? /49
(二)在Scratch程序里怎样实现过程? /49
(三)调用一个过程时到底发生了什么? /51
二、动手练:会织网的蜘蛛 /53
(一)实验目的 /53
(二)基本思路 /53
(三)编程步骤 /53
(四)实验结果 /54
(五)思考与延伸 /55
三、课后作业 /55
实验:彩虹风车 /55
四、教师点评 /56
第8讲
列表:把几个变量合起来
一、知识点 /57
(一)什么是列表?为什么要用列表? /57
(二)怎样理解列表? /57
(三)对列表的操作 /58
二、动手练:找出值和小值 /59
(一)实验目的 /59
(二)基本思路 /60
(三)编程步骤 /60
(四)实验结果 /60
(五)思考与延伸 /62
三、课后作业 /62
实验:计算列表中数据的平均值 /62
四、教师点评 /63
第9讲
字符串:把几个字母合起来
一、知识点 /64
(一)什么是字符串变量? /64
(二)对字符串变量有哪些操作? /64
二、动手练:元音字母计数 /65
(一)实验目的 /65
(二)基本思路 /66
(三)编程步骤 /66
(四)实验结果 /66
三、教师点评 /67
第10讲
收发消息:角色之间的沟通和协调
一、知识点 /68
(一)角色之间的沟通和协调 /68
(二)什么是“消息”? /68
(三)怎样创建消息? /68
(四)怎样发送消息? /69
(五)怎样接收消息? /69
二、动手练:“谁在哪里干什么”游戏 /70
(一)实验目的 /70
(二)基本思路 /70
(三)编程步骤 /70
(四)实验结果 /73
三、教师点评 /74
计算思维篇
第11讲
逐级逼近法:刘徽割圆法估计π
一、实验目的 /76
二、背景知识 /76
(一)π是什么? /76
(二)π是多少? /76
(三)怎样找一个数尽量接近π? /77
(四)刘徽割圆法估计π /78
三、基本思路 /79
(一)画正多边形 /79
(二)计算正多边形的边长 /80
四、编程步骤 /80
(一)角色设计 /80
(二)变量设计 /80
(三)过程描述与代码展示 /80
五、遇到的bug及改正过程 /82
六、实验结果及分析 /82
(一)随着正多边形边数(n)的增加,π的估计值的变化 /82
(二)大圆小圆的结果一样吗? /84
七、教师点评 /85
(一)为何叫“割圆法”?哪里体现了“割”? /85
(二)本讲采用的方法与刘徽割圆法的差异 /86
(三)刘徽和祖冲之的生平 /86
第12讲
聪明的枚举:巧解数字谜
一、实验目的 /87
二、背景知识 /87
(一)笨的方法怎么填? /87
(二)如何使得枚举时不遗漏可能的填数方案? /88
(三)如何手工计算判断次数? /89
三、基本思路 /89
(一)笨的枚举法 /89
(二)聪明一点的枚举法 /89
(三)更聪明的枚举法 /89
四、编程步骤 /90
(一)角色设计 /90
(二)变量设计 /90
(三)过程描述与代码展示 /90
五、遇到的bug及改正过程 /92
六、实验结果及分析 /92
(一)算法找到了多少种答案? /92
(二)对比笨算法和聪明算法的判断次数 /92
七、思考与延伸 /94
八、教师点评 /94
第13讲
再论聪明的枚举:三阶幻方
一、实验目的 /96
二、背景知识 /96
(一)什么是幻方? /96
(二)怎样填幻方? /97
(三)三阶幻方有哪些性质? /97
(四)三阶幻方的“包卜魏猜想” /98
三、基本思路 /99
(一)笨的填法是怎么填的? /99
(二)聪明的方法怎么填? /99
四、编程步骤 /100
(一)角色设计 /100
(二)变量设计 /100
(三)过程描述与代码展示 /100
五、实验结果及分析 /103
六、思考与延伸 /103
七、教师点评 /103
第14讲
从简单的做起:4个和尚分馍馍
一、实验目的 /104
二、基本思路 /104
三、编程步骤 /105
(一)角色设计 /105
(二)变量设计 /105
(三)过程描述与代码展示 /105
四、遇到的bug及改正过程 /107
五、实验结果及分析 /108
(一)2个和尚分馍馍的分法与馍馍数有何关系? /108
(二)3个和尚分馍馍的分法与馍馍数有何关系? /109
(三)4个和尚分馍馍的分法与馍馍数有何关系? /110
六、思考与延伸 /110
七、教师点评 /111
第15讲
用“试错法”求解鸡兔同笼问题
一、实验目的 /112
二、背景知识 /112
(一)什么是鸡兔同笼问题? /112
(二)怎样求解鸡兔同笼问题? /113
三、基本思路 /114
四、编程步骤 /114
(一)角色设计 /114
(二)变量设计 /114
(三)过程描述与代码展示 /115
五、遇到的bug及改正过程 /116
六、实验结果及分析 /116
七、思考与延伸 /116
八、教师点评 /116
第16讲
随机有威力:打圆形靶子估计π
一、实验目的 /119
二、背景知识 /120
三、基本思路 /120
四、编程步骤 /121
(一)背景和角色设计 /121
(二)变量设计 /121
(三)过程描述与代码展示 /114
五、遇到的bug及改正过程 /122
六、实验结果及分析 /123
七、思考与延伸 /124
八、教师点评 /125
第17讲
再论随机有威力:布丰投针估计π
一、实验目的 /127
二、背景知识 /128
(一)布丰是谁?布丰实验是干什么的? /128
(二)历史上研究者做过的布丰投针实验 /128
三、基本思路 /129
四、编程步骤 /129
(一)角色设计 /129
(二)变量设计 /130
(三)过程描述与代码展示 /130
五、遇到的bug及改正过程 /132
六、实验结果及分析 /132
七、思考与延伸 /133
(一)扔圆环的碰线次数 /133
(二)扔“将圆环掰直变成的投针”的碰线次数 /134
(三)扔拐弯针的碰线次数 /135
(四)比较一下长针和短针的碰线次数 /136
(五)布丰投针能算π的终极解释 /137
八、教师点评 /138
第18讲
玩游戏体会“递归法”:河内塔游戏
一、实验目的 /139
二、背景知识 /140
(一)河内塔的故事 /140
(二)什么是递归积木块? /140
(三)递归积木块是怎样执行的? /140
三、基本思路 /141
(一)简单的情形:1个盘子 /142
(二)比较简单的情形:2个盘子 /142
(三)难一点的情形:3个盘子 /142
(四)再难一点的情形:4个盘子 /145
四、编程步骤 /145
(一)角色设计 /145
(二)变量设计 /145
(三)过程描述与代码展示 /146
五、遇到的bug及改正过程 /146
六、实验结果及分析 /147
(一)输入不同的n,验证移动次数 /147
(二)要是有64个盘子呢? /148
七、思考与延伸 /148
八、教师点评 /148
第19讲
“递归法”的应用:斐波那契数列与黄金分割
一、实验目的 /149
二、背景知识 /151
(一)斐波那契是谁?什么是斐波那契数列? /151
(二)什么是黄金分割? /152
(三)斐波那契数列和黄金分割有何联系? /152
三、基本思路 /153
四、编程步骤 /154
(一)角色设计 /154
(二)变量设计 /154
(三)过程描述与代码展示 /155
五、实验结果及分析 /156
六、思考与延伸 /156
七、教师点评 /157
(一)如果兔子要3个月才成年呢? /157
(二)斐波那契数列的有趣性质一:相邻月份数目之和 /157
(三)斐波那契数列的有趣性质二:相邻偶数月份数目之积、相邻奇数月份数目之积 /158
(四)植物中的斐波那契数列 /159
第20讲
玩游戏体会“搜索法”:走迷宫
一、实验目的 /160
二、基本思路 /161
三、编程步骤 /162
(一)角色设计 /162
(二)变量设计 /162
(三)过程描述与代码展示 /163
四、遇到的bug及改正过程 /167
五、实验结果及分析 /167
六、思考与延伸 /169
(一)采用什么样的策略走合适? /169
(二) “走迷宫”和解数学题之间有什么关系? /169
七、教师点评 /169
第21讲
玩游戏体会“二分法”:找钻石
一、实验目的 /171
二、背景知识 /172
三、基本思路 /173
四、编程步骤 /173
(一)角色设计 /173
(二)变量设计 /173
(三)过程描述与代码展示 /173
五、遇到的bug及改正过程 /177
六、实验结果及分析 /178
七、思考与延伸 /178
(一)采用什么样的策略合适? /178
(二)傅鼎荃说对8行8列的游戏来说,使用二分法多需要6次,为什么? /178
(三)用递归的观点想一想 /179
八、教师点评 /179
第22讲
“二分法”的应用:估计的值
一、实验目的 /180
二、背景知识 /181
(一)是怎么发现的? /181
(二)毕达哥拉斯是谁? /181
(三)为什么说的发现是一件重要的事情? /182
三、基本思路 /182
四、编程步骤 /183
(一)角色设计 /183
(二)变量设计 /183
(三)过程描述与代码展示 /183
五、遇到的bug及改正过程 /185
六、实验结果及分析 /185
(一)除了2,计算一下其他数的平方根,比如3、5、7 /185
(二)输入不同的初始估计值low和up,需要多少次循环才能估计准? /186
七、思考与延伸 /186
(一)有没有更快的方法来估计出呢? /186
(二)计算2的十二次方根 /187
八、教师点评 /191
第23讲
仿真世界:牛顿的大炮
一、实验目的 /192
二、背景知识 /192
(一)牛顿是谁? /192
(二)牛顿的大炮是用来做什么的? /193
三、基本思路 /193
四、编程步骤 /194
(一)角色设计 /194
(二)变量设计 /194
(三)过程描述与代码展示 /195
五、遇到的bug及改正过程 /197
六、实验结果及分析 /197
七、思考与延伸 /198
八、教师点评 /198
(一)如何根据斜方向的拉力F计算出水平方向的拉力Fx和竖直方向的拉力Fy? /199
(二)平方反比率的推导和背后的原因 /200
(三)牛顿和他所在的那个光辉时代 /201
(四)用更大号的三棱镜重做牛顿的光谱实验 /201
第24讲
再论仿真世界:森林里有几只老鼠,几只猫头鹰?
一、实验目的 /202
二、背景知识 /202
三、基本思路 /203
四、编程步骤 /204
(一)角色设计 /204
(二)变量设计 /204
(三)过程描述与代码展示 /204
五、遇到的bug及改正过程 /207
六、实验结果及分析 /207
七、思考与延伸 /208
(一)要是年只有50万只老鼠呢? /208
(二)假如1万只猫头鹰每年吃掉0.1万只老鼠呢? /208
(三)假如1万只猫头鹰每年吃掉0.2万只老鼠呢? /209
八、教师点评 /209
第25讲
博弈初探:会下tic-tac-toe棋的阿尔法小狗
一、实验目的 /211
二、背景知识 /211
(一)什么是tic-tac-toe棋游戏? /211
(二)人是怎样下棋的? /212
三、基本思路 /213
(一)阿尔法小狗怎样表示棋局? /213
(二)阿尔法小狗怎样判断下在哪里赢面大呢? /213
(三)阿尔法小狗怎样下棋呢? /215
(四)阿尔法小狗怎样对棋局进行评分呢? /216
(五)阿尔法小狗要“深谋远虑”还是“目光短浅”? /216
四、编程步骤 /218
(一)角色设计 /218
(二)变量设计 /218
(三)过程描述与代码展示 /219
五、遇到的bug及改正过程 /225
六、实验结果及分析 /225
七、思考与延伸 /227
(一)怎样让阿尔法小狗变聪明? /227
(二)新玩法:“狗狗大战” /228
八、教师点评 /228
(一)阿尔法狗的诀窍之一:控制树不能太高 /229
(二)阿尔法狗的诀窍之二:控制树不能太宽 /230
(三)神经网络是怎样学会打分和走子的? /230
猜您喜欢