Earlier quoted context omitted.
> 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…
> Related: we now have "vocational schools" for programming too. They're called "bootcamps", for some reason. Bootcamps are a joke. Germany has had proper vocational schools for programmers for decades. After high school, you can spend three years to become a Fachinformatiker (it's difficult to translate, but basically means "applied computer specialist"). There are two subflavors, Anwendungsentwicklung (application…
A Parable by Dijkstra (1973)
51–60 of 107 posts
Re: A Parable by Dijkstra (1973)
#52When the shunting person persuaded everyone to imagine the two-car units as if they were symmetrical, the passengers still complained. Toilets can break, and when they did the doubly unlucky passenger would be forced to walk four car lengths to get to the nearest toilet. Also, those helpful arrows would be guiding the passenger the wrong direction for two of those car lengths. So we have comments that go out of sync…
> the least lucky passenger would have to walk six car lengths I just want to elaborate on this to show which assumptions you are making. There are two ways to make a paired unit: --+ and -+-. In your scenario I think you assume the first. The end of the train is thus ...+----+, since you mention the second last car's orientation being reversed. The +'s represent toilets. Then, what you are saying is to consider a pa…
Re: A Parable by Dijkstra (1973)
#53What "software crisis"? Since its inception in the 50s or so, software has only gone from strength to strength.
Re: A Parable by Dijkstra (1973)
#54Earlier 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.
> A very practical reason for preferring functional programming in a freshman course is that most students already have a certain familiarity with imperative programming. Facing them with the novelty of functional programming immediately drives home the message that there is more to programming than they thought. While later on, he does gripe about language quality, I think this is the most salient point of that lett…
I griped about this to my CS/SE professors until my senior year of college, when I finally understood why they were teaching us all these weird languages and styles instead of the C/C++ that I assumed everybody used at the time: Programming languages come and go - hell, entire platforms come and go - but the underlying concepts (and the ability to teach oneself) are forever. I haven't written a single line of C/C++ professionally, but thank goodness I have the mental tools necessary to pick up all the different programming languages, libraries, protocols, etc. I did end up using.
Re: A Parable by Dijkstra (1973)
#55This solution is wrong. Rolling stock needs maintenance, and if you keep units permanently paired you can easily run out of units. In fact there is no easy solution given realistic business constraints. You can either put toilets in every car, which has a cost because it reduces available seating. In the best case you’ll lose money because of the lost seats. In the worst case overcrowding will make the toilets ineffe…
Re: A Parable by Dijkstra (1973)
#56> With growing size or sophistication of the program, the operational argument quickly becomes impossible to carry through, and the general adherence to operational reasoning has to be considered one of the main causes of the persistence of the software crisis. What "software crisis"? Since its inception in the 50s or so, software has only gone from strength to strength.
Re: A Parable by Dijkstra (1973)
#57Since 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...
Re: A Parable by Dijkstra (1973)
#58Re: A Parable by Dijkstra (1973)
#59If the non-toilet cars were made mutable, specifically if they were made so the arrows could be reversed, then the shunting yard could compose the cars without regard for the orientation of the non-toilet cars, and someone later could go through and set the arrow directions. I'd guess there is some sort of preload inspection done by the crew, which might be a good place to handle setting the arrows.
Re: A Parable by Dijkstra (1973)
#60Since 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…
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...