Live data from Hacker News

A Parable by Dijkstra (1973)

cs.utexas.edu

61–70 of 107 posts

Re: A Parable by Dijkstra (1973)

#61
post #2

Since we're talking about Dijkstra, thought I'd bring up the letter he wrote to the University of Texas when they replaced Haskell with Java in their introductory programming course: https://chrisdone.com/posts/dijkstra-haskell-java https://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Bud...

One thing I noticed even decades ago when I was in school is that the education system - from kindergarten up until grad school - encourages "bare minimum" thinking. The goal is an A - if you happen to learn something en route to getting that A, great, but the goal is an A. Everything about the way things are structured encourages you to find the path of least resistance to that A. Now that I'm (much) older, I'm goin…

GPA and class rankings do seem to be counterproductive measures if you're trying to get people to challenge themselves. The classes I got the most out of are the ones I got B's and C's in, or even had to redo in one case.

It definitely makes more sense if you look at the idea of the "sheepskin effect" where the degree is not a signifier of material mastered, but a signifier that you are a good worker. In that case, what you learn is generally far less important than whether you work well on a team. And a high GPA means you are orderly, methodical and conscientious.

Re: A Parable by Dijkstra (1973)

#62
post #5

Earlier quoted context omitted.

Great letter (2001). It predictably focuses on language quality and side-steps practicality-- the assumption being practicality isn't as important as learning a high-quality language in an introductory course.

Depends on what you think you're teaching. Are you teaching computer science, or are you teaching software engineering? Hint: Of your graduates, probably 95% will work as software engineers, and only 5% will be computer scientists. But CS departments think they're computer science departments, even though they mostly are located in the college of engineering. (I accidentally typed "enginerring", which I thought was a…

I have some university degrees in (non-software) engineering. Engineering school is pretty far from a vocational program, but engineering students often mistake it for one. When I was in industry, it was easy to spot the people who'd made that mistake -- they couldn't engineer their way out of a wet paper bag. Engineering is applied science, and if you don't understand the science, you're going to have a heck of a time trying to apply it. The difference between engineers and scientists is that scientists know how to make new science, and engineers know how to make new things using science.

Re: A Parable by Dijkstra (1973)

#63
The math is simple. This did not require a mathematician, just an cost benefit analysis.

($ * toilet each car) < shunting{($ * action * yard) + ($ * training * employee)} + ($ * accident cleanup) + ($ * customer bad will)

Re: A Parable by Dijkstra (1973)

#64
The final paragraph is my favorite. I have a PhD in mathematics but I've since realized I'm not a mathematician, I'm more of a logician/philosopher. I find the parable very interesting, but I can totally believe a lot of real mathematicians don't. Too many mathematicians, if you crack open a random page of their work, you'll see lots of opaque integrals and calculations. None of that ever appealed to me. Even when I was the top of the class among undergraduate mathematics majors, I was basically doing the bare minimum I could get away with of that kind of "grind", and focusing all my time and passion on things more closely resembling this kind of "parable".

Re: A Parable by Dijkstra (1973)

#65

Earlier quoted context omitted.

Depends on what you think you're teaching. Are you teaching computer science, or are you teaching software engineering? Hint: Of your graduates, probably 95% will work as software engineers, and only 5% will be computer scientists. But CS departments think they're computer science departments, even though they mostly are located in the college of engineering. (I accidentally typed "enginerring", which I thought was a…

> Depends on what you think you're teaching. Are you teaching computer science, or are you teaching software engineering? > But CS departments think they're computer science departments, even though they mostly are located in the college of engineering. I used to think this is true in the form you presented, but now I feel it's really a more relaxed form that's true - CS departments in universities think they're stil…

> They try to teach you more than the immediate needs of your likely job

I would actually take that even one step further - they specifically teach you the things that you're probably not going to encounter in your likely job. I've lost count of how many people I see complain that they never encountered SQL, version control or build management while in school and my response is - that's a good thing! You're going to learn all you need to know about those things when you need them, and they're veryamenable to learning on the job, a little bit at a time. Calculus, statistics, push-down automata, context-free grammars, and all the other "esoteric" stuff you encounter in a CS degree are not.

Re: A Parable by Dijkstra (1973)

#66
I guess the ultimate solution assumes that all the turntables are long enough to deal with at least two-car consists? Seems strange that the company would cheap out on a little bit of porcelain in each car and then overprovision its turntables in such an extravagant way.

Re: A Parable by Dijkstra (1973)

#67

The math is simple. This did not require a mathematician, just an cost benefit analysis. ($ * toilet each car) < shunting{($ * action * yard) + ($ * training * employee)} + ($ * accident cleanup) + ($ * customer bad will)

Read until the end again. The solution they came up with still only put toilets in 50% of the cars.

Re: A Parable by Dijkstra (1973)

#68
post #66

I guess the ultimate solution assumes that all the turntables are long enough to deal with at least two-car consists? Seems strange that the company would cheap out on a little bit of porcelain in each car and then overprovision its turntables in such an extravagant way.

I thought that originally as well. However I'm not sure that the cars both need to be on the turn table to remain paired. If cars #45 and #44 are paired, can we repeat the turntable operation to keep them oriented in the same way without needing to generically solve the problem of car orientation?

Re: A Parable by Dijkstra (1973)

#69
post #60

Earlier quoted context omitted.

One thing I noticed even decades ago when I was in school is that the education system - from kindergarten up until grad school - encourages "bare minimum" thinking. The goal is an A - if you happen to learn something en route to getting that A, great, but the goal is an A. Everything about the way things are structured encourages you to find the path of least resistance to that A. Now that I'm (much) older, I'm goin…

It seems like college taught you "how to learn", which I think is way more important that learning Haskell vs Java, etc., especially in a field as ever changing as Comp Sci. I don't know how many decades ago you were in school, but imagine all those people who were "rigorous" with learning punch cards in 80s in depth, at the expense of getting a wider education...

That's pretty reductive. Rigorous learning in the punch card era would have involved a lot of programming on paper, which requires you to understand the program you are writing in a more comprehensive way than does trial and error. There's a discipline to that type of work that lends itself more naturally slowing down and to thinking about architecture.

Also, while software engineering changes frequently, I'm not convinced that computer science is changing rapidly. It's expanding, but it's not as if fundamental computer science concepts are being rendered obsolete.

Re: A Parable by Dijkstra (1973)

#70
post #66

I guess the ultimate solution assumes that all the turntables are long enough to deal with at least two-car consists? Seems strange that the company would cheap out on a little bit of porcelain in each car and then overprovision its turntables in such an extravagant way.

With the toilet at the end of the carriage that is connected to its corresponding non-toilet carriage, and consequently approximately in the middle (the offset is the "last three feet" that Dijkstra mentions), there is no longer a need to reverse any two-carriage set.
Post reply on HN