儿童程序设计到底是在教什么?

  教的是一种「运算思维」能力

  先来解释一下,何谓「运算思维」,这是一种解决问题的方式。

  这听起来似乎有点玄,但这可不是帅爸小编径自开心所下的定义,而是知名的华裔电脑科学家周以真博士(Jeannette M. Wing)在2006年发表的《运算思维》(Computational thinking)研究中,所定义的概念。

  她认为运算思维是一种思考方式(再听一次,还是有点玄),是用电脑科学所能有效执行的方式来对问题进行表述并提出解决方案。

  是该说点你我比较听得懂的话了,简单来说,就是「用电脑的思考方式来解决问题」!

  「运算思维」能力能干嘛?

  你和我和他,你们、我们、他们……每天总有处理不完的事,很多时候事情还像剪不断,理还乱的线球般,纠结成一块,到底该从哪件事开始理,甚至很多人都无从解起。

  举个例来说,全职妈妈得在晚上七点前煮好一顿晚餐、陪大宝写功课、帮二宝洗澡、打包好家里的垃圾、把下午晾晒好的衣物摺叠好……等等这些事情都得处理的情况下,你要如何利用处理现有资源分配时间呢?

  把七点以前需完成的待办事项看成是一套操作系统,电脑便会在系统之下,调配有限资源,完成所有任务。若完成不了,就crash掉了……

  为了不要凄凄惨凄凄,就得掌握运算思维的能力。运算思维有几个重要过程组合而成,分别是:拆解、规律、归纳、算法。

  1.拆解:将一个问题拆解成数个步骤。

  2.规律:预测问题的规律,并找出模式进行测试。

  3.归纳:找出模式中的重要原则及关键因素。

  4.算法:设计出解决类似问题的指令流程。

  这套能力就是电脑思考方式的关键!即便是一个庞大又错综复杂的问题,也必须先切成小步骤来看待,之后找出规律、进行归纳,最后设计出演算法,以待下回相同任务时,可以启用。

  教的是一种「创造力」

  程序设计是发挥创造力的最佳利器,千万别以为程序员是不懂得应变的,顶多就是不擅交际而已(喂~~)。这里想说的其实是,即使面对的是相同的项目,也不可能有两个人写出一模一样的代码,程序设计的领域有千万种解法,端看设计师的功力(经验累积)以及发想(创造力)堆叠而成。

  教的是一种「逻辑思维力」

  数学不好,是不是程序设计也学不好?

  这大概也是很多父母的窠臼,总觉得那些看似漫天飞舞的代码,一定需要深厚的数学底子作为后盾,才能将代码梳理的炉火纯青。

  其实帅爸认识很多程序员数学都不好!这么一讲,应该可以让很多爸妈安心地抛开数理偏见了。

  程序设计其实更看重「逻辑思维」的能力,从发现问题、观察问题到解决问题的过程,无疑不需要清晰的逻辑来加持,你总不希望好不容易写出来的代码,执行时出现断点,整天都在debug吧!