TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Dijkstra: On the cruelty of really teaching computer science (1988) [pdf]

111 pointsby jackhammer2022over 11 years ago

14 comments

ColinWrightover 11 years ago
It&#x27;s interesting to see how attitudes to this EWD have changed over the years. Here are some of the previous submissions with comments:<p><a href="https://news.ycombinator.com/item?id=43978" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43978</a> : A few comments<p><a href="https://news.ycombinator.com/item?id=1666445" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=1666445</a> : Many comments<p><a href="https://news.ycombinator.com/item?id=3553983" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3553983</a> : Many comments<p>In the earlier threads there are two main voices: &quot;Where can I learn more about this,&quot; and &quot;It&#x27;s useful to see the different perspective.&quot; Both say that there are many nuggets of wisdom to be mined, even when they don&#x27;t agree. There are also a few who dissent and say it&#x27;s irrelevant, impractical, and inapplicable.<p>Even in 3553983 where the top comment says it&#x27;s largely irrelevant there is a useful dialogue discussing the ideas, and how they can be made to work, or at least how we can learn from them in today&#x27;s context.<p>In contrast, in this thread so far we&#x27;ve mostly had comments about the hand-writing, and complete dismissal of the ideas. So far there&#x27;s very little attempt to say: &quot;OK, times have changed, but can we learn something from this?&quot;<p>So I ask - Can we? Are there nuggets to be mined? Or are you convinced that you really do know better, and have nothing to learn from it.<p>I&#x27;m still learning.<p>========<p>For reference, other submissions, mostly without comments:<p><a href="https://news.ycombinator.com/item?id=6701607" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=6701607</a><p><a href="https://news.ycombinator.com/item?id=2122826" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=2122826</a><p><a href="https://news.ycombinator.com/item?id=2090256" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=2090256</a><p><a href="https://news.ycombinator.com/item?id=1989473" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=1989473</a><p><a href="https://news.ycombinator.com/item?id=383210" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=383210</a>
评论 #6839594 未加载
评论 #6839703 未加载
GuiAover 11 years ago
This EWD is mind blowing in its beauty. It&#x27;s 30 pages, but 30 pages that you won&#x27;t regret reading.<p>I love computer science and teaching it is some of the most fun I&#x27;ve ever had. With a lot of practice, you can get across concepts such as computability and turing machines to the non-mathematically initiated within the duration of a party, and it&#x27;s greatly satisfying. (yes I am a lot of fun to be around)<p>The rest of the EWD notes are highly recommended. (also it&#x27;s weird to see an academic write in script). Side question: do any other HNers keep notes in written form? I still do it, using a fountain pen, and am often poked fun at by colleagues :(
评论 #6839058 未加载
评论 #6839101 未加载
评论 #6839222 未加载
评论 #6840327 未加载
评论 #6839596 未加载
bealaover 11 years ago
Transcription: <a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html" rel="nofollow">http:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~EWD&#x2F;transcriptions&#x2F;EWD10xx&#x2F;EWD1036...</a>
评论 #6839607 未加载
randomsearchover 11 years ago
Who is Dijkstra to espouse about the best way of teaching mathematics to primary school children? I think it would be equivalent to a researcher in education deciding they know the best way to design a calculus.<p>The manner in which Dijkstra writes about this is very off-putting - it sounds arrogant and one-sided, dismissive. In fact he comes across as ignorant, which of course, he is, in this area.<p>Worryingly, I see a lot of similar writing in CS blogs. Often authors present as fact their opinions on a topic that they are not knowledgeable about.<p>When I read something like that, I look for the balance in their argument. If they say &quot;well, what are the good sides to teaching by analogy? When does it work best? What is the evidence that teaching basic arithmetic is done well?&quot; then I begin to take them seriously.<p>[edit: typo]
评论 #6841708 未加载
micro_camover 11 years ago
As someone who focused on proof based mathematics in collage and is largely a self taught programer I think this proposal has merit. Begin forced to confront abstraction and formalism without any crutches as a freshman in college changed and expanded the way I thought. Learning to write down a correct proof without an external way of verifying it is an experience everyone should have.<p>However I think this needs to be coupled with an introduction to the concrete at a younger age. In mathematics we teach arithmetic to young children then step up the ladder of abstraction to high school algebra, simple proofs and linear algebra before eventually exposing them to abstract algebra (ie group theory etc). Teaching abstract algebra first would make theoretical sense but the mind tends to need to know at least one example of something before it accepts the abstraction.<p>I imagine a playful introduction to programing for young children coupled with a strong course in formalism for young adults could produce some great programers. Though, as with the proof based math series I took, I&#x27;m sure there would also be loads of freshman drop outs&#x2F;transfers to more applied courses.<p>I also agree with others that insight rarely comes from pure formalism. The point of learning these things is to expand the way your mind works allowing you to think about abstract objects and allowing you to verify insight when it does come.<p>For me Charlie Parker sums up the necessity of a formal education even if it is not explicitly used in practice:<p>&quot;Master your instrument, master the music &amp; then forget all that &amp; just play.&quot;
评论 #6842001 未加载
kaiviover 11 years ago
A wonderful read from a badass scientist. Here is a good nugget of wisdom:<p><i>Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter &quot;How to program if you cannot&quot;.</i>
elwellover 11 years ago
<p><pre><code> My point today is that, if we wish to count lines of code, we should not regard them as &quot;lines produced&quot; but as &quot;lines spent&quot;</code></pre>
stiffover 11 years ago
I think people are attracted more to the form of the EWDs and to it&#x27;s melancholic tone, rather than to the content itself, which is confirmed by the huge popularity of the EWDs as compared to &quot;The discipline of programming&quot;, which is the technical exposition of what Dijkstra really is proposing in the EWDs.<p>As almost all of Dijkstra&#x27;s writing, this piece here is a plea for teaching formal methods. It&#x27;s nicely written I admit, but it is also unbelievably smug and disconnected from reality. Even in physics or mathematics, which are obviously much more mathematically tractable than computer science, people do not do significant new things by using only formal methods. In fact, the technical achievement Dijkstra is most known for, Dijkstra&#x27;s algorithm, was not invented using formal methods, but like most discoveries ever it occurred in a flash of insight after a long period of thinking, as he said in an interview. No matter how much one loves rigour, the dream of formalizing all reasoning has turned out to be a pipe-dream, as evidenced for example by the failure of the Hilbert program, and people everywhere proceed about their business as usual.<p>Mathematics is not, after all, just the manipulation of a string of symbols, and neither is Computer Science, even if all computers do is exactly this, because we humans are complex beings, largely driven by emotions, not consciously aware of all the reasoning processes going on, that are often reasoning in &quot;fuzzy&quot; ways (and frequently with good effects), as opposed to being machines executing chains of logical inferences. In fact, people are born with very different internal worlds, some people are really good at symbol manipulation, algebra, and language, their daily thinking consists of &quot;talking to themselves&quot;, while some people naturally think by imagining pictures and having various loose sensual impressions, among the latter for example the great mathematician Poincare. Was Poincare in need of someone to &quot;really teach him mathematics&quot;? Unfortunately I think Dijkstra assumed everyone is identical to him.<p>Before preaching this too much, look at the practical implementations of his ideas on this, for example have a look at him lecturing on a technical topic:<p><a href="http://www.youtube.com/watch?v=qNCAFcAbSTg" rel="nofollow">http:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=qNCAFcAbSTg</a><p>or read &quot;A discipline of programming&quot;. As nice as the EWD prose is, I honestly can&#x27;t stand the man talking about anything technical for more than 5 minutes. The more concrete the EWDs get the worse they are.<p>For some perspective on how science really gets done, as opposed to people&#x27;s romantic images of how it is done, I recommend &quot;The Sleepwalkers&quot; by Arthur Koestler, about the Copernican revolution, and &quot;The psychology of mathematical invention&quot; by Hadamard.
评论 #6840068 未加载
评论 #6840129 未加载
评论 #6839831 未加载
评论 #6839740 未加载
评论 #6842008 未加载
评论 #6839162 未加载
评论 #6839563 未加载
评论 #6840007 未加载
评论 #6839158 未加载
zeebooover 11 years ago
His page numbers are zero indexed. Cute. I would have loved to take his proposal for an introduction to computer science course.
评论 #6838983 未加载
评论 #6839679 未加载
评论 #6844408 未加载
10098over 11 years ago
I know Dijkstra&#x27;s genius and all, but his papers are just so unpleasant. First, I hate his verbose style and second, I hate his attitude.<p>&quot;The effort of using machines to mimic the human mind has always struck me as rather silly. I would rather use them to mimic something better.&quot;<p>Jesus, could he be any more smug?
评论 #6840077 未加载
评论 #6839479 未加载
Pitarouover 11 years ago
How can a human write that much good prose without scribbling things out?
评论 #6839198 未加载
评论 #6839223 未加载
icsover 11 years ago
Was this post inspired by this post (<a href="http://www.reddit.com/r/compsci/comments/1rxfze/if_you_liked_ew_dijkstras_paper_on_the_cruelty_of/" rel="nofollow">http:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;compsci&#x2F;comments&#x2F;1rxfze&#x2F;if_you_liked...</a>) on r&#x2F;compsci by any chance? I didn&#x27;t read much of the discussion there but the other links are interesting and things which I hadn&#x27;t seen before.
评论 #6839241 未加载
elwellover 11 years ago
Interestingly, I found the handwriting to more readable than most computer fonts; that is, very visually consumable.
评论 #6839234 未加载
mrcactu5over 11 years ago
I am glad he was able to articulate why some types of change are accepted and other changes rejected with hostility -- that some new things can be interpreted through analogies with previous experience.<p>It is the difference between &quot;change&quot; and <i>change</i>, &quot;thinking&quot; and <i>thinking</i>.