图书前言

前言

历史的车轮滚滚向前,时代的潮流浩浩荡荡,青少年编程正以燎原之势席卷神州大地。从小学习编程,掌握计算思维,才能从容应对未来人工智能革命的挑战。

在这个悄然而至的人工智能时代,除了母语和外语,我们还应该至少掌握一种编程语言,如Scratch、Python、C/C++等。青少年学习编程,从Scratch起步,用Python接力,向C++挑战,最终成为未来科技的弄潮儿。

本书创造性地采用Scratch、Python、C++三种语言对照学习的方式讲授编程知识,通过大量数学和算法方面的编程案例,培养青少年的计算思维,帮助青少年从Scratch迈向Python和C++编程的广阔天地。

本书内容介绍

本书精心挑选和设计了105个妙趣横生的编程案例,涵盖古算趣题、几何绘图、数学广角、趣味数字、数字黑洞、妙算圆周率、曲线之美、神奇分形图、数学游戏、逻辑推理、竞赛趣题、玩扑克学算法等内容,为广大中小学生提供了一本编程进阶的参考教材。

我国的诗词文化源远流长,古代数学家文理兼修,为考生出的“应用题”也是那么富有诗意。比如,这道“诗”题——

远望巍巍塔七层,红灯点点倍加增;

共灯三百八十一,请问尖头几盏灯?

像这样的古算诗题,直到今天读起来依然朗朗上口,理解起来又浅显易懂。本书收集了一些妙趣横生的古算诗题,意在与读者分享和感受这份数学的诗意。

在浩瀚的宇宙中有能吞噬一切的神秘黑洞,连光也无法逃脱,而在数学上也有类似奇特的现象,人们称之为“数字黑洞”,它们会按照自身的规则“吞噬”掉一切数字,比如西西弗斯黑洞,它会将一切数字转换为123,并无限重复下去;而被称为“冰雹猜想”的数字黑洞,它会把任意自然数最终变换为1,而且它的变换过程有时简直“惊心动魄”,本书将带你领略这些妙趣横生的数字黑洞。

宇宙间万物极其复杂,而其构成却是简单的细胞、原子、分子等极微小的事物。在数学中,一条线段、一个三角形、一个四边形或一个六边形等这些看似简单无比的几何图形,按一定规则重复之后,却能产生令人称奇的复杂图案。本书将带领读者利用分形技术模拟大自然中的树木,创造一棵姿态万千的美丽分形树。

算法是程序的灵魂,可学起来并不容易。学习编程不仅要勤于思考,更要动手实践。在学习算法原理时,明明感觉自己懂了,但当编写代码时却又无从下手或是不得要领。本书将带领读者不用编程就能学习排序算法,通过扑克纸牌游戏来领悟排序算法原理,反复练习就能掌握它们,之后再编程自然倍感简单,小学生也能轻松掌握。

此外,本书还将带领读者感受数学之美,只要一个简洁的曲线参数方程,就能一笔画出妙趣横生的曲线图案,比如笛卡儿心形线、玫瑰曲线、蝴蝶曲线、菊花曲线等;还将带你触摸“数学皇冠上的明珠”,编程验证被称为世界近代三大数学难题之一的“哥德巴赫猜想”……

一言以蔽之,本书通过105个妙趣横生的编程案例,激发学生的求知欲望,引导学生向数学和算法领域前进。

编程工具的选择

本书涉及Scratch、Python、C++三种编程语言,下面介绍各种语言使用的编程工具和下载方式。

1. Scratch编程工具

本书的Scratch案例程序使用Scratch 3.0编写,读者可根据个人习惯使用Scratch 2.0,两者只是软件界面上的差异,实际功能相差无几。在本书资源包中提供有Scratch 3.0和Scratch 2.0两种版本的案例程序,以方便读者使用。

2. Python编程工具

本书的Python案例程序使用Python 3.7编写,理论上可用所有的Python 3.x版本。读者可用Python 3.7自带的IDLE环境或是Thonny 3.1.2 中文版编写Python程序。

3. C++编程工具

本书的C++案例程序使用Dev-C++编写,该软件只能在Windows操作系统中运行。如果读者使用的是Mac操作系统,可以通过在虚拟机中安装Windows系统的方式使用Dev-C++软件。另外,本书中C++绘图案例程序使用GoC软件编写和运行,该软件也只限于在Windows操作系统中运行。

4. 编程工具下载方式

读者可通过下面的百度网盘地址下载以上介绍的编程工具的软件安装包。

https://pan.baidu.com/s/1_5TrLMJagMWy8bHu3KjcrA

如果不方便输入以上网址或者由于某种原因无法访问,可以在“小海豚科学馆”微信公众号的菜单“资源”→“软件安装”中获取以上介绍的编程工具的下载链接。

推荐学习资源

1. 在线学习网站

从Scratch迈向Python和C++之路并不平坦,读者需要具备一定的Python和C++编程基础,推荐读者使用免费的菜鸟教程网站(RUNOOB.COM) 作为Python和C++学习手册。通过这个网站,读者可以随时查阅Python和C++的各种函数用法、语法规则等。RUNOOB.COM网站的Python和C++教程的链接如下:

http://www.runoob.com/python3

http://www.runoob.com/cplusplus

对于具有英语阅读能力的读者,还可以通过专业的cplusplus.com网站查阅C++参考手册,其链接如下:

http://www.cplusplus.com/reference

2. 推荐学习图书

学习专业编程语言Python和C++是一件颇具挑战的事情,如果读者已经具有Scratch语言的编程基础,那么将对学习Python和C++起到事半功倍的作用。对于打算学习Python和C++编程的小学生,建议先学习Scratch编程。推荐使用下面这本Scratch教材进行学习。

《Scratch编程从入门到精通》,ISBN 9787302508373,清华大学出版社。

对于年龄偏小的编程者,从图形化编程语言Scratch转向学习C++语言可能会感到困难,那么,可以先学习Python语言作为过渡,之后再转入C++语言的学习。推荐使用下面这本Python教材进行学习。

《Python趣味编程:从入门到人工智能》,ISBN 9787302528203,清华大学出版社。

3. 本书案例程序

本书附带的资源包中提供书中所有案例程序的源文件,包括Scratch、Python、C++三种不同语言编写的源文件。为方便Scratch编程者,提供Scratch 2.0和Scratch 3.0两个版本的源文件。

读者可以关注微信公众号“小海豚科学馆”,在公众号菜单“资源”→“图书资源”中获取本书资源包的下载方式。

另外,在公众号菜单“课程”→“Python编程百例”和“C++编程百例”里分别提供了100个Python和C++的编程案例方便读者练习。

在线答疑平台

本书提供QQ群(450816902)、微信群和“三言学堂”知识星球社区等多种在线平台为读者解答疑难问题和交流学习。添加微信号87196218并说明来意,可获得邀请进入微信群和“三言学堂”知识星球社区。

关注微信公众号“小海豚科学馆”,在公众号菜单“资源”→“图书资源”中可查看本书最新的勘误信息。由于作者水平所限,本书疏漏在所难免,敬请读者朋友批评指正。

本书适用对象

本书适合有一定Scratch、Python、C++编程基础的中小学生和编程爱好者使用。如果读者想进一步提高编程能力,本书将是一个非常好的选择。

千里之行,始于足下。让我们一起开始妙趣横生的编程之旅吧!

谢声涛

2020年3月

本书配套资源包.zip(扫描可下载使用)