少儿编程并非让小学生学习敲代码,而是让学生通过学习编程思维培养一些能力。主要有几下几种:
构思能力。编程是一种“先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。
逻辑能力。编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在
逻辑思维中有个词叫做MECE(MutuallyExclusiveandCollectivelyExhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。
模式识别能力。在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1 5)×4相当于(1 5) (1 5) (1 5) (1 5),其中每一个(1 5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。
分解问题的能力。一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。
调试除错能力。任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里
面包含的能力很多,比如抗挫折力、观察力、专注力等等。