孩子学少儿编程应遵循哪些原则
关联学习者已知的内容
学习的步是要将学生已知的东西联接到他们即将要学的东西上。没有人来到课堂的时候是一张白纸。学习是一个理解世界的过程。我们用已知的东西来使新现象变得合理。
但凡有老师说,“这和你之前所见到的完全不一样”,“你需要忘记之前学的一切”,这都是在帮倒忙。
数十年来的认知心理学学者们都表示,应该将新的内容和之前学过的内容联系起来。所以步就是需要明白学习者已经知道的,和他们所关心的是什么。
保持低负荷的认知状态
当我们关注某件事物时,人类的工作记忆是细微和短暂的。我们可以注意到“神奇数字7”,但是词语只能记到5个,而对儿童和青少年来说甚至更少。我们低估了现代编程语言需要多少认知负荷,因为作为编程领域的教师,我们大部分的编程语言都是现成的——我们是在没有注意到细节的情况下无意识地完成的。
多一点真诚,少一点套路
当下,科学家经常谈到真实性的问题。学习者想学习真实的、有价值的东西。真实感有各种不同的形式。你是否像教师一样做事?你是否使用相同的工具并以同样的方式工作?学生们被考核的内容,是否是让他们在课堂以外取得成功所需一些概念和技能?学生们是否发现这些活动对他们个人来说是有意义的?
学生们不需要用Java和C语言来做一些实在、真实的事情。他们应该去做一些实事,去探索在计算机科学领域里的重要想法,并且钻研得越深越好。
相反,如果一个编程工具只能让学生们去操控一个机器人或者图标,那么这本身就是不真实的。它不能够代表真实的计算机科学的样子。
我们不想限制学生们,但是一种对于教师来说合适的语言,对新手学习者来说未必如此。教师们有自己的知识储备,他们能做很多事情,但不会增加认知负担。对学习者来说,用大量技术行业标准化的语言没有太多好处,因为它们通常太过于复杂。
我们应该传授学习者有用的语言。如果你只是想要修复一个松动的楼梯,你不需要拿着钉枪去学木工手艺。我们的目标应该是让孩子们用编程语言去探索一些复杂的主题,然后去拓展他们创造力和潜在的创新能力。
高产一些!
计算机程序是一种能让我们表达和交流想法的媒介,这也是其他媒介无法做到的。对孩子们来说,计算机编程应该是一种能帮助他们探索复杂想法的技能。
孩子们必须学会用编程来产生新的想法,并在探索新领域时有所产出。
编程语言很重要。与使用代数方程相比,学生用编程来学物理时,能学到其它不一样的东西。
如果没有语言和标记的载体,编程也无法做到高产。一个只能用来设计app和游戏、却不能辅助思考的编程工具,恰恰使编程学习者错失了编程的一个优势。
测试,不要盲目信任
在为孩子选择编程语言时,困难的部分是我们意识到,我们不再记得自己做孩子时的样子,也无法像一个孩子那样去思考。
作为教师,因为这些固有的潜在知识使我们在思考这个问题上存在盲点。我们已经回不到学会编程以前的状态了。所以当一个教师说,“噢,这很简单,任何孩子都可以做到”,千万不要相信他们。测试,而不要盲目信任。
我们甚至不能依靠老师们来决定什么是真正适合孩子的。虽然老师们比计算机科学家要好一些,但是只有那些的老师才善于知道对孩子来说,难点在哪儿。由于计算机科学教育还刚刚起步,很少有老师真的知道对孩子们来说,什么是难的,什么是简单的。我们需要不断地在课堂上尝试,用时间来检验成果。
有时我们听到一种说法,只有程序员以及计算机科学家才是真正在技术工业体系中使用编程语言的人。但事实上,超过一半的程序猿并没有在从事技术工业领域。
教孩子们那些可以自由获得,无处不在,并频繁被那些专业的编程人员所用的编程语言固然诱人,但是那些专业的工具,对初学者来说并不是学习的编程语言。但幸运的是,目前市面上一直在有人为孩子们设计着无处不在的编程语言。