【问题标题】:What to teach after Scratch? [closed]从零开始教什么? [关闭]
【发布时间】:2009-07-18 16:29:18
【问题描述】:

我儿子正在Scratch 中热情地编写简单的游戏。然而,Scratch 是一个非常简单的编程环境(甚至没有子例程),我可以看到他很快将需要转向其他事情。

有没有人知道一种很好的学习语言,它可以使图形变得简单,但提供“真正的”编程功能,如数据结构、函数、数组和列表?

如果它在 Linux (Ubuntu) 下运行,则会获得奖励积分。 “带有库 Bar 的语言 Foo”形式的答案也是一种选择。

【问题讨论】:

  • 8 岁,但似乎继承了我的程序员位。
  • 很遗憾听到这个消息,但他仍有很大的机会可以继续过着富有成效的生活,而不必痴迷于星际迷航。

标签: language-agnostic mit-scratch block-programming


【解决方案1】:

lua 呢?

有一个很好的图形“引擎”,叫做LOVE,它在 lua 中是完全可编程的。它有很好的文档,而且不是很难。

还有其他几个类似的使用lua的引擎:

还有另一个 2d 引擎,但我暂时找不到,它类似于 LOVE,但处理方式略有不同。

我会向初学者推荐 LOVE,因为它非常简单,有很好的教程,最重要的是你可以马上做一些很好的事情。

lua 也是常用的游戏脚本语言。比如魔兽世界的所有插件都是用lua写的,实际上所有的界面都是用lua写的。这意味着在 lua 中很容易找到游戏相关问题的答案。此外,如果您碰巧拥有使用 lua 作为脚本语言的游戏,您可以轻松地添加自己的东西。

我是从游戏的角度写的,但是有很多项目使用lua作为脚本语言。

您也可以尝试 python,但它没有那么好的开箱即用、易于学习/理解的工具。


这里还有一个指向 lua manual 的链接。

【讨论】:

  • lua + LOVE 看起来很可能。数据结构的单一方法将使其易于解释,并且控制结构(除了函数)类似于 Scratch。绝对有可能。
  • 更新了列表。您可以/应该还为他提供一个简单的模板,也许还有一些辅助功能,因为基本游戏编程中的一些东西不是那么“基本”,比如游戏状态(介绍、游戏、游戏结束等)和动画。 Lua 非常动态,因此您可以对其进行自定义以使其更容易,并且您可以提供一些函数来简化他难以理解的事情。我自己是在他这个年纪开始用 Zbasic 和后来的 Qbasic 编程的。
  • 所以 lua+LOVE 得到了这份工作。 lua 看起来比 Ruby 更容易学习,您可以使用第一个演示程序并将其用作更复杂的东西的框架(这是我们今天所拥有的)。浏览文档我看到它还有一个简单的物理引擎用于碰撞检测和相关的东西,这也很酷。
【解决方案2】:

如果 Scratch 开始受到一些限制,但他们还没有准备好应对文本编辑器编码的艰辛,请查看 Scratch-derivative "BYOB" (Build Your Own Blocks)。说真的,它把 Scratch 变成了一个 grown-up 编程环境,里面有函数(以及递归)、数据结构、多线程和一切!

还有Panther,但我对它印象不深(在 Panther 中创建新块似乎需要直接在 Squeak 中对其功能进行编码,而在 BYOB 中,您可以使用通常的拖放 Scratch 样式构建它们)。

【讨论】:

  • 它与 Sratch 没有太大区别,也是一个测试版。让孩子学习不稳定的工具并不是一个好主意。热情很快就会消散。
  • BYOB 已更名为 Snap,仍处于测试阶段,UI 缺乏一点润色,但除此之外,它真的很像 Scratch++。我会为我的孩子(和我自己)留意这个玩具;)
【解决方案3】:

看看Processing

它的绝妙之处在于图形、动画和视觉操作。它也可以在 Linux 下运行。

Processing 是开源的 编程语言和环境 对于想要对图像进行编程的人, 动画和交互。这是 学生、艺术家、设计师使用, 研究人员和爱好者 学习、原型设计和生产。 它的创建是为了教授基础知识 视觉中的计算机编程 上下文并用作软件 速写本和专业制作 工具。

【讨论】:

    【解决方案4】:

    一个不错的评论 here 建议 Alice and Shoes after Scratch —— 我在这件事上没有个人经验,但从评论来看,它们似乎值得一试。

    【讨论】:

    • Alice 只有 Windows 和 Apple 版本,不能在 Wine 下运行(虽然理论上它是 Java,所以它应该可以工作)。鞋子是绝对可能的。
    【解决方案5】:

    这可能只是一个更大的跳跃,但是带有PyGame 的 Python 将允许您的学生编写许多与他或她已经习惯使用 Scratch 相同的程序,但控制非常严格整个事情是如何运作的。

    • 优点:它是 python,它是一种非常容易读写的语言,并且提供了非常丰富的编程环境,实际上不需要任何样板。
    • 缺点: 它的 SDL,它使用您自己编写的事件循环。对于一个年轻的程序员来说,这可能是一个相当大的障碍。

    【讨论】:

    • 是的,我认为在像 Scratch 这样的儿童语言之后使用 Python 是最好的想法和时间投资。这是我教侄子编程的经验。
    【解决方案6】:

    Scratch 是用Squeak(在 Linux、Windows 和 Mac 上运行)编写的,所以我会说升级到 Smalltalk!唯一的问题是缺乏一本非常好的关于该语言的初学者书籍,当你考虑它的起源时,这很奇怪。但是,基本概念很容易学习(几乎没有语法),而且环境鼓励实验。

    【讨论】:

    • 我试着玩弄 Squeak,但是我看不到一个明显的“从这里开始”点来完成任何事情。本教程在环境的导览中花费了很长时间,这无疑是完成任何事情所必需的,但对孩子来说学习曲线非常陡峭。
    • 恐怕是教程的错。但实际上,任何具有中等复杂 IDE 的完整编程语言都会有一个学习曲线。从像 Scratch 这样的环境中跳出来是一个很大的变化。
    【解决方案7】:

    这是一个有趣的 Microsoft 项目,名为 Small Basic,它是一个很好、简单、免费的学习编程环境,基于 BASIC。

    因为没有ubuntu,所以没有加分,但是很酷的学习工具。

    【讨论】:

    • +1:有趣!只有 5 MB 的安装程序。
    【解决方案8】:

    QuickBasic 还在吗?这就是我在 7-8 岁时开始做的事情,我能够在没有任何外部库的情况下制作成熟的游戏等。

    编辑:查看有关 FreeBasic 的链接:

    http://linux.about.com/b/2006/11/10/freebasic-open-source-alternative-to-quickbasic.htm

    【讨论】:

      【解决方案9】:

      嗯,有一个古老的标志——不确定结构,但你确实得到列表、带参数的函数和图形非常简单。也有很多好的实现。徽标甚至被比作“没有括号的口齿不清”。

      【讨论】:

      • 任何开源 Linux 实现?上次我看的都是商业的东西。普通的乌龟图形也不再适用了;它需要精灵和东西。我喜欢尽早引入 FP 的想法,但我知道缺乏简单的类似精灵的图形会毁了我儿子的想法。
      【解决方案10】:

      我建议使用 CodingBat。尽管 CodingBat 不提供图形,但它确实提供了“编程功能”和涉及字符串、数组和逻辑的直接练习。 我认为这个网站有助于开发编程背后的基本基础。

      链接:http://codingbat.com/

      【讨论】:

        猜你喜欢
        • 2013-06-26
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        相关资源
        最近更新 更多