学习编程语言概念

发布于 2024-08-27 21:54:52 字数 130 浏览 5 评论 0原文

作为一名实习老师,我对 Scratch、Logo、Alice 和 Lego Mindstorms 等“迷你语言”在教授学生变量、函数和循环等编程核心概念方面的效果非常感兴趣。

一种“迷你语言”比另一种更适合教授这些基本核心概念吗?

As a student teacher I am very interested in how effective "mini languages" such as Scratch, Logo, Alice and Lego mindstorms are in teaching the pupil the core concepts of programming such as variables, functions and loops.

Is one "mini language" better than another for teaching these basic core concepts?

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

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

发布评论

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

评论(4

來不及說愛妳 2024-09-03 21:54:52

根据你教的孩子的年龄,我会选择更简单的语言,比如 python。

这是一本免费的书,教授所有基础知识,只有大约 200 页长:
http://www.greenteapress.com/thinkpython/thinkpython.html

Depending on how young the kids you are teaching are I would just go with a simpler language like python.

Here is a free book that teaches all the basics and is only about 200 pages long:
http://www.greenteapress.com/thinkpython/thinkpython.html

薆情海 2024-09-03 21:54:52

这是一个非常困难的问题。 Logo 和 Smalltalk(仅举两个明显的例子)最初都是专门为教儿童编程而设计的。但你很快就会遇到一个问题:很难定义一种语言,既足够简单,可以让小孩子完全理解,又足够丰富,以避免它很快变得有限和笨拙。

至少从我所看到的来看,大多数尝试在这两方面都效果不佳。仅举例来说,大多数尝试包含冗长的内容,旨在使代码读起来更像英语(例如徽标中的“To:”)。孩子们的键盘技能通常很差,这样的冗长令人沮丧。他们(根据我的经验)还期望,如果语法的一部分看起来像英语,那么该语言也应该接受其他有效的英语(我希望其他语言的母语人士也是如此,但我的经验主要是讲英语的人)。

与此同时,大多数孩子(和我一起工作过)很快就发现迷你语言的局限性。其中一些可能源于上述的挫败感。有些可能还源于(至少部分)老师缺乏想象力,无法想出有趣且具有挑战性的练习。我认为今天比(比如)20 年前要困难得多——当时,孩子们对他们可以用海龟图形画出的东西感到兴奋(举个例子)。如今,他们已经习惯了具有逼真 3D 图形的游戏,而用直线绘制 2D“玫瑰”似乎让更多人觉得基本上是蹩脚的。

This is a very difficult question. Logo and Smalltalk (to name only two obvious examples) were both originally designed specifically for use in teaching children to program. You quickly run into a problem though: it's hard to define a language that's both simple enough for a small child to understand completely, and still rich enough to avoid its quickly becoming limiting and clumsy.

At least from what I've seen, most attempts have worked out poorly in both respects. Just for example, most attempt to include verbosity intended to make the code read more like English (e.g. the "To:" in Logo). Children often have poor enough keyboarding skills that such verbosity is frustrating. They also (in my experience) expect that if part of the syntax looks like English, that the language should accept other valid English as well (I'd expect the same is true of native speakers of other languages, but my experience is primarily with English speakers).

At the same time, most children (that I've worked with) quickly get to the point that they find the mini-language limiting. Some of that probably stems from the frustrations mentioned above. Some probably also stems from lack of imagination on the part of (at least some of) their teachers in coming up with exercises that are interesting and challenging. I think it's also much more difficult today than it was (say) 20 years ago though -- back then, kids were excited with what they could draw with turtle graphics (for one example). Today, they're accustomed to games with photo-realistic 3D graphics, and drawing a 2D "rose" out of straight lines seems to strike a lot more of them as basically lame.

缱绻入梦 2024-09-03 21:54:52

我认为你使用哪种“迷你语言”并不重要。但我认为,如果您不打算解释比基础知识更多的内容,那么您最好继续使用真正的迷你语言,而不是“真正的”语言。
当我学习基础知识(使用 Java)时,我真的很恼火,因为我必须记住 public static void main 而实际上并不知道这一切意味着什么。
所以我会选择一种开销尽可能小的语言。
选择哪种特定语言实际上取决于学生的年龄。

I think it doesn't matter that much which "mini language" you use. But I think you better stay with a real minilanguage and not a "real" language if you don't plan on explaining more than the basics.
When I learned the basics (with Java) I was really irritated that I had to remember public static void main without really knowing what that all meant.
So I'd choose a language with as little overhead as possible.
Which specific language to choose is really dependent on the age of your pupils.

淤浪 2024-09-03 21:54:52

可能性还蛮多的,归根结底这种问题和“品味”有很大关系。但出于几个原因,我确实认为该计划确实是一个不错的选择。一是它是一种非常简约的语言,几乎没有使事情复杂化的语法。另一个是我觉得方案表达了一些关于计算的非常基本的东西,并且非常清楚。另一个是Scheme 可以以非常“多范式”的方式使用。您可以在Scheme中进行函数式编程,也可以进行命令式编程。从头开始为Scheme构建一个对象系统也非常容易——您可以用不到100行的代码将一个简单的对象系统移植到该语言上。还有一些Scheme 实现有很多库,因此您可以在其中执行图形编程或Web 编程等操作。

最后,Scheme 投入了大量精力来开发良好的教学材料。 《计算机程序的结构与解释》被认为是经典,但我认为其中的很多内容对于年幼的孩子来说相当困难(它是针对麻省理工学院的新生)。但也有很多更温和的内容材料,例如“如何设计程序”:http://www.htdp.org/在 htdp 中可以清楚地看到,Scheme 的最小语法如何使您能够正确理解重要的想法。

将Scheme 作为第一语言的主要缺点是,目前真正广泛使用的大多数语言看起来不太像Scheme,因此学生在转向这些语言时可能需要进行一些调整。但我倾向于认为,尤其是对于孩子来说,首先获得核心思想是最重要的。

There are quite a few possibilities, and ultimately this kind of question has a lot to do with "taste." I do think that scheme is a really good choice though, for a couple of reasons. One is that it is a very minimalist language, with very little in the way of syntax to complicate things. Another is that I feel like scheme expresses something really fundamental about computation, and does so very clearly. Another is that Scheme can be used in a very "multi-paradigmatic" fashion. You can do functional programming in Scheme, or imperative programming. It's also really easy to build an object system from scratch for Scheme- you can graft a simple one onto the language in less than 100 lines of code. There are also some Scheme implementations out there that have a lot of libraries, so you can do things like graphics programming or web programming in it.

And finally a great deal of attention has been devoted to developing good pedagogical materials in Scheme. "The Structure and Interpretation of Computer Programs" is justly considered a classic, but a lot of the material in it would be pretty tough for young children, I think (it was targeted at incoming freshmen at MIT.) But there are also much gentler materials, like "How to Design Programs": http://www.htdp.org/ One thing you can see really clearly in htdp is how the minimal syntax of Scheme allows you to get right to the important ideas.

The main downside to Scheme as a first language is that most of the languages that are really widely used these days don't look much like Scheme, so students might have a bit of an adjustment in store when moving to them. But I tend to think that, particularly for kids, getting the core ideas is the most important thing at first.

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