作为一名学生教师,我非常感兴趣的是诸如Scratch,Logo,Alice和Lego mindstorms等“迷你语言”如何有效地教导学生编程的核心概念,如变量,函数和循环。学习编程语言概念
为了教授这些基本的核心概念,一种“迷你语言”是否比另一种更好?
作为一名学生教师,我非常感兴趣的是诸如Scratch,Logo,Alice和Lego mindstorms等“迷你语言”如何有效地教导学生编程的核心概念,如变量,函数和循环。学习编程语言概念
为了教授这些基本的核心概念,一种“迷你语言”是否比另一种更好?
取决于你教孩子的年龄有多少,我只需要用像python这样简单的语言。
这里是一个免费的书,教所有的基本知识,只有约200页长: http://www.greenteapress.com/thinkpython/thinkpython.html
我认为这不要紧,其中大部分“小语言”的使用。但是我认为如果你不打算解释更多的基础知识,你最好还是用真正的微型语言而不是“真正的”语言。 当我学习了基础知识(用Java)的时候,我真的非常生气,我不得不记得public static void main
而不知道这一切意味着什么。 所以我会选择尽可能少的开销语言。 选择哪种特定语言真的取决于学生的年龄。
有很多可能性,最终这类问题与“品味”有很大关系。我认为这个方案是一个非常好的选择,但有几个原因。一个是它是一种非常简约的语言,很少用语法来使事情复杂化。另一个原因是我觉得计划表达了关于计算的真正基础,并且非常清楚。另一个是该方案可以用于非常“多范式”的方式。你可以在Scheme中进行函数式编程,或者命令式编程。从Scheme开始构建一个对象系统也很容易 - 您可以使用不到100行的代码将简单的语言移植到该语言上。还有一些Scheme实现有很多库,所以你可以做一些事情,比如图形编程或者网络编程。
最后,人们非常重视在Scheme中开发优秀的教学材料。 “计算机程序的结构和解释”被公认为经典,但对于年幼的孩子来说,它的很多材料都是非常困难的,我认为(它针对麻省理工学院的新生)。但是,材料,如“如何设计程序”:http://www.htdp.org/您可以在htdp中真正清楚地看到的一件事是Scheme的最小语法如何让您正确理解重要思想。
Scheme作为第一语言的主要缺点是,现在真正广泛使用的大多数语言看起来不像Scheme,因此学生在向其移动时可能会进行一些调整。但我倾向于认为,特别是对于孩子们来说,首先获得核心思想是最重要的。
这是一个非常困难的问题。 Logo和Smalltalk(仅举两个明显的例子)都是专门设计用于教孩子们编程的。然而,你很快就会遇到一个问题:很难定义一种语言,这种语言既简单又足以让小孩完全理解,并且还有足够的丰富性,以避免其迅速变得局限和笨拙。
至少从我所看到的情况来看,大多数尝试在都有效果不佳方面。举例来说,大多数尝试包括旨在使代码更像英文的冗长(例如,徽标中的“收件人:”)。孩子们的键盘技巧往往不够好,这样的冗长令人沮丧。他们也(根据我的经验)期望,如果语法的一部分看起来像英语,那么该语言也应该接受其他有效的英语(我期望其他语言的母语人士也是如此),但我的经验主要是英语使用者)。与此同时,大多数孩子(我曾与之合作)很快就会发现他们发现了迷你语言的限制。其中一些可能源于上面提到的挫折。有些人可能也是因为他们的老师(至少有些老师)缺乏想象力来提出有趣且具有挑战性的练习。我认为今天比20年前(比如说)还困难得多 - 当时,孩子们对于他们可以用乌龟图形绘制的东西感到兴奋(举一个例子)。今天,他们习惯于使用逼真的3D图形进行游戏,并且用直线绘制2D“玫瑰”似乎更像是基于蹩脚的游戏。
对python达成一致!如果仅仅因为它具有绝对最小的语法要求和最小的标点符号。这样的美学可以对新开发者产生巨大影响。 也有非常好的框架,比如PyGame,可以很容易地制作交互式的东西。我认为这个任务比语言更重要。跳过“将消息打印到控制台”,而是专注于“这个图形化的东西在我点击它时起作用” – alecf 2010-04-05 16:20:30
Livewires是一个开源课程,用于教孩子编程,它使用Python和PyGame的简化版本来获取它们甚至更快。我已经翻阅了它 - 看起来很有希望。 http://www.livewires.org.uk/python/home – TarkaDaal 2010-04-05 16:53:44