学习编码包括学习编程逻辑和特定编程语言的语法。当我在大学上第一门编程课时,教授的语言是 C++。第一个代码示例,基本的“Hello World”程序,如下例所示。
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
直到几节课之后,讲师才解释大部分代码。期望是我们只需输入代码,最终了解为什么需要这些东西以及它们是如何工作的。
C++(和其他类似语言)的复杂语法是 Python 经常被推荐为更易于教学编程的语言的原因。这是 Python 中相同的示例
print("Hello World!")
虽然 Python 中基本的“Hello World”示例要简单得多,但它仍然具有复杂而精确的语法规则。print
函数需要括号和字符串周围的引号。这仍然会使那些没有编程经验的人感到困惑。与 C++ 相比,Python 的“稍后解释”语法问题较少,但仍然存在。
Hedy,一种专为教学编码而设计的新语言,通过在语言中构建多个复杂性级别来解决语法复杂性问题。Hedy 没有立即提供语言的全部功能,而是采用循序渐进的方法,随着学生逐步学习 Hedy 的级别,语言慢慢变得更加复杂。随着级别的提高,语言获得了新功能,并最终变得更像 Python。目前有七个级别可用,但计划推出更多级别。
在级别 1 中,Hedy 程序除了打印语句(不需要引号或括号)、提问和回显答案之外,什么也做不了。级别 1 没有变量,没有循环,结构也很简单。Echo 的工作方式几乎类似于变量,但仅适用于上次用户输入。这使学生可以轻松掌握基本概念,而无需一次学习所有内容。
这是一个级别 1 的 Hedy “Hello World” 程序
print Hello World
级别 2 引入了变量,但由于 print
函数不使用引号,因此可能会出现一些有趣的结果。如果用于存储人名的变量是 name
,则不可能打印输出“Your name is [name]”,因为第一次使用 name(旨在表示字符串)和第二次使用(表示变量)都被解释为变量。如果 name
设置为 John Doe
,则 print Your name is name.
的输出将是“Your John Doe is John Doe.”。尽管这听起来很奇怪,但这是一种引入变量概念的好方法,而变量概念恰好是级别 3 中添加的功能。
级别 3 要求字符串周围使用引号,这使得变量的功能与 Python 中的变量类似。现在可以输出字符串与变量的组合,以生成复杂的语句,而无需担心变量名和字符串中的单词之间发生冲突。此级别取消了 echo
函数,这似乎可能会让一些学习者感到沮丧。他们应该使用变量,这是一种更好的代码,但如果 ask
/echo
代码块变为无效语法,则可能会令人困惑。
级别 4 添加了基本的 if
/else
功能。学生可以从简单的提问/回答代码转向复杂的交互。例如,询问“你最喜欢的颜色是什么?”的提示可以根据用户输入的不同回复不同的内容。如果他们输入绿色,则回复可以是“绿色!这也是我最喜欢的颜色。” 如果他们输入其他任何内容,则回复可能会有所不同。if
/else
代码块是一个基本的编程概念,Hedy 在引入该概念时无需担心复杂的语法或过于精确的格式。
级别 5 具有 repeat
函数,该函数向可用功能添加了一个基本循环。此循环只能多次重复相同的命令,因此它不如 Python 中的循环强大,但它可以让学生习惯重复命令的总体概念。这是在不因不必要的复杂性而陷入困境的情况下引入的又一个编程概念。学生可以在继续学习更强大、更复杂的相同事物的版本之前掌握该概念的基础知识。
在级别 6 中,Hedy 现在可以进行基本的数学计算。支持加法、减法、乘法和除法,但不支持更高级的数学功能。不可能使用指数、模数或 Python 和其他语言处理的任何其他内容。到目前为止,Hedy 的更高级别都没有添加更复杂的数学运算。
级别 7 引入了 Python 样式的缩进,这意味着 repeat
可以与多行代码一起使用。学生在此之前一直逐行处理代码,但现在他们可以处理代码块。此 Hedy 级别仍然远不及非教学编程语言的功能,但它可以教给学生很多东西。
开始使用 Hedy 的最简单方法是访问 Hedy 网站上的 课程,该网站目前提供荷兰语、英语、法语、德语、葡萄牙语和西班牙语版本。这使得任何拥有 Web 浏览器的人都可以访问学习过程。也可以从 GitHub 下载 Hedy,并从命令行运行解释器,或运行 Hedy 网站及其交互式课程的本地副本。基于 Web 的版本更平易近人,但 Web 和命令行版本都支持运行针对其不同复杂程度级别的 Hedy 程序。
Hedy 永远不会与 Python、C++ 或其他语言竞争,成为实际项目编码的首选语言,但它是教学编码的绝佳方式。学生在学习过程中编写的程序是真实的,甚至可能是复杂的。Hedy 可以培养学习和创造力,而不会在学习过程的早期就用过多的信息让学生感到困惑。就像数学课一样,从计数、加法等开始,在达到微积分之前需要很长时间(这个过程需要数年),编程不必从“稍后解释”开始,因为编程语言语法问题必须精确遵循才能生成语言中最基本的程序。
2 条评论