少儿编程一般是针对小学及以下幼儿设计的编程模式,把原来复杂的英文代码编程语言转换成图形化、指令化、模块化的方式,依据儿童的心智程度,设计一系列在人机交互模式下以游戏闯关、趣味数学、图形图画等为主要内容,以问题解决为目的的“项目”。
编程学习主要是指对编程过程所依托的编程语言——人类与计算机对话的一种语言的学习。编程语言是按照一定的语法规则、由表达各种意义的运算对象和运算方法构成的计算机高级语言,是一种接近于人类自然语言和数学语言的程序设计语言。也就是说,学习编程语言类似于学习一门外语的语法,只是提高效率的工具。
语言是思维的直接现实。几乎所有的少儿编程培训机构都宣称,少儿编程主要学的是编程思维以及解决问题的能力,而非编程语言本身的学习及高深专业代码的编写。因此,有必要进一步明晰“编程思维”概念。编程思维也称计算思维(computational thinking),是指包含了问题表达及由计算机执行的一套解决问题的方法。编程思维并不是计算机的思维,而永远是人的思维。谷歌公司将计算思维概括为四种类型:分解问题、模式认知、抽象思维、算法设计。我国学者指出计算思维是一种解决问题的思维过程,能够清晰、抽象地将问题和解决方案用信息处理代理(机器或人)所能有效执行的方式表述出来[2]。尽管定义形式各异,但可见编程思维的本质是“解决问题的一种方法”,是一种复合型过程思维。
从1968年依托LOGO编程语言的小海龟绘图(Turtle Graphics)诞生,到2007年儿童的编程语言Scratch发布,计算机语言已经越来越接近人类思维,编程语言也越来越智能化,这是少儿编程得以实现的前提;信息化技术的日新月异和人工智能的普及,对未来人才提出了诸如信息的提取、处理和分析以及解决问题的能力等“特殊品质”要求,这是少儿编程日益受到重视的现实背景。可行性与现实需求两个条件的变化,使得少儿编程教育得以在全球教育领域兴起。
编程教育是时代发展的产物。编程教育特点符合以儿童发展为中心的学生观,以生活为内容的课程观,以解决问题为方法的教学观。编程教育不是某一种教学模式,而是以人机对话平台为载体,结合诸如设计思维(Design Thinking)、基于问题的学习(Problem-Based Learning)、基于项目的学习(Project-Based Learning)、做中学(Hands-on Inquiry Based Learning)等新教育理念及模式,以达成计算思维能力的养成。从这点看,它又是以心智或思维训练为目标的教育。编程教育的目的不是“learn to code”,而是“code to learn”,即学会“举一反三”,将计算思维能力迁移到其他领域的学习中、去解决人工智能时代生活中遇到的其他问题的能力。