编程的本质是什么?不是思维是工具。它首先是解决具体问题的工具,然后为了有效解决问题而有了“思维”。对于中小学生,对编程最直观最有效的学习,是通过编程实现某种效果、解决某个问题。这时候过多地培养“编程思维”,就是拔苗助长。
解决问题和思维是无法分离的。在林崇德老师的思维理论中提“思维目的”维度,以及思维特征之一的问题性,即“思维总是指向于解决某个任务,思维过程主要体现在解决问题的活动中”。此外,发明编程语言的人本身就是为了解决上一门编程语言的问题,这反而说明了这即使工具又是思维过程的道理。
目前学校需要速成,在有限的课时内完成大量的教学目标以完成基本的教学课程标准。如果要深入体验,还需要教师领进门后进一步体会,线上线下教育提供了良好的契机。

从构建代码到创建可共享的应用程序。将代码的准确性和效率作为成功标志的编程是无聊的。为编程而学习编程,对孩子们来说毫无意义,除非他们能以有意义的方式使用这些技能。今天,孩子们编程的目的是为了创建像电子游戏或互动故事这样的应用程序,作为一个更大的学习社区的一部分。他们被新的可能性所吸引,能够去创造一些可以与他人分享的真实和有形的东西。编程不是一门抽象的学科,而是在数字世界中「创造」和「存在」的一种方式。

从工具到社区。编程曾经是一种独自的、基于工具的活动。现在,它正在成为一种共享的社会实践。在开放的软件环境和共通的热情的刺激下,参与所关注的重点从编程工具转移到设计和支持学习者社区。在过去的十年中,许多非常优秀的编程语言被引入,使编程更加直观和个性化。开发者和教育者都意识到,仅有工具是不够的。学习者还需要观众,也需要大量志同道合的创作者。Scratch、Alice和类似的工具拥有数百万年轻用户的在线社区。孩子们可以在一个网站上创作和分享程序。这就默默地强调了,实践社群已经成为学习编程的关键。

从「从零开始」(from scratch)创作到「改编」(remixing)。这些新的、网络化的社区专注于改编。学生们曾经从零开始创建程序来证明能力。现在他们本着开源运动的精神,将通过改编的无缝集成作为新的社会规范。一个人分享自己代码,能够鼓励其他人将自己的作品作为案例,进行调整和补充。这种开放性提高了全面创新的潜力。年轻用户能更自由地拥抱示例和分享,挑战传统的自上而下的模式


  1. 计算思维是一种社会实践。我们必须扩大进入编程社区的机会。儿童并不是自然而然地迁移到网上的「数字原住民」。在编程社区中建立成员资格并不容易。拥有强力学习文化的群体往往是排他性的文化。当学生们把自己的作品分享给其他人来评论和改编的时候,他们需要相应的策略来应对自身的脆弱性。

  2. 此外,学生还需要更多更广泛的计算活动、工具和材料。设计真实的应用是朝着正确方向迈出的重要一步,但游戏、故事和机器人并不是实现这一目标唯一的应用类型。我们需要不同的材料来拓展学生对计算的视角和感知。