- ISBN:9787111702481
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:235
- 出版时间:2022-04-01
- 条形码:9787111702481 ; 978-7-111-70248-1
本书特色
本书获得中国科学院科普专项资助,被中国计算机学会推荐为十大科普图书。 本书是六名小学生的编程学习笔记,忠实记录了中科院计算所三位研究员教授孩子们养成数学思维与计算思维的过程。 本书通过25讲编程基础和动手实例,以亲子教育的方式讲述六个基本计算思维,适合6~15岁青少年与老师或家长一起阅读,读者可从书中链接下载实例代码体验。 科学大师和教育名师联袂推荐。
内容简介
这本书是笔记,它的特色是“小学生写给小学生看”。现在市场上的书绝大部分都是大人写的,虽然作者尽量试图从小学生的角度来写,但毕竟还是有一些隔阂。而这本书忠实记录了小朋友自己的学习历程和心得体会,包括成功的经验,也有遇到bug时的挫折。例如:在实现刘徽割圆法估算圆周率π时,傅鼎荃怀疑“大圆的π应该更大”,通过实验才确信了一样大。这样的小孩子特有的疑问和探索,是大人想不到的,也是大人写的书里不会有的。此外,写作风格也是一个特色:这本书是小孩子自己写的,有小孩子自己的语气和思维方式,或许更适合小学生读者接受。 这本书是“计算思维从娃娃抓起”的一个尝试。所谓计算思维,是用计算机的概念来求解问题、理解自然现象与人类行为的思维方式。 我们并行开设“奥数班”和“编程班”;在此过程中,也发现了求解同一个问题时,数学思维和计算思维的异同。 以和差倍问题为例,奥数班教的是“线段图”法,其本质是一元一次方程的求解,是逆向的;而编程班上教的是“枚举法”,其本质是试错,是正向的。 我们在书里会穿插着讲解这两种思维方式的异同。 此外,仿真自然现象,是认识自然规律的利器。“森林里老鼠和鹰的数目变化”这一讲是这种思维方式的代表。本书讲编程,更重要的是用编程来思考问题、认识自然现象和人类行为。这本书是由3-5年级小学生编写,适用于小学高年级,以及中学低年级的学生。
目录
节选
教师的话一 2018年的一天,我给同事包云岗打了个电话,说:“孩子们上二年级了,能否在轻松、活泼的氛围下,引导孩子们学一些数学思维呢?”云岗很赞同,我们就一起组织了一个小SIGMA数学特别兴趣组,权且由包云岗、兰艳艳和我担任老师,学员就是我们自己的孩子。 在这个特别兴趣组中,学生用书是通用的奥数教材,不过教师用书可不太普通—我们用的是G. Polya写的《怎样解题—数学思维的新方法》(How To Solve it)和陶哲轩写的《陶哲轩教你学数学》。换句话说,我们践行的是Polya的数学教育观—重在倾听孩子们的理解和猜想,重在引导孩子们观察、尝试、联想、归纳、做“合情推理”,总之是一种“慢数学”的风格,有时候我们甚至2个小时只讲一道题。 一开始的确看不出成效,但等到三年下来,才慢慢发现孩子们有了一些进步—当然,这些进步不是指孩子们参加某个杯赛拿了个奖,而是指孩子们掌握了一些基本的数学思维,体现在自己能够提出和证明一些猜想,比如包若宁、卜文远、魏文珊小朋友提出了三阶幻方的“包卜魏猜想”,傅鼎荃小朋友在学习“鸡兔同笼”问题时,完全自主地想出了“二分法”。在思维火花迸发的尤里卡时刻,孩子们兴奋得又喊又跳;躬逢其时,我们也非常欣慰—这是对教师*大的肯定和褒奖。 等到了2020年春节,因为出现疫情,孩子们都憋在家里,很是无聊,就嚷嚷着让我们教他们编程。教一门编程语言容易,但是关键不在这里,而在于教“计算思维”,这给我们出了一个不小的难题。 事实上,包云岗、兰艳艳和我都在中国科学院大学教计算机科学与技术:包老师讲授“操作系统”,负责“一生一芯”实践计划,讲解如何设计CPU和计算机系统;兰老师讲授“机器学习和人工智能”,训练计算机怎样学习;我讲授“计算机算法设计”,包括怎样观察问题和求解问题。简而言之,我们教的都是“计算思维”。 不过我们面向的都是本科生和研究生,能否教小学生计算思维?教什么?怎么教?这对我们来说是全新的挑战。这可不像教数学,还有Polya和陶哲轩写的书能够当作教材,给我们一些指导。 我们在开课前思考了很久,教的时候又边教边琢磨,把教授本科生、研究生的计算思维进行裁剪和修改,形成了一个初步的“小学生版”计算思维。 所谓计算思维,其核心是碰到问题时如何观察、如何尝试,然后如何根据观察到的规律设计计算机程序来求解问题。下面这几条或许是*基本的计算思维: (1)先正向尝试理解题意,再反向求解问题 碰到一个问题如何下手?孩子们往往会对着问题发呆,感觉束手无策。这不怪孩子们,求解问题是“反向思维”,有时候的确不太容易一下子就想出来。 在这种情况下,“先正向尝试理解题意,再反向求解问题”是走出困境的一个好办法。以“鸡兔同笼”问题为例,可以先尝试一下“鸡有0只”,即使这个尝试非常粗糙也没关系,然后验证这个尝试对不对,不对再修改尝试,比如接着尝试“有1只鸡对不对”,如果不对再增加鸡的数目。 先尝试猜测一个解(或许这个解很粗糙,这不要紧),再验证这个猜测是否满足要求,不满足要求就修改;这种“尝试-验证-改进”策略是“试错法”,也是“逐步改进法”。正向尝试有助于理解题意,或许应该成为孩子们碰到问题时的“**反应”。 这种策略看起来很笨,不过却有三个好处:一是能够使孩子们动起手来,避免发呆;二是能够启发我们写一个求解的程序;第三点更重要,孩子们尝试不了几次,可能就会自己发现规律,想出更好的求解方法—这不是想象或夸张,SIGMA的孩子们就是这样想出求解方法的。 说得更远一点儿,计算机科学与技术里普遍采用这种“用正向尝试来反向解题”的策略。一个典型的方法就是神经网络的训练过程—尝试设置网络参数,做正向的网络传播,验证传播的结果,如果不好就修正网络参数,*终反向求解出网络参数。 (2)从*简单的做起 碰到一个复杂的问题怎么办?比如“四个和尚分馍馍”问题,唐僧师徒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年8月23日于北京中关村
作者简介
小SIGMA数学特别兴趣组的六名学员:包若宁,中关村一小四年级魏文珊,中关村一小四年级傅鼎荃,北大附小四年级张秦汉,北京双榆树中心小学三年级卜文远,中关村一小四年级谭沛之,中关村一小五年级 指导老师卜东波中科院计算所研究员。研究方向为计算机算法设计和生物信息学。在国科大讲授“算法设计与分析”,讲授问题求解思维。包云岗中科院计算所研究员。研究方向为计算机系统。负责国科大“一生一芯”实践计划,在国科大讲授“操作系统”,讲授系统思维。兰艳艳清华大学教授、前中科院计算所研究员。研究方向为统计学和机器学习。在国科大讲授“人工智能与机器学习”,讲授机器学习思维。
-
穿鞋子的猫-法国童话集
¥4.8¥13.8 -
超级英雄典藏故事集
¥20.6¥98.0 -
山海经
¥22.4¥68.0 -
汉字百讲
¥21.8¥68.0 -
小王子
¥4.5¥15.0 -
颠倒的一天
¥12.8¥39.0 -
中国民间故事
¥9.4¥22.8 -
简笔画10000例
¥15.5¥49.8 -
小时候就在想的事(八品)
¥12.6¥39.5 -
今天要去动物园/那行童书
¥16.7¥49.0 -
格列佛游记/世界经典童话绘本
¥5.4¥15.0 -
诗词的故事典藏版(九品)
¥5.1¥19.8 -
写给孩子的趣味逻辑学
¥13.7¥38.0 -
中华姓氏地图
¥14.2¥59.8 -
尼尔斯骑鹅旅行记-亲近文学大师阅读世界经典-全译本
¥11.9¥36.0 -
怎样写作文-大师教我学知识
¥10.5¥25.0 -
会发光的小狮子:《恐龙世界奇遇记》
¥14.0¥52.0 -
101个趣味模块-101种创意游戏
¥13.2¥33.5 -
慢悠悠的压路车(八品)
¥14.4¥45.0 -
好慢好慢的毛毛虫公交车+甜甜圈逃跑啦
¥21.1¥78.0