少儿编程是智商税?还是未来的生存技能?
越来越多的孩子,尝试着参加信息学奥林匹克竞赛,这是这个时代的趋势。
孩子们天生就有好奇心,希望知道各种现象背后发生了什么,在工业时代,很多孩子沉迷于拆开各种机械、钟表,去观察齿轮的运转。
信息时代意味着几乎所有的一切都被程序控制着,了解程序是如何被编写出来的、程序内在的逻辑之美,是很多孩子的内在渴望。
与此同时,国家的政策也明确地推动着青少年学习编程,信息学奥林匹克竞赛并不是一个新鲜的事物,从 1984 年开始,中国的孩子就已经学习和参加这项竞赛,在国际信息学奥林匹克竞赛(International Olympiad in Informatics,IOI)中,中国学生成绩斐然,连续霸榜冠亚季军。
越来越多的孩子,将从单纯追求学科成绩为目的的校外学科补习,转为同时兼顾学习能力和综合素养,并对孩子人生发展具有长期价值的学习方向。
学习编程,并以信息学奥林匹克竞赛,作为奋斗目标是众多素质教育科目中优势最为明显的学科。
信息奥林匹克竞赛的主流编程语言是 C 和 C++,是 20 世纪 70 年代早期发展出的编程语言,学习起来相当具有挑战性。提高入门阶段的学习成功率、激发孩子的学习兴趣,并保持学习动力,将成为孩子挑战信息学奥林匹克竞赛并一路超越自我获得优异成绩的关键,整个行业的优秀教练们一直在探索更好的教学方法。
很多人尝试将 C 语言入门学习趣味化,试图用有趣的案例来征服孩子,降低学习的枯燥性,并且取得了不错的效果,但也同时暴露了一些问题,产生吸引孩子的图像声音效果并不是 C 语言入门阶段擅长的方向,一些晚出现的针对儿童的图形化编程语言,很容易吸引孩子的注意力。
同时,信息奥林匹克竞赛考察的是孩子思维能力,过度地追求趣味性,和我们最终的目标存在着不小的偏差,所以我们需要重新思考什么样的入门才更适合孩子完整的学习周期。
成功的编程语言尝试用最少的语法规则来实现尽可能多的功能,目前 C 语言的主流教学方式依然延续着大学中的模式,学生需要一点点地将 C 语言的语法规则学会并运用起来,因为规则是别人定的,而学习者只能被动地接受,所以难免枯燥无趣。
如果只是将编程作为一项技能,一个谋生手段,那么这样做无非就是成功率低了一点儿,但是面对正在探索这个世界的青少年,这样做没有办法让他们形成对这项技术更高的认识。
我们希望培养出未来的计算机科学家,不仅仅可以使用别人给出的规则,更要深刻理解编程语言设计的逻辑,有朝一日,或许这些孩子可以设计出更好的编程语言,所以我们要带领着孩子站在发明编程语言的角度上来看待这项技术。
即便聚焦在信息学奥林匹克竞赛这个方向上,决定一位选手能否获得优异成绩并走得更远的最重要的因素,不是他学到多高的程度、能否遇到好的教练,而是他是否在入门阶段就有足够的学习动力,并深刻地理解编程语言的底层逻辑。
《假如 C 语言是我发明的:讲给孩子听的大师编程课》一书在此背景下应运而生。
本书作者多年来培养了数千名参加信息奥林匹克竞赛的学生,基于自己的教学经验和思考,以信息学奥林匹克竞赛为目标,用心编写了这本 C 语言入门的书籍。
作者把孩子带到发明 C 语言的年代,与孩子一起面对计算机科学发展道路上遇到的一个个难题和挑战,假设我们就是当年的计算机科学家,思考我们会如何解决这些问题;讨论假如 C 语言是我发明的,我是否还会发明这些规则。
这本书并没有简单地迎合孩子想要的趣味案例,而是针对 C 语言和计算机科学进行深入的探讨,给孩子带来好奇心的满足和成就感,这样的引导会让孩子更高效、深入地理解 C 语言,为未来学习更加复杂的算法打下坚实的基础,助力孩子攀登信息学奥林匹克竞赛高峰。
每一个孩子都该学习编程,信息学奥林匹克竞赛是对学有余力孩子的智力挑战,孩子是否有这个方向的天赋,需要通过机会尝试一下。
这本书有非常好的可读性,完全可以送给孩子,万一他是个天才呢?
图 书 目 录
第 1 章 程序小萌新“Hello World!”
1.1 人类天生就是程序员
1.2 驾驭计算机
1.3 编程的魅力
1.4 我们发明的 C 语言,计算机认识吗
1.5 “Hello World!”是个“梗”
1.6 出发!编程大神
1.7 让我们的程序运行起来
1.8 输出没那么容易
第 2 章 计算机是个数学天才
2.1 先算个 1+2 吧
2.2 C++的显示进化
2.3 计算机只会算加法
2.4 小学生的除法
2.5 小学生会余数
2.6 C 语言也遵守优先级
第 3 章 过目不忘的计算机
3.1 内存和外存是个天才的设计
3.2 数据有类型
3.3 给内存地址起个名字
3.4 计算机认识整数
3.5 变量赋值
第 4 章 只认识 0 和 1 的计算机
4.1 内存地址长啥样
4.2 计算机只有两个手指头
4.3 在二进制和十进制之间穿梭
4.4 不是只有二进制
第 5 章 终于能够输入了
5.1 能保存,才能输入
5.2 C++的输入
5.3 计数器
第 6 章 多种多样的数据类型
6.1 整数类型的基础知识
6.2 字符类型
6.3 ASCII 编码
6.4 小数类型
6.5 整数类型还没完
第 7 章 高级运算能力
7.1 数学运算符的运用
7.2 显示二进制数
7.3 拆解数字的每位
7.4 字符的运算
7.5 赋值竟然也是运算
7.6 交换两个变量的值
7.7 逗号也是运算符号
第 8 章 能够支持所有的运算,太“天才”了
8.1 负数的表示
8.2 按位非运算
8.3 按位与运算
8.4 按位或运算
8.5 按位异或运算
8.6 移位运算
第 9 章 计算机聪明的根源
9.1 会判断的程序才聪明
9.2 找出更大的数
9.3 等于号是个陷阱
9.4 判断大小写字母
9.5 非法的成绩
9.6 好学生划分
9.7 不仅仅判断大小写
9.8 简易计算器
第 10 章 处理大量的数据
10.1 数组
10.2 数组元素交换
10.3 集体后移
10.4 数组地址的秘密
10.5 字符串
第 11 章 疯狂运算的计算机
11.1 while 循环
11.2 数字累加
11.3 统计字符串中字符的数量
11.4 将字符串中的小写字母变成大写字母
11.5 大小写字母的相互转换
11.6 break 和 continue
11.7 人性化的 for 循环
11.8 判断质数
11.9 水仙花数
第 12 章 烧脑的循环
12.1 100~200 中的质数
12.2 画出一个矩形
12.3 画出一个三角形
12.4 九九乘法表
12.5 陶陶摘苹果
12.6 级数求和
第 13 章 二维的世界
13.1 二维数组是骗人的
13.2 翻转照片
13.3 邪恶的指针
第 14 章 团队作战
14.1 Hello!函数
14.2 参数的困局
14.3 在函数中指针的特别功效
14.4 引用才是进化方向
14.5 用数组做参数
14.6 判断质数
14.7 字符串原地逆序
14.8 用函数实现求水仙花数
第 15 章 管辖范围
15.1 神奇的大括号
15.2 大部分都是局部变量
15.3 终极全局变量
15.4 静态局部变量
第 16 章 排排坐、分果果
16.1 选择排序
16.2 冒泡排序
16.3 插入排序
16.4 桶排序
16.5 随机数
16.6 二分查找
第 17 章 复杂的数据
内 文 抢 先 看
粉丝专享 49 元包邮,快快扫码抢购吧!
评论