这个问题 这让我不禁要问——既然改进后的现代语言可以免费获得,为什么大学仍然用 Modula2 这样的语言进行教学?

例如,是否有大学仍在教授帕斯卡?我的意思是,三十年前这很好,但是......现在?为什么?

为什么不是 Java、C#、Haskell?

有关的:还教LISP是不是倒退了?


这是一个重复的问题吗?如果没有,我认为它应该成为社区维基主题。

有帮助吗?

解决方案

该大学的工作不是教您一种编程语言,而是教您编程概念。他们使用的语言仅与他们已经生成或从其他来源使用的教学材料有关。

我认为重做课程就像重写大型应用程序一样 - 只有在您有令人信服的原因时,您才能做到这一点,即使这样,您也三思而后行。

其他提示

改进的现代语言(Java,C#,Haskell)免费提供吗?

因此,通过“改进”,您的意思是功能强大,装有外部库和框架,并且非常复杂?凭借迷宫的曲折小功能,初学者很容易迷失?当他们丢失时,他们会收到任何初学者无法理解的错误消息?

优秀的大学抵制了教授当天流行语言的压力,因为我们的工作是教导永恒的真理和技能,这些真理和技能在50年内仍然具有重要意义。 (今天的大学生可以期望至少在70岁之前工作。)我们的最佳工具是简单,简单和简单。 Modula-2是一个不错的选择。 (因此 PLT方案.

我喜欢Haskell,在研究中大量使用它,并在高级课程中教授了它。您不能付给我足够的介绍性课程教书 - 我会割我自己的喉咙。

为什么不是 Java、C#...

在没有与现有代码库互操作的要求的情况下,Java 或 C# 相对于 Smalltalk 等有什么优势?我白天是一名 C# 程序员(以前是 Java 程序员),它有一些好处,也有一些坏处,但真正突出的一件事是它是多么的复杂。看看这里有多少关于 C# 语法和语义细节的问题。你会浪费整个学期或一年的时间来教授琐事。Modula-2 更加简单并且完全足以解决许多问题。

您还需要学习汇编,从 Modula-2 到汇编比从 C# 到汇编要容易得多。我不想尝试向一群只知道微软专业工具的学生教授汇编。

有关的:还教LISP是不是倒退了?

(大约有 50 种不同的方式来解释这个......)

我不明白它有什么“倒退”之处,除非你看到它教授{之前,之后}一种较低级的语言,并且认为应该改为{之后,之前}教授它。

你能建议另一种语言来完成它的功能吗?(短暂聊天?向前?图标?因素?)例如,如果您想了解真正的 OO 系统(并且可以说是比 Java 或 C# 更强大的系统)的设计,您可以选择 阿莫普 并在一本小书中看到整个内容,包括完整的源代码。(Common Lisp 不是最简单的 Lisp 方言,但它比 C# 或 Java 简单得多,而且 AMOP 无论如何都使用它的相对较小的子集。)您将如何使用 Java 教授元编程,甚至多重分派?

或者:Lisp 的最初目的是取代图灵机作为构建算法的结构。(它恰好对于编写真实的程序非常有用!)您是否建议您宁愿使用图灵机来教授算法?或者用 C# 进行建模计算?图灵机是一个七元组——我无法想象 C# 计算模型会有多少组件!Lisp 完美地弥补了这一差距,而我在这个领域只见过一两种其他语言——我想到了 Forth,但无论出于何种原因,它并没有在学术界流行起来。

...哈斯克尔?

我认为这是个好主意。我在学校学到的。话又说回来,我认为该语言家族的任何成员都可以做得很好。如果你在学校学习机器学习,我认为你的情况不会更糟。概念是相同的。

这就像在柏林和芝加哥学习机械工程一样:语言可能不同,但概念是相同的。但如果您什么都不懂,甚至一门语言也不懂,那么从最简单的语言开始是有意义的。如果你想在柏林成为一名工程师但不会说德语,那么学习工程学并学习德语是有意义的,但传统的想法是从仅德语的工程学课程开始效果较差。

我能想到的两个原因,一个是好的。 (我是教授)

充分的理由:简化教学。教学学生就像在潜水板上放小鸡一样。如果他们有办法掉下来,他们会。如果我必须教c,我会撕开头发 char, unsigned char, char*, char**, char*[], char[10]*, ,等等,所有合法和不同,这只是树上的几个碎片。对于第二个或第三个课程,这是另一回事。

不良理由:学术自由。我们有一个人教一些遥远的解释语言,因为他喜欢它。另一个人坚持教授电子表格编程,因为那是“未来的浪潮”。

尽管这个问题似乎已经在某个时候已经处理过在参与诸如Java之类的东西之前,请掌握基本事物(例如指针)如何工作,而这些东西对于程序员来说都是看不见的:)

我意识到这个问题很旧,有很多好的答案。尽管如此,我想鸣叫。

大多数答案是“模块2更简单,因此更容易教/学习”主题的变体。尽管这是正确的,但这并不是说大学为什么应该选择教模量-2的问题。

向本科计算机科学专业的学生教授Modula-2的最重要好处是,它是良好的形成和纪律灌输。

另请参见“模量-2的最重要好处是什么?”在:

http://modula-2.info/m2info/pmwiki.php/general/faq

很少有语言教授严格的编程纪律,遵守工程原则和良好的习惯。大多数现代,尤其是流行的语言实际上是相反的,他们教导了不良习惯。

在严格的语言中,Modula-2是最小的语言,而在小语言中,Modula-2是最严格的语言。

这种组合使Modula-2成为任何不仅想要成为软件机制职业学校的大学的理想选择。

这听起来可能很苛刻,但是如果软件开发人员渴望被称为软件工程师,那么他们应该像工程师一样对其进行培训,像工程师一样思考,最重要的是,在上班时会像工程师一样行事。

电气,机械和土木工程师有义务建造首先安全可靠的东西。除少数例外,软件并不能完全符合该标准,并且缺乏经典的工程思维方式是这里的主要因素。例如,流行的“释放,更早的修复”的概念与工程原理完全相反。

LISP/ADA与C/Java的问题与信息学与编程相同。一种是科学,另一种是一种手工艺。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top