针对反对C++精灵库的回复二:

有讨论才是好事啊,我乐于见到有这样的回复.

其实你的观点非常典型,代表了传统编程教育中“唯算法论”和“精英筛选论”的立场。
你的核心逻辑是:”C++难在算法,入门语法不难,所以不怎么需要过渡;如果连语法都学不会,说明不适合学,应该被淘汰。”
这自己从事这行这么多年,我比你清楚,所以我才要设计C++精灵库.

我们的教育理念的差异就是,你是“漏斗思维”(筛掉学不会的),而我是“脚手架思维”(帮学不会的学会)。
你还是老一套的C++就是用于算法竞赛,你(固)窄化了C++的用途,
而我则是打破规则者,C++也可以面向大众用于素质编程教育,进行兴趣启蒙.

你这个观点代表了很大一部分人,在“选拔天才”的视角下是成立的,
但在“少儿编程教育”的视角下,存在几个认知误区。

我分几点与你探讨:
第1,你低估了“语法墙”背后的“认知负荷”。
你说变量声明、函数格式不难,确实,对一个成年人或14岁以上的理科生来说,这很简单。
但你忽略了9岁普通孩子面对C++时,学的不是单纯的“语法”,而是“计算思维”的转换。
从Python到C++,孩子要同时面对:静态类型、内存概念、编译链接、头文件、分号等。
这在认知心理学上叫“认知超载”。C++精灵库并不是为了教“变量怎么写”,
而是通过可视化的反馈,把“编译报错”这种抽象的挫败感,转化为“画不出图”的直观问题。
它降低的不是“语法难度”,而是“认知负荷”。

第2,你混淆了“筛选教育”与“启蒙教育”的目的。
你的逻辑是“入门困难=不适合学C++ =应该放弃”。这是典型的“漏斗筛选思维”,
适合用来选拔信奥赛苗子,但不适合用来做大众编程启蒙。

我的逻辑是“入门困难=需要更好的脚手架=帮他们平稳过渡”。
如果因为孩子一开始觉得C++枯燥、报错多就判定他“不适合”,
那我们会错失多少有潜力但只是认知发展晚一些的孩子?
教育的本质不是用高墙把普通孩子挡在外面,而是修一条缓坡,让他们也能看到山顶的风景。

第三,关于“耽误时间、浪费金钱”的伪命题。
你认为精灵库是“画蛇添足”,是因为你把“画图”当成了目的。
实际上,精灵库只是C++的“皮”,C++的“骨”一点都没少。
孩子在精灵库里写的每一行代码,依然是标准的C++语法,
依然要经历编译、链接、运行的完整过程。他们不仅没有少学,
反而因为有了图形反馈,对“函数作用域”、“参数传递”的理解比死记硬背控制台输出的孩子深刻。

第四:
你说C++精灵库不考试,所以不用学,那就是太过于功利化了,甚至短视了.
学习的目的从来都是自我成长,自我完善. 就像高考,不是为了要高考而去高考,
每个人要找到自己的兴趣点,这样在人生的道上才能走得更远.
C++精灵库提供了一个这样的兴趣点,有的孩子会喜欢,能学得下去,就是埋下了一颗种子,长大后就有可能长成参天大树.

并且C++精灵库的绘图代码和Python turtle一致,学了C++精灵库就等于基本学了Python turtle.
它们画图的底层逻辑也是一样的,所以它们就是双胞胎的关系,同一个思维灵魂,学任何一个都能切换到另一个.
学编程的本质就是学思维,我的思维学到了,这才是真正到手的,和具体的计算机语言无关了.

总结来说:
1 先Python再精灵库:不是浪费,是最优认知过渡,利用旧经验建构新认知,适配绝大多数普通孩子;

2. 先C++精灵库再Python:绝非鸡肋,先建立严谨代码思维,再学脚本语言会更加轻松,逻辑底层更扎实;

3. 中低龄直接精灵库:不是硬拔苗助长,是低压力、慢建构、打底子,避免后期劝退;

4. 高龄孩子直接标准C++:完全可行,高龄孩子认知成熟,本身就不需要过渡,我从未否定这一点。
了.我自己教学有些大孩子,都是直接标准C++,而对于C++精灵库,我只是到后来给他们提一下,
比如学递归的时候画二叉树.让他们知道原来C++也能画图啊.

或许你没有学过Python turtle等,也不是少儿编程行业从业者,对这些没有深刻理解,
你的逻辑只适合抽象思维成熟、自律性强、奔竞赛、能扛枯燥的少数尖子生;
而C++精灵库,我发现了和皮亚杰认知科学的契合度非常高,
它是为绝大多数普通孩子设计的科学认知过渡体系。

高手可以直攀高峰,但教育的意义,是让普通人也能有路可走、有梯可上、不至于在入门阶段被硬生生劝退.

 

 

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在杂谈分类目录。将固定链接加入收藏夹。

发表回复