查看原文
其他

Vita君的一年级书单盘点 | 计算机科学篇

周花卷 周花卷 2019-12-26


之前我在公众号文章也偶尔提到过Vita君读过的一些书,后来有朋友让我写个完整的盘点,于是就有了这篇。


上期书单链接:Vita君的一年级书单盘点 | 数学篇


本期盘点的是计算机科学类的书,这些书都是Vita君一年级这一年读过或部分读过的。为了方便大家直观理解和选择,本篇书单按难度从低到高排序,实际适用年龄大约是7~12岁。



《看里面:揭秘计算机》



这本书是娃去年10月参加QCon4Kids代码捣鼓日活动得到的奖品,上面还有阿里云CEO王坚的签名。


《揭秘计算机》是由乐乐趣童书引进的英国尤斯伯恩(Usborne)出版的Look Inside(看里面)系列中的一本,用翻翻书的形式介绍了计算机的一些基础知识,比如计算机的原理和构成、什么是编程、网络是怎么回事等等,内容都比较简单,翻翻书也很好玩,是一本不错的计算机科普书。


不过需要注意的是,乐乐趣引进的这个版本现在京东自营已经下架了,上面的链接是接力出版社引进的另一个版本(内容应该也有区别),原来乐乐趣的版本在京东其他第三方店铺还有,大家可以按喜好选择。



娃挺喜欢看这本的,但可能因为内容简单,所以翻完两遍就丢书架里了,一年级寒假又拿出来翻的时候,跟我说他发现书里有个错误,我一看好像还真的是个错误,于是我建议他给出版社发了一封邮件:



后来经过编辑确认,这个地方是一个翻译错误,原文是“change score by 1”,意思是“增加1”而不是“改成1”,看来翻译同学没玩过Scratch,而且没有仔细看懂代码,Hmm……


好了,瑕不掩瑜,作为一本计算机科普入门,这本书推荐给对计算机感兴趣的孩子们。



《嘭!编程超有趣》


这本书的译者陈少芸是我的朋友,也是她推荐给我看的。这本书并不讲解具体使用某种语言的编程方法,而是讲解了编程中的一些共通概念,例如变量、数组、数据类型、逻辑运算、函数、面向对象、算法和数据结构等等。



这本书整体上风格还是比较轻松的,虽然有一些示例代码,但是看不懂也不影响理解它里面介绍的这些概念,所以很适合用来帮助孩子对编程中的一些基本概念建立一个初步的认识。



《Scratch 3.0 少儿编程趣味课》

《Scratch 3.0 少儿游戏趣味编程》


这两本都是Scratch的书,其实市面上Scratch的书有不少,但是很多都是基于较老的2.0版本编写的,这两本算是跟进3.0版本比较快的书,内容也很不错。其中《编程趣味课》这本是按照Scratch的功能模块,结合实例来进行讲解,有点像是一般课程的编排形式;而《游戏趣味编程》则是以一个个游戏案例为线索,在制作游戏的过程中学习这些功能和指令的用法。



其实Scratch本身非常简单,我原本并没有打算让娃花时间学这个,但是因为要让他带班里的其他一些同学备考中国电子学会的青少年编程等级考试,这才丢了两本书给他研究一下。出乎意料的是,他看过这两本书之后,基本上就能够熟练运用Scratch的绝大多数功能了,还能做出比较复杂的作品,考试的题目做起来也很轻松,所以说还是一本非常受用的书哦。


Scratch除了编程本身,还可以作为创意工具来来制作交互式创意内容,从这一点来说,这本书的案例提供了一些创意参考,孩子有自己的想法时,可以参考其中的一些方法进行实现,或者是对这些案例进行扩展和发挥,从而制作出自己的作品。



《我的第一本算法书》


这本书我觉得应该重点推荐一下,因为娃真的很喜欢看。


这本书是用图解的方式来讲解各种算法,包括各种排序算法、二分查找、广度/深度优先搜索、二叉树、最小生成树等等,并且还介绍了一些密码学的算法,比如对称/不对称加密、哈希函数、数字签名等等,内容非常丰富。



不要看内容很多,但其实每种算法都是用一张一张彩图来进行讲解的,算法每运行一步,状态会变成什么样,都展示得非常清楚。娃看过这本书之后基本上可以描述出几种经典排序算法的原理以及它们的复杂度,我们还一起对其中一些算法进行了实现,感觉收获很大。



值得一提的是,这本书的作者还制作了一款配套的App,名字叫做“算法动画图解”,iOS和安卓平台都有,不过解锁全部内容需要付费。这个App中把书上的所有算法都做了动画演示,看起来更加直观,比如说一个排序的过程,你可以看到数据是如何一点一点被排好序的,对于理解这些算法非常有帮助。



这本书推荐给想要了解算法是什么以及计算机到底如何完成特定任务的孩子们。



《啊哈C语言!逻辑的挑战》


这是一本C语言的入门书,作者啊哈磊是武汉地区的一位信息学奥赛(NOI)教练,我以前还看过他写的《啊哈!算法》 ,而且还加了微信好友,偶尔有一些交流和互动。


C语言是一门经典的编程语言,是大学计算机专业的必修课,也是NOI的指定语言。按照啊哈磊的话说,C语言的好处是“纯粹”,“没有什么乱七八糟的东西”,但与此同时,学好C语言必须要深入了解计算机的一些底层原理,特别是和内存相关的东西,所以对于初学者,特别是对于孩子来说并不是特别友好。


啊哈磊的这本书写得非常浅显易懂,内容涵盖了C语言的基本语法、控制结构等知识,而且他从奥赛教练的视角穿插了很多NOI/NOIP的例题,这对于让孩子直观地理解“奥赛到底考点啥”很有帮助,推荐给想要进一步学习算法并对参加信息学奥赛有兴趣的同学。



顺便提一句,现在啊哈磊搞了一个“啊哈编程星球”的项目,推出了亲授的线上C/C++趣味入门课程,面向小学中高年级的孩子,只要19.8元,看在好友的份上,我帮他打个小广告吧。



《少儿编程思维训练:65道题提高孩子计算思考力》


这本书很有意思,乍看之下是一本讲Scratch的书,但翻开之后你就发现内容十分硬核,这其实是一本很严肃的算法和计算思维读本,只不过里面的代码用的是Scratch(以及类似的App Inventor)来实现的——尽管我觉得Scratch并不是适合用来做这种事。



看目录,这本书几乎涵盖了所有经典的算法和数据结构知识,比如排序、递归、查找、栈与队列、哈希表、树、图论、贪心、回溯、分治、动态规划等等,以及编码、校验、加密等应用广泛的算法。其中很多内容非常经典,常见于各种算法教材,比如汉诺塔与递归法:



书里的代码都是用Scratch或者App Inventor这种积木式语言编写,作者的意图应该是要淡化编程语言的具体特性,虽然我觉得这种代码理解起来很费劲,不过孩子可以用Scratch上手试验,也可以尝试把它转写为C、Python等其他语言。比如递归这部分用的是App Inventor,应该是因为Scratch的函数不能设定返回值(已经被吐槽N次了哈哈哈)。



这本书娃断断续续读过几遍,但是我相信他还没有全部看明白,没关系,这里面的很多概念并不是很难懂,有些东西暂时只需要混个脸熟就好。


之前另外一个NOI教练朋友跟我说Scratch那些做小游戏啊啥的太没营养了,我找到一本书讲的这些还比较有“干货”,你看一下,然后他说的就是这本书。所以,如果要培养一下算法和计算思维的话,这本书还是很不错的哦,推荐给想要在算法和计算思维方面进阶的同学。



好了,计算机科学方面的书就这么多啦,至于还能不能写出另一篇“其他”类的书单,让我看看能不能凑出来吧,某娃读书口味太偏……



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存