教孩子调试代码?

这里有很多帖子讨论如何教孩子编程。从一个游戏开发者的角度来看,我对下一步感兴趣,即教孩子如何调试代码,使其达到他们想要的效果,或使其在使用时不总是100%正常(我认为这些是不同的问题,但这可能是主观的)。

我提出这个问题是因为我已经拥有一个使用嵌入式脚本语言(即Lua)的工作游戏(ROBLOX),其中孩子们可以编写大量疯狂的东西。

我们发现,随着这些脚本变得越来越复杂,它们受到孩子们没有考虑到的边缘情况的影响,最终限制了他们的能力。解决方案的一部分是教育,而另一部分则是更好的调试工具。因此,我提出了一个两部分的问题:

1.互联网上存在哪些高质量且自由可得的信息来源,我们可以向雄心勃勃的脚本开发人员发送信息,并期望他们从中获得有价值的东西?也许没有这样的资源,我们需要编写一些资源?

2.您认为哪些调试工具最有用?我希望在效应与复杂性之间取得平衡。

我们的目标受众是12-15岁的有动力的孩子。

原文链接 https://stackoverflow.com/questions/4330653

点赞
stackoverflow用户523612
stackoverflow用户523612

IMHO(在我看来):不要在意工具。向他们讲解问题解决的技能。同样重要的是,教授 测试 的技能。

2010-12-02 00:47:24
stackoverflow用户98204
stackoverflow用户98204

我会在裁减一些功能后使用 Netbeans。它拥有非常好的代码提示和易于理解的错误检查和提示。

2010-12-02 00:53:01
stackoverflow用户312586
stackoverflow用户312586

我对“信息来源”的部分不太了解。这对我来说有些太一般化了。我通过痛苦的经历学习了边缘情况,也不知道有其他什么方法。我不确定这是否是一种可以正式教授的知识。对我来说更像是一种直觉。有点像游泳:为了学会,你必须要身临其境。

但是关于回报与复杂性的部分,我想说没有什么能够超过好老的控制台 + 打印的组合。它可能不像其他调试手段那样花里胡哨,但它的复杂性呈一个渐进趋于 0 的趋势。而且他们将能够在几乎任何环境和他们未来遇到的任何语言中使用它(除非发生了什么真大的事情)。

```

2010-12-02 08:38:45
stackoverflow用户513763
stackoverflow用户513763

关于调试部分,我的猜测会有三件事情:

  • 通过教授 良好的编程实践 来首先避免出现错误。
  • 对每个部分进行单元测试(例如Lunit)。
  • 使用 print() 来观察发生了什么。

您可能也会对 debugger.luaRemdebug 感兴趣。

还需要使用一个具有语法高亮、括号匹配等功能的编辑器。

对于通用信息:

这就是我学习使用 Lua 的方式 :).

2010-12-02 11:19:05
stackoverflow用户516274
stackoverflow用户516274

孩子们可能会因为没有在国家或州注册为程序员或(游戏)软件开发者而被限制使用像调试器之类的工具。 Lua 可以在调试或跟踪模式下运行,通过阅读程序脚本或代码,并使用钢笔和纸张记录测试输入的值、变量及其内容、逻辑跳跃方式、返回结果预期以及在相关点创建的输出数据值来获得收益。这被称为“dryrunning”,通常在开发过程的第一次完整测试之前使用。这有助于应对繁琐的逻辑进程,并在纸上从底部到顶部或从左到右书写堆栈元素内容。

2010-12-03 16:18:25
stackoverflow用户555899
stackoverflow用户555899

如果你有 iPad,现在有一个很不错的应用程序可以让你直接从 iPad 上编写程序、游戏和模拟。这种语言是 Lua。

http://twolivesleft.com/Codea/

2012-05-05 01:35:50
stackoverflow用户1826620
stackoverflow用户1826620

当然,早期开始总是有帮助的。在早年,大脑并没有像成年人一样只是针对一种特定的语言。http://blog.quib.ly/2012/10/30/can-kids-beat-adults-at-coding/

2012-11-15 12:33:56