学习编程语言概念

use*_*322 10 alice lego-mindstorms mit-scratch logo-lang block-programming

作为一名学生老师,我非常感兴趣的是,像Scratch,Logo,Alice和Lego mindstorms这样的"迷你语言"如何有效地教导学生编程的核心概念,如变量,函数和循环.

在教授这些基本核心概念时,一种"迷你语言"比另一种更好吗?

May*_*nza 5

根据你教孩子的年龄,我会选择像python这样简单的语言.

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

  • 同意python!如果只因为它具有绝对最小的语法要求和最小的标点符号.像这样的美学可以为新开发者带来巨大的变化.还有像PyGame这样的非常好的框架,可以很容易地制作交互式内容.我认为这项任务比语言更重要.跳过"将消息打印到控制台",而是专注于"当我点击它时,这个图形化的东西会做出反应" (2认同)

Jer*_*fin 5

这是一个非常棘手的问题.Logo和Smalltalk(仅举两个明显的例子)最初都是专为教孩子们编程而设计的.然而,你很快遇到了一个问题:很难定义一种既简单又容易让小孩子完全理解的语言,并且仍然足够丰富以避免它迅速变得有限和笨拙.

至少从我所看到的情况来看,大多数尝试在两个方面都表现不佳.例如,大多数尝试包括旨在使代码更像英语的冗长(例如Logo中的"To:").儿童通常具有足够差的键盘技能,这种冗长令人沮丧.他们(根据我的经验)期望如果语法的一部分看起来像英语,那么该语言也应该接受其他有效的英语(我希望其他语言的母语使用者也是如此,但我的经验主要是英语使用者).

与此同时,大多数孩子(我曾与之合作过)很快就达到了他们发现迷你语言限制的程度.其中一些可能源于上面提到的挫折.有些人可能也是因为他们的老师(至少有些人)在提出有趣且具有挑战性的练习时缺乏想象力.我认为今天比20年前(比如说)20年前要困难得多 - 那时候,孩子们对用乌龟图形绘制的东西很兴奋(例如).今天,他们已经习惯了具有照片般逼真的3D图形的游戏,并且用直线绘制2D"玫瑰"似乎更多地打击了它们,因为它们基本上是蹩脚的.