编写程序的目的是完成一个目标:例如实现一张电子贺卡。为了实现目标,需要对目标本身和实现目标的方法进行规划和设计。实现电子贺卡时就要考虑和设计:贺卡中存在哪些角色?使用什么背景图案?是否播放一段音乐?角色是否有动作和行为?如何实现角色的动作?如何协同多个角色的行为等等问题。这个设计与规划的过程完成了目标分解、演绎推理和创作,也是思辨能力、逻辑和计算能力的运用过程。
为了让贺卡角色的动作更加逼真,需要运用数学知识计算运动路径,需要运用物理知识来模拟运动方式,使其更自然、合理;同时也需通过美术和音乐知识来设计角色的造型、配音等等。所以编程也是一个对数学、物理、语言、美术等多种知识的综合运用过程。
通过学习编程,小朋友们既可以学习逻辑概念,提高推理、求解和计算能力,还可以在编程过程中逐步学习如何运用其它学科的知识,实际理解这些知识点的作用和价值。这样一方面能够巩固和加深理解小朋友已掌握的知识,另一方面能够促进小朋友对不同学科知识的学习意愿。 因此学习编程是对基础学科教育的良好促进方式。
编程是针对某个特定目标的“设计和实现”,具体就是对信息、素材和知识点的反复运用过程。 这个过程主要围绕两个方面展开,一方面需要确定使用哪些信息和素材、存在哪些问题和知识盲点;另一方面要通过创作、检索查询等方式获取信息、素材,掌握和运用知识点。
信息素材是编程的构成要素,因此通过编程可以引导小朋友充分发挥想象力和主动性,灵活地运用信息素材实现不同的目标; 同时在编程过程中逐步学习辨识、获取信息素材的正确方法,提高信息和媒体素养。
更加有价值的是:编程的目的是实现一个具体的目标,在客观上提供了一个实践、学习和验证知识点的真实场景, 因此对于在编程过程中存在的知识盲点,小朋友更有兴趣去学习,更容易理解和掌握。也就是说通过编程能够非常有效地增强学习意愿,逐步提高自学能力和自我指导能力,形成主动思考和学习的习惯。
相对于发达国家,我们的创新能力和开拓精神明显不足。除了社会环境等因素之外,国内现有的教育模式是导致这一问题的主要原因。
国内的义务教育和高等教育,完全是教材和应试驱动的单向灌输方式教育。从小学开始,小朋友们就开始接受“内容明确一致”、“范围明确一致”的输入教育,输出的仅仅就是标准答案,甚至包括成语的使用都是标准答案。持续接受十几年这种形式的教育,学生的思维方式严重固化,所以会迷信,缺乏创新能力和开拓精神。
发达国家,例如美国、英国的义务教育阶段只有教学大纲,没有教材,具体教学内容完全由教师决定。到了大学阶段,授课内容和形式就更加灵活。从小学到大学,教学形式有两个主要特点:一个是“命题式”教育;一个就是大量阅读参考书。 所谓“命题教育” 就是针对某个“问题领域”提出问题,由学生自行查阅资料、参考书,给出自己的答案。持续接受十几年这种形式的教育,学生的自学能力会不断加强,心理上对陌生知识领域也不存在畏惧感,而这些恰恰是具备创新能力和开拓精神的基础。
反观国内,人们普遍存在对未知领域的恐惧感,成年人的表现是普遍缺乏从零开始的拓荒能力,未成年人的表现是挫败感特别强,面临困难很容易退缩。
编程本质上就是一种“命题教育”。例如通过编程实现的目标就是一个命题, 小朋友需要自己去完成设计和规划,发现、解决其中存在的问题和困难,例如需要什么素材、定义角色和行为,实现逻辑和控制等等。对于编程过程中存在的知识盲点,小朋友要学习如何通过参考书、网络、求教于其他人等方式来获取答案, 从而帮助小朋友逐步接受和适应目标明确的主动学习方式。
“命题教育”的重要作用之一就是培养主动学习的意识和习惯。 除了能够提高学习质量和学习效率,主动学习还能够极大地提高 “思考和辨别”能力,原因是在主动学习过程中会发现解决问题的方式存在多样性,很多情况下并没有的“标准答案”,需要“思考和辨别”;而且即使存在“标准答案”,也需要通过“思考和辨别”的过程来获取。 更重要的是通过主动学习能够提高思维的开阔性和独立思维能力,敢于质疑和挑战。
酷叮猫少儿编程认为学习编程除了具备“命题教育”的作用,还存在当下其它教育形式很难具备的优势:高度创作性和高度趣味性; 可以充分利用碎片时间;过程更具挑战性;有足够学习深度(因为编程的目标范围非常大)。因此通过学习编程,可以非常有效地弥补现有应试教育“单向灌输”的严重缺陷,鼓励小朋友发挥想象力,敢于思考和质疑;提高学习兴趣, 培养自学和主动学习的能力;掌握更加有效的学习方法。