终于有一套书,可以深度融合编程和数学,全方位提升孩子思维高度了
看点 市面上,编程书不少,但能让编程和数学结合起来的书却不多。《给孩子的计算思维书:图形化编程及数学素养课》这本书,就融合了计算思维与图形化编程思维,手把手地教孩子学会思考,从易到难进行系统性学习,培养并不断提高他们分析和解决问题的能力。
本书的缘起
早在2017年,还在上海从事少儿编程培训的一位中科院学弟找到我,吐槽了他在编程启蒙培训遇到的一个困境:市面上缺少把编程启蒙和数学紧密结合的课程和书籍。在他看来,计算机科班出身的我是最适合做这件事的人选。
确实,市面上大部分所谓的编程与数学结合,实际上是利用计算机强大的算力去协助解决数学问题,比如寻找水仙花数,计算1+2+3+...+1000000。事实上,这些只是印证了计算机的快速,对数学思维的培养没有额外的作用。
除了编程与数学的结合,计算思维的启蒙也是当前的一大需求。但是,市面上关于图形化编程的书虽然很多,但大多是素材的堆砌。看这类书学点技能是没问题,但缺乏思维的高度。自那时起,我就萌生了写一本能全方位渗透计算思维的少儿编程启蒙书。
在我看来,好的计算思维启蒙书,应该给我们360°全景展示分析和解决问题的过程。
从2017年开始,我就尝试着在这方面做些工作。这期间,我花了不少时间调研了伦敦大学设计的一个为期两年的scratchMaths项目,这也是为编程零基础的孩子设计的一门课程,算是真正做到在scratch教学中深度融入数学概念和思想。
后来,我也陆续让本科生和研究生辅助设计过一些案例,自己也参加过青少年编程能力等级标准(图形化)的起草。这些,都成为了这本书的缘起。
对图形化编程的认知误区
社会上有不少人对图形化编程持有偏见。他们认为仅仅是积木拼搭而不写代码,最多只能算玩玩,算不上编程,更培养不了计算思维。而市面上现存的许多良莠不齐的图形化编程书也加深了这些人的偏见,因为这些书大多是编一些游戏,谈不上计算思维的培养。
图书内页
其实不然,计算思维是一种思维的培养,与具体的编程语言无关。图形化编程目前之所以没有很好地起到训练计算思维的效果,问题不在于图形化编程本身,而在于市场把图形化编程的学习下放得太厉害。
很多机构都把图形化编程下放到三年级以下。在小学一二年级甚至是幼儿园,逻辑与数学基础都不具备,怎么去熏陶计算思维?
如果在更高的年级(比如小学中高年级)去学图形化编程,那完全可以作为计算思维训练的载体。
本质上来说,计算思维的训练与具体的编程语言无关。这就好比一个人的文学修养与他所使用的语言没有关系,文言文可以写出优秀的文学作品,现代白话文和英文同样可以。
图书内页
计算思维的培养甚至都不需要计算机,目前国外有一门课叫Computer Science Unppluged(国内叫不插电计算机科学),就是通过玩游戏等方式培养计算思维。
编程的难易主要取决于两个方面:一是程序设计语言的友好性;二是所要解决问题的难度。
这两者,起决定性因素的是后者。从最早的机器语言到汇编语言到高级语言再到现在的图形化编程语言,程序设计的语法已经变得相当友好了。但无论用哪种编程语言,会写八皇后问题的程序员比例还真不高。
这就好比英国人觉得法语要比中文容易学。但不管怎样,只要肯学,学会说一门语言并能与人交流并不是难事,但要用任何一门语言创作一首诗歌或一篇小说都不是件容易的事。
本书的特点
本套书通过学习编程的形式培养计算思维,并将数学融入其中,分为基础篇和进阶篇。
基础篇主要介绍如何从零开始学习 Scratch图形化编程,并无缝地嵌入了计算思维与相关数学知识。书中特别设计“数学小知识”栏目,讲述相关的数学知识,包括同余、内角、外角、加法原理和乘法原理、勾股定理、对 称、映射、不同进制间的转换、因数等。
进阶篇进一步提升学习难度,通过编程启发思考,从而锻炼与提高孩子的计算思维能力。涉及的数学知识包括概率、斐波那契数列、指数、素数、最小公倍数、最大公约数等。
与其他图形化编程图书相比,本书有两大特点:一是数学与图形化编程的深度融合,二是计算思维在图形化编程中的无形渗透。
同时,本书配有编程项目文件,可供孩子下载学习及实践。本书可以系统地培养并提高孩子的计算思维能力与数学素养,孩子未来可轻松地切换到其他程序设计语言的学习。
下面具体介绍一下本书的这两大特点。
本书的第一大特点是数学与图形化编程的深度融合。
这种融合不是简单地利用计算机的计算能力去暴力求解数学问题,而是把数学的概念和原理无缝地渗入到编程之中。
比如:通过绘制五彩缤纷的多边形,孩子自然就学会了角度、正多边形、旋转、奇偶性、染色等丰富的数学知识。
又比如,通过设计十进制计数器、非十进制计数器以及时钟,孩子自然就深入理解并掌握了进制的知识。
图书内页
本书的第二个特点是计算思维在图形化编程的无形渗透。
我们国家目前的编程教育存在一个问题,就是重算法轻结构。我在大学从事计算机专业的教学工作,发现这个问题在本科生或研究生写的程序里体现得非常明显。很多学生学完了C++、知道抽象类和继承的语法,但却不知道如何在大型程序中运用,对模块化和代码复用的训练偏少。
但是,计算思维不仅仅是算法!
我曾经参与起草过由全国高校计算机教育研究会、全国高等院校计算机基础教育研究会、中国软件行业协会、中国青少年宫协会4个团体联合发布的《青少年编程能力等级标准:图形化编程》。在那篇标准文件中,我把数学思维和结构化思维的培养放在了与算法同等重要的位置。
这一思想也被贯穿到了本书的撰写中。这本书并不是简单地让孩子搭积木玩一玩,了解一下编程的规则,而是更侧重于计算思维和编程素养的培养,因此更适合于小学中高年级的孩子,也适合少儿编程的从业者们。
图形化编程通过坐标系统、对象与角色、消息与消息传递、事件处理、模块化和代码复用等,可以潜移默化地培养孩子的面向对象编程思想以及系统观。
到底什么是计算思维?我在《写给孩子的数学之美》一书中是这么说的:
在本书中,我进一步概括为:抽象、分解、算法思维、泛化和模式、评估、逻辑。
在书中,我把上面的思想无形地渗透到了各个部分。比如,对代码复用性的极致追求、对相同模式的识别、对代码泛化能力的追求以及对不同算法的评价。
图书内页
本书得到了李国杰院士和诸多业内专家的联袂推荐。
《给孩子的计算思维书:
图形化编程及数学素养课》
已上架外滩教育
点击下图
立即购买
注:周末或节假日发货可能有所延迟。
微信扫码关注该文公众号作者