11

我正准备教别人编程。当我学习课程材料时,我在前几个练习中使用了海龟图形。在阅读介绍性教科书时,我还没有找到使用该技术的教科书。其他人是否发现这种方法有帮助?如果不是,那么学习编程的更好方法是什么?

4

18 回答 18

7

我认为这取决于目标群体的年龄。

如果他们是孩子(我会说最多 12-14 岁),做任何简单的图形都是激励他们的好方法;另一方面,不要指望他们能学到很多关于真正的编程或算法的知识。

如果他们是青少年(14-18 岁),使用一些给出漂亮结果的算法(例如 3D 或分形)也许仍然很好,但由于他们年龄较大且能够进行更抽象的思考,我不认为 2D 乌龟图形足够有趣。

如果他们年纪大了,做任何图形都会分散注意力。在那个年龄,他们应该有足够的内在动力去学习,而不用花哨的东西。

总而言之,我认为花哨的图形比学习角色(让学习真正的编程更容易)更能起到激励作用(你可以快速看到你做了什么,并且很容易向其他人展示你可以用计算机做什么)。

于 2008-12-06T09:19:21.463 回答
6

在 80 年代后期,在我使用 C 编程之前,我使用Applesoft BASICLogo进行编程。小时候,我认为乌龟很棒,因为它使编程变得简单。如果我决定教我的孩子 Logo,我可能会从这里开始获得一个积极开发的 Logo 解释器。

于 2008-12-06T09:01:45.103 回答
3

在教授编程方面,你可能会比使用Scratch之类的工具做得更糟。它是一个拖放式编程界面,可用于教授编程的基本概念,并提供一些有趣的视觉效果(从他们网站上的图库中可以看到)。

于 2008-12-06T14:32:05.157 回答
3

LOGO的关键在于用户自定义功能。它非常擅长传达这一点,只要你强调它。以交互方式展示如何绘制正方形,然后创建一个名为 square 的新单词。然后展示如何使用正方形绘制图案。然后将这些模式变成单词,依此类推。

于 2008-12-06T09:22:49.010 回答
2

Logo 给了我一个关于递归函数如何工作的非常清晰的画面(不是双关语),而且由于我当时正在做汇编编程,所以在返回方法时需要返回到以前的状态变得非常清楚 Logo。

递归实现的东西在哪里也很容易看出效果。

于 2009-03-06T20:10:31.433 回答
1

在我知道编程是什么之前,我用类似 C 语言的方言为一款名为 Doom2 的游戏编写了脚本/代码,所以当我认真学习指针、继承和多态等概念时,我发现基础知识轻而易举,因为我可以构建一个心智模型不仅可以帮助我理解,而且还可以欣赏指针和数组之类的东西有多酷。

我的一个朋友是一名优秀的编程学生,但当他无法想象算法的工作时,他会感到沮丧,当我开始帮助其他学生时,我发现他们也遇到了同样的问题,如果他们看不到某些东西在工作,那就更难了作为一个初出茅庐的程序员,这位朋友雄辩地建议我“向他们展示一些疯狂的皮条客,然后向他们展示它是如何完成的”。他是对的,即使有人真的想学习一些东西,如果他们认为他们正在学习的东西可以让他们做一些很棒的事情,他们就能够利用更多的精神能量。

我最好的建议是:在开始时,尽可能少地在控制台上编程

它让你感到束缚,你的努力似乎是徒劳的,只有在你欣赏它作为前端之后,才应该将它用于学习编程。我自己不会使用 logo,因为我认为它不能像其他方法一样教授诸如上述多态性或继承之类的概念,我知道我的一个朋友正在教一个青少年如何在包装器中使用 XNA 进行编程,我认为任何可以让您将图像粘贴到屏幕上的东西都可以。这样你就可以看到为什么你想要一个名为 EnemyEntity 的抽象基类,它的行为被僵尸和狗等继承。并不是这些概念很难理解,只是一开始它们很难理解。

我可以继续,但我认为这体现了我通过教别人学到的东西。我认为在教学编程中使用图形可以让学生比其他任何方法更快地获得建立无形概念的心理模型的能力。

XNA如果您想教授 C#,这是一个了不起的图形库,只需编写一个包装 sprite 类以在刚开始和教授概念时隐藏尽可能多的复杂性。

SDL如果你打算从 C++ 开始,一个较低级别的库

于 2008-12-06T10:04:58.300 回答
1

在我第一年的一篇计算机科学论文中,我们使用 Java 通过海龟对象创建分形图案。

直观地看到我们是否正确实现了生成特定模式所需的算法是非常有趣的。但是,请回答主要问题,我不会说通过海龟编程很有用。我想说教某人编程的最好方法是让他们构建自己的应用程序来做他们想做的任何事情。这给了他们创造性的控制权,而且如果他们陷入困境,他们可以学习如何解决问题。

于 2008-12-06T11:30:51.747 回答
1

LOGO不仅是Turtle-Graphics。其中还有其他有趣的概念来自 LISP。“Turtle”只是锦上添花,也是 Logo 的“势在必行”的一面。:)

于 2010-03-28T11:34:26.513 回答
1

由于错误消息的质量,我强烈建议从 Logo 之类的解释语言(未编译)开始。在此过程中,阅读错误消息非常重要。此外,在简单的层面上,Logo 允许您以直接模式一一运行您的指令,并在您获得预期结果时将它们带到您的程序中。

@Alex:MicroWorlds 是 Logo 的商业版本,它确实存在英语、西班牙语、葡萄牙语、意大利语、俄语等。如果您不是以英语为母语的人,这是一个很大的优势。

于 2010-03-27T13:18:01.040 回答
0

我通过编写简单的程序在屏幕上绘制人脸(我的意思是圆形和正方形)来学习 BASIC 编程。不知何故,整个海龟编程从来都不是我的事,尽管我的一些朋友是这样学习的。后来我转向 Pascal,然后转向 Delphi、Java 和 C++/C#。在我看来,诀窍是让你的学生“惊叹”,并用你可以通过编写自己的程序来完成的潜在事情给你留下深刻印象/赋予权力。我实际上会演示一些 GUI 编程或游戏编程。通过牢记最终目标,学习基础知识要容易得多。

最近我遇到了SmallBasic——一个很酷的编程环境,专为教授概念而设计。我会试一试。它附带了一篇非常完整的论文,描述了如何使用它。

于 2008-12-06T08:15:35.307 回答
0

个人经验,YMMV...

我第一次接触电脑是在我十几岁时的海龟图形。我喜欢并立即被迷住了。(也许是因为第一次有人[某事]完全按照我的吩咐去做了?)

视觉和即时反馈让我想做更多的事情。我真的很想弄清楚如何复制我在使用的书中看到的图片。甚至不用我把它归类为“工作”,它慢慢地建立了我早期的编程技能和我可以自学的信心。

我相信它让我走上了今天的道路,一个快乐的软件开发人员,他不敢相信我能得到报酬来做这项工作(我知道,我知道 - 除了所有公司的窃笑,我喜欢我的工作)。

正如我所说,YMMV。

于 2012-04-04T00:36:04.190 回答
0

当我得到我的第一台计算机 (VIC-20) 并开始编程时,很难向我的父母解释我在做什么。

我母亲参加了计算机课程,为她工作的图书馆的计算机化项目做准备。他们有几节课向他们介绍编程。学完LOGO后,她回到家说她突然明白我在做什么了。

因此,带有乌龟图形的LOGO让我们更加紧密地联系在一起!

于 2008-12-06T09:36:21.960 回答
0

我在八十年代末开设了“儿童计算”课程,其中有一个关于使用徽标的海龟图形的广泛部分。老实说,我厌倦了流泪,几乎没有从中学到任何东西。

我认为“给海龟编程”可能更适合那些有艺术倾向的人,或者非常喜欢几何学的人,但总的来说,有更多有趣的问题需要解决,即使对孩子来说也是如此。

于 2008-12-08T02:14:10.573 回答
0

我在学校也用过标志和乌龟,很好的介绍。

看起来我们的孩子将获得与Microsoft Kodu的稍微更新的界面。它看起来非常令人印象深刻。它是一种基于图标的编程语言,用于创建在 X-Box Live 上运行的游戏。

于 2009-03-06T20:07:29.163 回答
0

啊,美好的老Logo的回忆。我想我从中学到的更多的是几何课而不是编程课,例如,弄清楚在不同的点上转动多少才能产生特定的形状、设计或图案。如果您计划将几何与编程混合使用,它可能会起作用,但如果该人没有几何基础知识,例如什么是正方形,它与其他 4 面形状有何不同,什么是三角形等。

于 2008-12-10T02:09:51.860 回答
0

我目前正在学习python并使用一点乌龟。在实验室中我们没有使用它,但我们的家庭作业却使用了它。很高兴知道它的存在,这是获取某些命令和语法的好方法。总的来说,我觉得这不是完全必要的。

于 2009-05-06T21:03:45.477 回答
0

我刚刚开始教我 7 岁的孩子如何使用 Logo 进行编程,他玩得很开心。对于他有限的阅读能力,这些命令很容易,他只是喜欢使用海龟图形绘制很酷的图片。我很惊讶他能很好地保留他使用它学到的东西,所以我觉得这对他的年龄来说是一个不错的选择。

对于年龄较大的孩子(或成人),其他语言作为初学者语言可能具有更多优势

于 2009-11-20T12:14:39.087 回答
0

当我年轻的时候,我觉得这很有趣。它是我学习的第一批编程语言之一,尽管我已经使用了大约两天。它开始了我对编程的兴趣。

现在,我认为语法有点不清楚,因为大多数语句都是缩写。如今,计算机的功能要强大得多,因此该语言可以从更清晰的陈述中受益。另一个因素是学习使用它的人的母语。如果英语不是您的母语,那么徽标会变得更难理解。因此,如果您要向孩子们教授 Logo,请确保他们首先熟悉英语术语。(如果您是母语为英语的人,这很容易。如果您最初是荷兰语、德语、法语、葡萄牙语,则更复杂。如果您是俄语或中国人,则更复杂,因为您必须适应不同的字符也设置了。)

于 2009-08-26T21:16:15.970 回答