首页 理论教育 程序员的创造力,程序员学习调试策略

程序员的创造力,程序员学习调试策略

时间:2024-09-14 理论教育 版权反馈
【摘要】:创造力实验室在EmeraldDragon最初创建的一个项目中,有一个游戏,Scratch成员可以控制动画龙的动作。这种态度对创造过程至关重要。成为程序员的重要一步是学习调试策略,即如何识别问题并将其隔离出来,然后进行修改以解决问题。而调试过程并非编程独有,实际上,当孩子学习编程时,他们学到的调试策略对所有类型的问题解决和活动设计都很有用。在Scratch编程中,有些调试策略是社会化的。

在Scratch网站上的项目中,我对一个名叫EmeraldDragon的社区成员创建的项目产生了兴趣。我的兴趣点并不是这些项目本身,而是EmeraldDragon创建项目的方式。不过毫不奇怪,这些项目很多都是关于龙的。

创造力实验室

在EmeraldDragon最初创建的一个项目中,有一个游戏,Scratch成员可以控制动画龙的动作。她创造了12幅龙的形象,每一幅中,龙腿的位置都略有不同,然后又编写了一个程序脚本,让这些图像循环出现,就像一本翻翻书那样让龙动起来。当其他人按下不同的按键时,EmeraldDragon尝试使用不同版本的程序脚本让龙朝向不同的方向移动。

当EmeraldDragon在Scratch网站上分享这个项目时,她发表了以下评论:“我本来只是在修改游戏中的脚本,却终于想出了怎么才能让龙来回跑动!我会修补改进并推出一个新的、但还不是完成版的游戏!”EmeraldDragon把她的项目命名为“我的龙游戏(未完成)”,以表明该项目仍在进行中。在她的项目笔记中,她写道:“我正在想办法让龙在音乐没有消失的情况下来回奔跑。有没有什么提示或帮助?”

在项目的评论区,Scratch社区的其他成员给她提供了解决问题的建议。EmeraldDragon对项目进行了修改,并分享了一个改进的版本,但她仍然对这个项目不满意。这一次,她给它起的名字是“我的龙游戏(仍未完成) ”。在她的项目笔记中,她写道:“这只是一个漫长过程中的一个阶段。”

当问题不能被立即解决时,很多孩子都会因此而沮丧或泄气。但EmeraldDragon不是,她不怕犯错误,对她来说,错误本身就是整个过程中的一部分。当她一开始没有成功的时候,她渴望尝试、再尝试,她不断征询社区其他人的意见和建议,并继续寻求修改和完善项目的新策略。

这种态度对创造过程至关重要。肯·罗宾逊爵士在他广受欢迎的关于创造力的TED演讲中,强调了冒险和犯错的重要性。“如果你不准备犯错,你就永远不会想出任何原创的东西,”他解释说,“我们正在运行的教育系统中,错误是你能做的最糟糕的事情。我们正在教育人们放弃他们的创造力。”

相反,为了帮助孩子成为创造型思考者,我们需要创造一个环境,让他们能够轻松地犯错,并从中吸取教训,这也是我对教授孩子编程如此兴奋的原因之一。与许多其他活动相比,编程往往更宽容,如果你把一块木头切成两半,或者把两块木头钉在一起,事后往往很难做出调整。而通过编程,则很容易撤销你所做的一切。修复错误,做出调整,尝试新东西,这些都会更容易做到。

程序员之间有一个传统,认为错误不是失败的标志,而是可以修复的小毛病(bug)。成为程序员的重要一步是学习调试策略,即如何识别问题并将其隔离出来,然后进行修改以解决问题。而调试过程并非编程独有,实际上,当孩子学习编程时,他们学到的调试策略对所有类型的问题解决和活动设计都很有用。但是,编程是学习和练习调试的一个特别好的途径,因为它可以简单快速地对程序进行更改和测试。

在Scratch编程中,有些调试策略是社会化的。就像EmeraldDragon的龙游戏一样,孩子可以在网络社区里向其他人寻求建议和帮助。有些孩子不太敢在那些小毛病还没清除完之前就分享项目,担心会被社区中的其他人批评嘲笑。为了让孩子更自如地分享他们尚在进行中的工作,我们给Scratch增加了一个新的功能,让成员可以表明这个项目还只是草案。通过将项目标记为草案,孩子们可以调整社区其他成员对项目的期望,同时明确表示他们正在寻求项目的反馈和建议。

对于一些孩子来说,使用Scratch的经历从根本上改变了他们对错误和失败的看法。在一个关于“非洲代码周”(Africa Code Week)的电视节目中,一位十几岁的Scratch成员说:“对我个人来说,这是一种拥抱犯错的方式,让我摆脱了对失败的恐惧。失败在编程中非常重要,犯错误就像是你能做的最好的事情,因为它要么就让你最终战胜这个挑战,要么就会出现一些出乎我意料之外的事情。我喜欢这样,我会去琢磨它。”

这种思维方式符合心理学家卡罗尔·德韦克(Carol Dweck)所说的成长型思维模式。

创造力观察

具有成长型思维模式的人认为,智力是可塑的,他们认识到自己可以通过努力工作和投入来继续学习和发展。因此,他们愿意接受挑战,坚持面对挫折,从错误中学习。

相比之下,具有固定型思维模式的人认为,智力是一种固定的特质。他们可能会把错误看成自身内在缺陷的一个标志,因此他们倾向于避免挑战并轻易放弃。

当我的研究小组开发新技术和新活动时,我们一直在努力促进和支持成长型思维模式的发展。通过我们设计的Scratch编程环境和在线社区管理,我们试图让孩子们轻松舒适地尝试新事物,承担风险,在遇到困难时提问,在错误发生时尝试新策略,并在他们正在进行的探索中彼此给予支持。

因此,我们很高兴地看到类似这样的博客,一位母亲反应自己女儿使用Scratch的经历:“这为她尝试新事物提供了勇气。即使第一次尝试的结果是失败的,但失败仅仅是一条路通往另一条路的线索,而不是任务的终结。而且,通向目的地的道路可能有许多条,而不总是‘这就是正确的’或‘那就是错误的’。”

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈