您觉得学习使用海龟图形编程有用吗?

发布于 2024-07-10 01:52:10 字数 109 浏览 11 评论 0原文

我正准备教某人编程。 当我学习课程材料时,我在前几个练习中使用了海龟图形。 在阅读入门教科书时,我还没有找到使用该技术的教科书。 其他人认为这种方法有帮助吗? 如果没有,学习编程的更好方法是什么?

I'm preparing to teach someone to program. When I learned the course material, I used turtle graphics for the first few exercises. In reading introductory textbooks, I have not found one that uses the technique. Did others find this approach helpful? If not, what is a better way to learn to program?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

才能让你更想念 2024-07-17 01:52:10

在 80 年代末,在我使用 C 语言编程之前,我使用 Applesoft BASIC徽标。 作为一个孩子,我认为 turtle 很棒,因为它使编程变得简单。 如果我决定教我的孩子标志,我可能会从这里开始获得一个积极开发Logo解释器。

In the late 80s, before I was programming in C, I was programming in Applesoft BASIC and Logo. As a child I thought the turtle was great because it make programming simple. If I decide to teach my children Logo I will probably start here to get an actively developed Logo interpreter.

清浅ˋ旧时光 2024-07-17 01:52:10

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

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

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

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

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

I think it depends on age of the target group.

If they are children (I would say up to 12-14 years), doing any easy graphics is a good way to motivate them; on the other hand, don't expect them to learn much about real programming or algorithms.

If they are teens (14-18), it's perhaps still good to use some algorithms that give pretty results (for example 3D or fractals), but since they are older and capable of more abstract thinking, I don't think 2D turtle graphics is interesting enough.

If they are older, doing any graphics is a distraction. At that age, they should have enough inner motivation to learn without anything fancy.

To sum up, I think that fancy graphics serves more motivational role (that you see what you did fast, and it's easy to show others what can you do with a computer) than learning role (that it would make learning real programming easier).

一百个冬季 2024-07-17 01:52:10

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

You could do worse in teaching programming than using a tool like Scratch. It's a drag and drop programming interface and can be used to teach basic concepts of programming with some fun visual results (as can be seen from the gallery on their website).

Rob

沙沙粒小 2024-07-17 01:52:10

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

递归实现的东西也很容易看到效果。

Logo gave me a very clear picture (no pun intended) on how recursive functions would work, and since I was doing assembly programming at the time, the need to return to the previous state when returning to a method became very clear with Logo.

Recursive implementations of things where also very easy to see the effect of.

梦回梦里 2024-07-17 01:52:10

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

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

我最好的建议是:一开始就花尽可能少的时间在控制台上编程

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

我可以继续说下去,但我认为这可以传达我通过教导他人所学到的东西。 我认为在编程教学中使用图形可以让学生比其他任何人更快地获得建立无形概念的心理模型的能力。

XNA 如果你想教 C#,这是一个很棒的图形库,只需编写一个包装精灵类在刚开始教授概念时隐藏尽可能多的复杂性。

SDL 如果您要从 C++ 开始,则需要一个较低级别的库

I wrote script/code in a c-like dialect for a game called Doom2 before I knew what programming was, so when it came to seriously learning about concepts such as pointers, inheritance and polymorphism I found the basics a breeze because I could construct a mental model to not only help me understand, but also appreciate how cool things like pointers and arrays are.

A friend of mine is a good programming student, but he gets frustrated when he can't visualize an algorithm working, when I was starting to help other students I found they had the same problem, if they can't see something working it's harder to appreciate as a fledgling programmer, the same friend eloquently suggested I "Show 'em some crazy pimp shit and then show them how it's done". He's right, even if someone really wants to learn something they'll be able to draw on more mental energy if they think what they're learning lets them do awesome things.

My best bit of advice is this: AT THE START SPEND AS LITTLE TIME PROGRAMMING TO THE CONSOLE AS POSSIBLE

It makes you feel constrained and your efforts appear futile, only after you appreciate it as a front end should it be used for learning to program. I wouldn't use logo myself because I don't think it can teach concepts such as the aforementioned polymorphism or inheritance nearly as well as other methods, I know a friend of mine is teaching a teenager how to program using XNA in a wrapper, I think anything that can let you blit an image to the screen is fine. That way you can see why you'd want an abstract base class called EnemyEntity with behavior that's inherited by zombie and dog etc. It's not that the concepts are hard to understand, it's just that at first they're hard to appreciate.

I could go on but I think that puts across what I've learned by teaching others. I think using graphics in teaching programming allows students to gain the ability to build mental models of intangible concepts faster than any other.

XNA If you want to teach C# that's an amazing graphics library, just write a wrapper sprite class to hide as much complexity when first starting out and teaching concepts.

SDL A lower level library if you're going to start with c++

烟沫凡尘 2024-07-17 01:52:10

LOGO的关键是用户自定义功能。 只要你强调它,它就非常擅长传达这一点。 以交互方式展示如何绘制正方形,然后创建一个名为“正方形”的新词。 然后展示如何使用正方形绘制图案。 然后将这些模式变成文字,等等。

The key thing about LOGO is user-defined functions. It is very good at conveying that, as long as you emphasize it. Show interactively how to draw a square, then make a new word called square. Then show how you can draw patterns using square. Then make those patterns into words, and so on.

秉烛思 2024-07-17 01:52:10

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

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

During one of my first-year computer science papers we used Java to create fractal patterns via a turtle object.

It was pretty fun to see visually whether or not we had correctly implemented the algorithm required to produce a certain pattern. However, so answer the main question, I wouldn't say that programming via a turtle is useful. I'd say the best way to teach someone to program is to get them to build their own app to do whatever they want it to do. This gives them creative control, plus if they get stuck they can learn how to resolve a problem.

半衬遮猫 2024-07-17 01:52:10

我在学校也使用了徽标和海龟,这是一个很好的介绍。

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

I used logo and turtle at school too, a great introduction.

It looks like our kids will be getting a slightly updated interface with Microsoft Kodu. It looks very impressive. It's an icon based programming language made for creating games that runs on X-Box Live.

熊抱啵儿 2024-07-17 01:52:10

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

Ah, the memories of good old Logo. I think I got more of a geometry lesson than a programming lesson out of it, e.g. figuring out how much to turn at various points to produce a particular shape, design or pattern. It may work if you plan on mixing geometry with the programming, but if the person doesn't have the basics of geometry, e.g. what is a square and how is it different from other 4-sided shapes, what is a triangle, etc.

追星践月 2024-07-17 01:52:10

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

我认为“对海龟进行编程”可能更适合那些有艺术倾向或热衷于几何的人,但总的来说,即使对于孩子来说,也有更有趣的问题需要解决。

I did a "computing for kids" course in the late eighties, and there was an extensive section on turtle graphics using logo. In all honesty I was bored to tears, and learned virtually nothing from it.

I think "programming the turtle" might work better for someone who is artistically inclined, or hugely into geometry, but by and large, there are far more interesting problems to attack, even for kids.

剩一世无双 2024-07-17 01:52:10

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

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

所以带有海龟图形的LOGO拉近了我们的距离!

When I got my first computer (VIC-20) and started programming it was very hard to explain to my parents what I was doing.

My mother tok a course in computing preparing for a project of computerizing the library she worked in. They had a couple of classes introducing them to programming. After learning LOGO she came home and said that she suddenly understood what I was into.

So LOGO with turtle graphics brought us closer together!

不打扰别人 2024-07-17 01:52:10

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

LOGO is not only Turtle-Graphics.
There are also other interesting concepts in it which come from LISP.
'Turtle' is just icing on the cake and the "imperative" side of Logo.
:)

暮年 2024-07-17 01:52:10

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

最近,我遇到了 SmallBasic - 一个很酷的儿童编程环境,旨在教授概念。 我会尝试一下。 它附带了一篇非常完整的论文,描述了如何使用它。

I learned to program in BASIC by writing simple programs drawing faces (I mean circles and squares) on the screen. Somehow the whole turtle programming was never my thing, although a few of my friends learned that way. Later on I moved to Pascal, then to Delphi, Java and C++/C#.
In my opinion the trick is to "wow" your student and impress/empower with potential things that you can accomplish by writing your own programs. I would actually demonstrate some GUI programming or game programming. It's much easier to learn the basics by keeping the end goal in mind.

Recently I came across SmallBasic - a cool programming environment for kids designed to teach concepts. I would give that a try. It comes with a pretty complete paper describing how to use it.

忆依然 2024-07-17 01:52:10

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

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

I strongly suggest to start with a interpreted language like Logo (not compiled) because of the quality of the error messages. Reading error messages is very important in this process. Also, at the easy level, Logo allows you to run your instructions one by one in direct mode and carry them to your procedures when you get the expected results.

@ Alex: MicroWorlds is a commercial version of Logo and it does exist in English, Spanish, Portuguese, Italian, Russian, etc. it's a big plus if you are not a native English-speaking person.

执妄 2024-07-17 01:52:10

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

I'm currently learning python and using a little bit of turtle. In labs we haven't used it, but our homework does. It's nice to know it exists, and it's a good way to get certain commands and syntax in. Overall I don't feel it was completely necessary though.

我的黑色迷你裙 2024-07-17 01:52:10

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

现在,我认为语法有点不清楚,因为大多数语句都是缩写。 如今,计算机的功能更加强大,因此语言可以从更清晰的表述中受益。 另一个因素是学习者的母语。 如果英语不是您的母语,那么徽标会变得更难以理解。 因此,如果您向孩子们教授徽标,请确保他们首先熟悉英语术语。 (如果你的母语是英语,那就很简单。如果你原本是荷兰人、德国人、法国人、葡萄牙人,那就更复杂了。如果你是俄罗斯人或中国人,那就更复杂了,因为你必须适应不同的角色也设定一下。)

When I was young, I found it very interesting. It was one of the first programming languages that I've learned, even though I've used it for about two days. It started my interest in programming.

Nowadays, I think the syntax is a bit unclear because most statements are abbreviations. Nowadays, computers are far more powerful thus the language could profit from clearer statement. Another factor is the native language of the person who is learning to use it. If English is not your native language then Logo becomes a bit more complex to understand. So if you're teaching Logo to children, make sure they're familiar with English terms first. (Quite easy if you're a native English-speaking person. More complex if you're originally Dutch, German, French, Portuguese. Even more complex if you're Russian or Chinese because you'd have to adjust to a different character set too.)

牵你手 2024-07-17 01:52:10

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

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

I have just begun teaching my 7-year-old how to program using Logo, and he is having a load of fun with it. The commands are easy enough for his limited reading ability and he just loves drawing cool pictures using the turtle graphics. I was amazed at how well he retained what he had learned using it, so I feel it was a good choice for his age.

For older kids (or adults) other languages might have more advantages as a beginner language though

你好,陌生人 2024-07-17 01:52:10

个人经历,YMMV...

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

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

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

正如我所说,YMMV。

Personal experience, YMMV...

My first encounter with a computer was turtle graphics in my early teens. I loved and was immediately hooked. (Perhaps because for the first time someone [something] did exactly what I told it to do?)

The visual and instant feedback made me want to do more and more. I really wanted to figure out how to replicate the pictures I saw in the book I was using. Without me even classifying it as "work", it slowly built up my early programming skills and my confidence I could learn on my own.

I credit it with sending me in the path I'm in today, a happy software developer who can't believe I get paid to do this work (I know, I know - all corporate snickering aside, I like my work).

As I said, YMMV.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文