Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

About Dijkstra's paper

Tags:

dijkstra

I am reading Coders at Work.

I came across this paragraph in Donald Knuth's interview.

Seibel: It seems a lot of the people I’ve talked to had direct access to a machine when they were starting out. Yet Dijkstra has a paper I’m sure you’re familiar with, where he basically says we shouldn’t let computer-science students touch a machine for the first few years of their training; they should spend all their time manipulating symbols.

I want link to that paper. Which one paper is that? (He wrote too many :-)

like image 962
Pratik Deoghare Avatar asked Aug 09 '10 06:08

Pratik Deoghare


People also ask

How does Dijkstra's work?

Dijkstra's Algorithm finds the shortest path between a given node (which is called the "source node") and all other nodes in a graph. This algorithm uses the weights of the edges to find the path that minimizes the total distance (weight) between the source node and all other nodes.

What does Dijkstra mean?

Meaning:One who lived by a dyke.

What is Dijkstra's algorithm explain with example?

Well simply explained, an algorithm that is used for finding the shortest distance, or path, from starting node to target node in a weighted graph is known as Dijkstra's Algorithm. This algorithm makes a tree of the shortest path from the starting node, the source, to all other nodes (points) in the graph.

Who made Dijkstra?

Edsger Dijkstra (left), Bram Loopstra and Ria Debets at Mathematisch Centrum in Amsterdam (1954). His solution was to design an algorithm that would find the shortest route between two cities in the Netherlands using a simplified map.


2 Answers

Maybe this one?

Excerpt, from near the end:

Before we part, I would like to invite you to consider the following way of doing justice to computing's radical novelty in an introductory programming course.

On the one hand, we teach what looks like the predicate calculus, but we do it very differently from the philosophers. In order to train the novice programmer in the manipulation of uninterpreted formulae, we teach it more as boolean algebra, familiarizing the student with all algebraic properties of the logical connectives. To further sever the links to intuition, we rename the values {true, false} of the boolean domain as {black, white}.

On the other hand, we teach a simple, clean, imperative programming language, with a skip and a multiple assignment as basic statements, with a block structure for local variables, the semicolon as operator for statement composition, a nice alternative construct, a nice repetition and, if so desired, a procedure call. To this we add a minimum of data types, say booleans, integers, characters and strings. The essential thing is that, for whatever we introduce, the corresponding semantics is defined by the proof rules that go with it.

Right from the beginning, and all through the course, we stress that the programmer's task is not just to write down a program, but that his main task is to give a formal proof that the program he proposes meets the equally formal functional specification. While designing proofs and programs hand in hand, the student gets ample opportunity to perfect his manipulative agility with the predicate calculus. Finally, in order to drive home the message that this introductory programming course is primarily a course in formal mathematics, we see to it that the programming language in question has not been implemented on campus so that students are protected from the temptation to test their programs. And this concludes the sketch of my proposal for an introductory programming course for freshmen.

like image 162
Tom Crockett Avatar answered Oct 02 '22 08:10

Tom Crockett


I found a manuscript of Dijkstra's "Cruelty" lecture.

like image 38
user613435 Avatar answered Oct 02 '22 10:10

user613435



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!