面向3-8岁的幼儿儿童
免费编程入门启蒙网站

儿童学编程,教什么语言好?

我家小孩在六岁时接触过类似scratch的编程语言,后来觉得太简单,了无趣味,就没有继续学习。小学三年级快结束时,我感觉时机差不多了,小孩也有学习的意愿,于是放暑假后就开始正式的编程教学了。

我用的编程语言是经典的函数式编程语言Haskell,按常规的学习方式来学习。为什么用Haskell,主要是我觉得函数式编程是比较适合小孩的思维的,我也想验证下我的想法是否合理。另外Haskell是函数式编程语言中语法噪音最少的一门语言,非常接近数学的代码形式,可以减少小孩学习的障碍。最后,函数式编程语言中我只对Haskell是比较熟悉,我能够较好的把握教学的难度,尽量不要过早接触比较抽象和高深的概念,尽量用比较浅显的方式来教学。

大致的过程是先教整数、字符、字符串、布尔值这四个数据类型,教些简单的加减乘除的函数,字符串连接的函数,分支处理表达式。然后开始教列表类型,由字符串而来的简单的列表操作。在这些基本概念都清楚后,开始教递归,用递归实现sum、product、any、all这些函数,用递归实现filter函数,用foldr将sum、product、any、all这些函数统一起来,用递归实现map函数,将map、filter也都统一用foldr函数实现。在实践上学会用递归求解汉诺塔问题,然后希望可以独立实现一个九九乘法表的输出。

在经过二个月左右的教学尝试后,觉得Haskell还是可以用在小孩的编程教学上的,前提是逻辑能力和英语能力已经有一定的基础,可以接受编程的思维方式。另外尽量用接近数学的方式来讲函数式编程的思维方式,讲具体直观的例子,用好ghci、ipad、纸和笔。

函数式编程并没有那么可怕的,对于零基础的人来说,函数式编程的思维方式更容易接受,有命令式编程基础的人反而有着各种理解上的障碍。

作者:parker liu
链接:https://www.zhihu.com/question/19705160/answer/232556205
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

分享到: 更多 (0)