少儿编程,或者说信息技术,对中小学是一个新兴学科。对于一个新事物,看法不一、做法不一是很常见的。赞扬者说少儿编程是未来创造世界的大门,漠视者则认为不过是一个新的技能学科而已。
不仅围观者,下场的人做法也有很大不同。只是这种不同,并不是体现在工具层面——因为在最开始,大家要么选择图形化编程工具,要么选择一二简单小硬件设备,炒菜的锅大同小异,区别还是在炒菜本身上。
非常可惜的是,教育不同于一桌子菜、吃的人感觉还是非常强烈和明晰的——对于上桌的孩子们,以及周围的人,我们对菜品本身的好坏是难以深刻感受的,而且从吃饭到营养吸收再到成长起来,也是一个漫长过程。
所以这是一个重要但不容易讨论的话题。
也所以,这是一个值得反复讨论的话题。
今天,我们再针对这个话题,重新切入一个视角。我们通过对比不同的教学过程,来探讨不同侧面的可能性。核心有点类似于教师说课,但比教师说课更灵活。
少儿编程3种教学方法比对
three teaching methods
1. 我比较讨厌的态度
无论是任何方式推广你所认可的理念或教育给到孩子们,给到用户——但有一种方式,是我所比较拒绝的:通过放大焦虑胁迫。没有任何一个“组织提供的教育”是必须的,没有任何一个“组织规划的学科”是必须的——人的高贵之处在于人的自由意志和基于此的成长性。
作为教育者和家长,我们都是孩子们的环境,我们不是主宰,不是赶鞭子的人。
所以,诸如“让中国孩子不能输在少儿编程的起跑线上”这样的参与方式,是我所拒绝的。无论教育内容方式是怎样的,我们不要用这样一种心态去教育、去运营。更不要用这样一种心态去设计课程、去教学。
2. “三种不同教学方法”
现在,我们具体来介绍一下在少儿编程这个学科上,三种不同的教学形式。第一种和第二种是最常见的。
第一种:知识讲授
这是一种传统的教学方法,从中小学文化主课到高等教育中的大部分讲师,再到职业教育中的许多场景,都是如此的。
我们看一个例子,是某个团队的少儿编程课程大纲,来看一看教学目标分解:
2.png
这里所有教学目标中,涉及“学会***等程序模块”的部分,都是程序设计的知识性目标,也就是编程语言的指令(而对于“发散思维”等能力,则从课程大纲上难以看出如何落地)。
这种指令和相关知识,在另外一个团队的公开教学视频中,很好的展现了知识讲授的教学方法:
3.png
老师给出屏幕上的例子:一个座标系背景下不同位置有不同的表情。老师提问:找一找座标为(2,2)的表情是哪个?然后学生们就可以回答,老师进行确认。
这就是我们最常见的一种形式,把教学目标拆解成知识目标(按照主课方式也会拆解能力目标,但许多时候是知识目标的重复,再加上一些学科特点或概念),然后通过讲解和训练的方式,去落实知识目标的教学。
第二种:步步引导操作
另一种常见的方式是步步引导操作。这种教学方式,其实是针对的是少儿编程这种课程,其知识目标是以操作性知识为主的——至少在启蒙入门阶段,大部分的知识都是操作性知识。
所以,我们能见到的许多课程,是类似于这样的:上来先介绍编程工具的基本方面,比如舞台、角色、积木编码等等,然后会用一个很小的任务,一般选用游戏场景,来吸引孩子一步步操作,进而动手实现一个小的游戏活动——例如下面是两个角色行动和追赶的效果,来自于某个团队的少儿编程课程产品:
这里的重点是一步步引导操作,用操作来学习各种编程行为,加角色、改属性、拖放代码……每若干操作会形成一个结果,一个可以执行的小游戏活动场景。通过不断的模仿操作和查看结果,来学习编程知识。
这样的操作过程,如果团队资源足够,会再嫁接一套IP形象和资源体系,用IP形象的方式来推动不同课节之间的切换,也可以用小动画来衔接。但总而言之,教学方法可以概括为步步引导操作。
第三种:多领域问题分析探究
第三种教学方式,是小组活动教学为核心形式的教学方式,但教学的逻辑,是以问题探究为驱动的(且必须以)。
在这种方式下,问题的提出和对问题的思考,是第一位的,对问题的操作和模拟解决是第二位的,而解决方案中的知识讲授,是第三位的。孩子在问题思考过程中是发散的,操作可以探究也可以学习示范,但知识需要经过问题思考和操作探究过程——在这个过程中,孩子们可以提出新的问题。
教师最重要的是提出初始问题,引导问题思考过程,为问题解决提供思考和测评框架。并激发孩子们深度参与。
这种教学方式当然不是常见的,且也不是成熟的。它在部分环节可能涉及到第二种和第一种教学方法的实施——但大家需要注意到关键:这两种教学方法的使用都是有前提条件和时机的。
所以这种教学方法的实施不如前两种容易操作,不如它们容易标准化。但也不是没有实施方法和脉络。