【问题标题】:About Dijkstra's paper关于 Dijkstra 的论文
【发布时间】:2010-08-09 06:04:44
【问题描述】:

我正在阅读工作中的程序员

我在 Donald Knuth 的采访中看到了这一段。

Seibel:似乎很多与我交谈过的人在刚开始时都可以直接使用机器。然而 Dijkstra 有一篇论文我相信你很熟悉,他基本上说我们不应该让计算机科学专业的学生在培训的头几年接触机器;他们应该把所有的时间都花在操纵符号上。

我想要那篇论文的链接。那是哪一张纸? (他写的太多了:-)

【问题讨论】:

    标签: dijkstra


    【解决方案1】:

    也许this one

    摘录,从接近尾声:

    在我们分开之前,我想邀请您在介绍性编程课程中考虑以下如何公正地对待计算的激进新颖性。

    一方面,我们教授谓词演算,但我们的做法与哲学家大不相同。为了训练新手程序员操作未解释的公式,我们将其更多地作为布尔代数来教授,让学生熟悉逻辑连接词的所有代数性质。为了进一步切断与直觉的联系,我们将布尔域的值 {true, false} 重命名为 {black, white}。

    另一方面,我们教授一种简单、干净、命令式的编程语言,将跳过和多重赋值作为基本语句,具有用于局部变量的块结构,分号作为语句组合的运算符,这是一个不错的替代结构,一个很好的重复,如果需要,一个过程调用。为此,我们添加了最少的数据类型,比如布尔值、整数、字符和字符串。重要的是,无论我们引入什么,相应的语义都是由与之配套的证明规则定义的。

    从一开始,一直到整个课程,我们都强调程序员的任务不仅仅是写一个程序,而是他的主要任务是给出一个正式的证明,证明他提出的程序满足同样形式的泛函规格。在携手设计证明和程序的同时,学生有充足的机会通过谓词演算来完善他的操作敏捷性。最后,为了让人们明白这个介绍性编程课程主要是一门形式数学课程的信息,我们确保所讨论的编程语言尚未在校园内实施,以保护学生免受测试他们程序的诱惑.至此,我为新生开设的入门编程课程的提案草图到此结束。

    【讨论】:

      【解决方案2】:

      我找到了 Dijkstra 的“残酷”讲座的 manuscript

      【讨论】:

      • 干得好,伙计!欢迎来到stackoverflow。 :)
      猜你喜欢
      • 2013-08-11
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      相关资源
      最近更新 更多