grace 主题_Grace简介:一种开源的教育编程语言

grace 主题

当谈到在教人们如何编程时要使用的编程语言时,有很多选择。 在教授基础知识时, Scratch是一个不错的选择,因为它具有拖放式编程的构建块方法。 Python或Ruby也是不错的选择-两种语言都具有直截了当的语法,已在大型现实项目中使用,并且具有围绕它们构建的出色社区和补充项目。 或者有Java,Objective-C和C#,它们是可靠的编程语言和适销对路的工作技能。 坦率地说,它们都是不错的选择,但是,在学术环境中教授编程时,它们真的是实现它的最佳方法吗?

Linux.conf.au 2015上 ,惠灵顿维多利亚大学的博士后研究员Michael Homer谈到了Grace ,这是一种开放源代码编程语言,专门为满足教育环境中的教学编程需求而设计。 Grace是使用我们目前对编程语言的理解以及对教学编程的教育研究从头开始构建的。 大学教室中用于教授编程的许多语言都是较旧的语言-两种最受欢迎​​的语言Java和Python如今已有数十年的历史了-这些年来,这些语言已经发展了很多。 它们是功能强大,有用的语言,但有时它们对初学者不友好,并且在设计时并未考虑到教学程序设计。 Grace被设计为一种教育语言,因此其设计目标是尽可能保持一致和对新程序员友好。

Grace具有四个主要设计原则。

  • 简单的程序应该很简单。
  • 语言需要具有可理解的语义模型。
  • 语言需要支持不同的教学顺序。
  • 是通用语言。

例如,Grace中的基本“ Hello world”程序是:

print "Hello world"

相比之下,Java中的相同程序是:

class HelloWorld {
	public static void main(String[] args) {
	System.out.println("Hello world");
	}
}

对于新程序员来说,Grace示例要容易得多,尽管更复杂的Java代码的每个部分都具有功能,但是要学会编写Java代码的人才能完全理解所有含义还需要一段时间。 在他们学习之前,一切仅仅是魔咒,魔咒才能起作用。 这会使尚未理解所有规则的新程序员感到困惑。

Java可能会使新程序员感到困惑。 当我在大学担任计算机科学导师时,老实说,我花了更多的时间在教人们如何弄清楚Java编译器错误消息上,而不是帮助他们学习编程概念(例如变量和循环)。 荷马举了一个很好的例子,说明所有这些与他的“最喜欢的Java错误”是多么令人困惑:

class Counter {
	int total = 0;
	int add(int n) {
	return ( total += n);
	}
	int addAllNegative(Iterable < Integer > all) {
		for ( int n : all )
		if (n < 0)
			int total = add( -n);
	return total;
	}
}

在此示例中,编译器error: '.class' expected" for the line "int total = add(-n);显示error: '.class' expected" for the line "int total = add(-n); 。 当实际问题是他们不应该包含int时,该错误消息使学生按照错误的说明去做,并添加.class (这会造成更大的混乱)。 当他们编写该行代码时,他们使用的代码与以前的代码行中使用的语法相同,但是在这里不起作用。 值得庆幸的是,OpenJDK 8并未出现此问题,并且返回的结果更为合理,但是对新程序员不友好,错误消息: error: variable declaration not allowed here 。 Grace从头开始设计,对于初学者来说很容易理解,而Java有时会使无经验的Java程序员感到困惑。

Grace具有许多其他功能,可以更轻松地使用它们来教与学编程。 观看荷马演讲的视频(下),了解更多详细信息,尤其是他的现场演示。 该演示具有Grace的界面,该界面可在类似Scratch的拖放功能和基于标准文本的编码之间来回切换。 在一种模式下所做的更改会自动转移到另一种模式。 这是一种有趣的学习工具,一种语言有两种不同的编程方法,这意味着新程序员可以在从构件块编程过渡到编写代码的过程中继承他们的语言知识。 如果学习者仍然使用相同的语言,则在构建块编程和编写代码之间的过渡会更加顺畅,并且能够以两种不同的样式查看代码确实很有帮助。

要获得额外的好处,请查看惠灵顿维多利亚大学的Timothy Jones的 Linux.conf.au,它讨论了如何在异步JavaScript中实现Grace解释器Hopper 。 关于Hopper解释器的发展,这是很有意思的(即使是技术性的):

优雅是一种有趣的语言。 我并不需要100%的专业编程语言来学习,但我确实理解荷马的观点,并同意其中的许多观点。 也就是说,Grace可以提供多种多样的编程语言,它可以帮助学习者专注于学习编码,而不是应对因其存在时间长而导致的其他语言的细微差别。 因此,如果您要教别人如何编码,请查看Grace,看看它是否适合您和您的学生。 然后在这里给我们留言,让我们知道您的想法。


开源于
教育

来自教育者,学生,倡导者,父母以及更多人的文章集合,他们在教育中实施开源并致力于为所有人建立更开放的知识库。

翻译自: https://opensource.com/education/15/3/review-michael-homers-grace-open-source-educational-programming-language-talk

grace 主题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值