关于纯少儿编程课程进化的自然选择

关于纯少儿编程课程进化的自然选择

大家好,我是李兴球。我来说下纯粹的少儿编程,不加任何硬件的。我也一直在实践所谓的纯少儿编程。我从2010年开始探索少儿编程,最开始探索了各种Basic语言的方言。用basic语言编制各种游戏之类。2012年左右,我发现了Scratch,然后一直到现在还在教Scratch。很自然的,就会想到教完Scratch最适合的计算机语言是什么。开始的时候是教Visual Basic。后来不断在外国网站上找,找到了Python。一直到现在以教Python为主。有些学生是可以直接学习C++语言,但它不适合大众。Python在设计之初就有一套哲学,垫定了它能作为大众化普及的东西,是人人都应该学习的。社会也需要一种这样的普及性的通用型的计算机语言。这就是为什么国家已经在某些省份进行Python试点的原因之一。


Python就像Scratch和C++之间的桥梁。没有这座桥梁,大部分学生更难跨越到C++。所以学习了Scratch之后,绝大部分学生的最佳选择是Python而不是C++。这是一种“自然选择”的结果。有人或者会说,直接学C++,Python以后直接一看就会了。这有点像是说:直接学初中数学,那么以后看小学的数学一看就会了。是有少部分学生可以直接学C++,那一般都是学霸级别的,相当于跳级。对于大多数学生来说,先学Scratch,再学Python,用Python能创造有趣的作品,能激发兴趣,这是一条正确的道路。学习都是从简单到复杂,而不是反过来,否则就是拔苗助长,灭了大部分学生的兴趣。80年代就开始了信息学奥赛,到几十年都没有普及,到现在也没有普及。但现在有这么好的条件了,学编程的学生越来越多了,所以信息学奥赛参加的人数也会越来越多。最佳学习路径就是Scratch到Python到C++,其实本质就是为了学个算法,为国家提供顶尖计算机人才铺路。

Python承前启后的作用相当不错。一般至少可以学个两年,学后就对编程有了相当的理解,而且在学习的过程中也会涉及一些不太难的算法。以后用其它计算机语言学算法就容易很多,而算法不一定需要用计算机语言来描述,用流程图即可。有趣的是,Python这种非常接近自然语言的计算机语言,它的代码有时候甚至比伪代码还要简单。理想的少儿学习编程的路径或许是,二三年级Scratch,四五年级Python,六七年级C++,八九年级要中考根本没空学。其实学纯代码类的编程入门并不难,学生要克服的主要障碍是不会打字。

少儿编程不像数学,英语,语文,课程都经历了几十年甚至上百年的更新迭代。已经有了完整的师资体系建设,课程体系。我认为少儿编程在今后十几年中最多也就能取得个像体育或者音乐课美术课一样的地位。发展到今天的Scratch -> Python -> C++这样分阶段学习,这是数字社会发展的必然。这是三种计算机语言。具体到一年级上学期学什么编程,下学期学什么编程?二年级、三年级、四年级….一直到高中,大学。而且社会的发展又是这么越来越快速。但中小学阶段,主要学习的是相对不变的东西。这其中算法就是其中之一。Python一样可以写算法,而且更优雅简单,而算法才是沉淀下来基本不变的东西。计算机语言的发展趋势是越来越接近自然语言,既然有更简单的能描述算法的好工具,那么人们一定会趋于使用更简单的,懒是人的天性。

势,是不可挡的。顺势而大有作为的是英雄,能看到势的是预言家。随着Python大军的壮大,用Python写算法的人会越来越多,用Python教算法的人也会越来越多。所以像《Python数据结构与算法分析》这样类型的书会越来越畅销。

说到底,从算法的角度来看。无论使用哪种计算机语言,最终都是为了具体化一个算法,即描述算法的工具。哪种工具最简单易用,人们最终当然会选择最简单的,而淘汰那些复杂的冗余的。

李兴球

李兴球的博客是Python创意编程原创博客