编程作为一种工具,是为了让孩子找到一种适合自己的学习方式,终的目的是让每一个孩子能够更加主动、的学习。所以任何脱离了这个目标的编程教学,或多或少都是有一些欠缺的。我觉得对待编程学习,应该有的态度是:
观点1:编程教学终的目标应该聚焦在如何通过编程的方式去帮助学生表达创意,而不是聚焦在教会学生编程的基本技巧。当然,掌握这些编程的技巧是孩子在学习过程中不可逾越的一个阶段。
这个观点似乎有点老生常谈,但我认为从心里面真正理解这条教学目标非常重要,因为这条“纲”指引着课程的设计方向。为了达到这样的教学目标,从教学设计的角度来看,我认为应该分成“学”和“启”两个阶段。
“学”即编程基础知识的学习,这个阶段终的目标是帮助孩子掌握编程的基本技巧。以Scratch的学习为例,在一些小游戏的设计、加上音乐的创作,例如孩子们喜欢的小游戏Minecraft的结合等等,大多数孩子都很感兴趣,都可以纳入进来。但是比较重要的一点,是让孩子觉得“编程有意义”,所以孩子课本上学到的、生活中见到的现象是比较合适的主题,而且学习这样的主题也更容易引起共鸣。
比如,将小学数学课上学到的加减乘除运算融合到下面的赛跑游戏中,一方面数学知识有了实际的应用场景,另一方面游戏的设计也能激发孩子的创作热情。
观点2:课程体系的延伸源于孩子创意表达需求的延伸。
在编程教学过程中,经常有家长问老师“孩子应该从何学起”,得到的回答往往是:应该从图形化编程开始,然后过渡到代码编程,后学习算法。
既然编程是孩子创意表达的一种工具,那么很显然对于不同年龄又或者是不同兴趣的孩子来说,他们对周围世界的认知是不一样的,需要表达的创意也就不一样。有的孩子对世界的理解可能是天马行空的想象,想到的就是合理的;有的孩子可能对真实世界已有的现象充满了好奇,比如楼道里的灯天黑了为什么会自动亮;还有的孩子可能会想,我能不能让这个世界更加便利。
从这个角度出发,作为编程老师,选出合适的编程工具以满足孩子上述需求似乎更加合理。而且为了符合孩子的认知能力,这种编程工具应该尽量简单、不需要特别高的门槛,孩子能够通过简单的操作即可将自己的想法具象化。孩子选择哪一种编程语言一方面要根据兴趣,另一方面也要考虑认知能力。不过需要指出的是,不是从一种编程工具过渡到另一种编程工具,孩子的能力就会提升。孩子们做不到达到自如的表达创意,深入学习都是对计算思维的极大锻炼。
当然,对于一些理解能力强、学习快、对计算机特别感兴趣的孩子来说,在小学阶段尝试代码编程、学习算法、朝着计算机专业发展也未尝不可。