向11岁儿童传授匿名功能的技巧

上周,我与一个11岁的学生Jenny一起工作,他是编码的新手。 在Scratch玩了几天之后,她现在使用WoofJS框架在JavaScript中构建了Flappy Bird风格的游戏。

“这个编码先进吗?”珍妮问。

为了让她放心,我指出了她通过WoofJS框架使用的一些JavaScript功能,“可以。 看到这里,您正在使用面向对象的编程,这是一个高中进阶的主题,这里您使用的是复杂的布尔代数。”

珍妮笑了。 她喜欢我的这款游戏,并以幻想的技术术语命名了她正在使用的概念。

“在这里,我几乎忘记了。 您正在使用不少于1,2,3…15个匿名函数!”

我想了一分钟。 这是珍妮第二天用JavaScript和Woof进行编程。 她11岁。谁教她如何使用匿名功能? 肯定不是我。

在计算机科学中,匿名功能被认为是相当高级的主题。 许多大学的计算机科学专业的学生直到上高级课程都不会学习它。 我想检查詹妮对她在说什么的了解。

珍妮,所有这些都称为匿名函数。 你知道他们做什么吗?”

珍妮看着她的代码。 “嗯,我不确定。 我只在需要发生某些事情时才使用它们。”

我笑了。 这不是通过计算机科学考试的定义,而是可靠的工作定义,可以使她有效地使用它们。

拥抱混乱

学习口语(英语,西班牙语或中文)是一个混乱的过程。 最好的情况是,学习计算机语言也很混乱。

想象一下,如果您必须先接受语法(名词,动词,句子结构和标点符号)的理解,然后才被允许说母语。 这通常是编码教育的样子。 首先,让我们学习编码(变量,if语句,类型),然后再开始编码。

但这是完全落后的。 学习语言(包括口语和计算机语言)首先应该是一项活动,其次是分析活动。 这意味着在让学生放松使用它们之前,故意不教诸如匿名函数之类的概念。

这会导致学生起初犯错吗? 你打赌

学生会感到困惑和沮丧吗? 毫无疑问。

学生将能够背诵字典定义吗? 没有机会。

但是尽管如此,学习混乱的方式(基于项目的学习环境的一个共同特征)更加有效,而且更加有趣。

WoofJS

不幸的是,并非每种编程语言都可以采用这种放手的教学方法。 大多数编程语言,包括HTML,CSS和JavaScript,都具有使学生难以通过反复试验弄清楚的语法。

这就是为什么我对WoofJS感到非常兴奋的原因,它是一个JavaScript框架,使学生能够以凌乱的方式学习JavaScript。 在Woof中,学生可以通过反复试验自由地使用高级编程概念,而无需任何先决条件。

Woof无需花费大量的时间来记忆和搜索新的语法,而是提供了一个清晰的界面,供学生通过探索和实验学习。

那么向11岁的孩子教授匿名功能的窍门是什么? 别。 有了Woof,他们无论如何都会发现自己更好。