Live data from Hacker News

A Parable by Dijkstra (1973)

cs.utexas.edu

41–50 of 107 posts

Re: A Parable by Dijkstra (1973)

#41

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…

> 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 developer) and Systemintegration (systems integrator, this curriculum combines sysadmin and development tasks).

All that is entirely separate from CS courses at university, which is an alternate path that one can take (and one that has a higher entry barrier since you need to have at least 8 years in secondary education, i.e. until 12th or 13th grade). In the vocational training, you alternate between weeks at school and weeks at your employer where you work on actual projects under supervision of a qualified mentor.

Re: A Parable by Dijkstra (1973)

#42
post #13

Is Haskell still a preferred introductory language to enter the Functional Paradigm with? Or do you think other alternatives do a better job at that than Haskell ? I'm learning Scheme with the SICP Book ATM, and am confused where to go next to get better at Functional thinking(and programming).

> Is Haskell still a preferred introductory language to enter the Functional Paradigm with?

I say yes, for a two reasons. 1) Enforced purity means you can't just fall back to your old imperative style as coding and use it as a crutch, and 2) it's the "most different" functional language, it will expose you to more than just functional programming and thus teach you more.

Learning Haskell will teach you: pure functional programming, algebraic datatypes, laziness, and ML-style types. All of which are worthwhile imo.

ML-style typing and algebraic datatypes you could also learn in F#/Ocaml/SML, but pure FP and laziness are two things that are very much worth learning and only apply to a handful of languages. And of that handful Haskell is really the only one with an ecosystem and community that makes it practical to write actual projects in.

Re: A Parable by Dijkstra (1973)

#43
post #3

For those who want to see Dijkstra's mathematics of programs in action: 1) basic (great for kids, math novices, whatever): https://www.amazon.com/gp/product/0470684534/ref=dbs_a_def_r... (ignore the two star review, this book would get 5 stars from me) 2) advanced (free, complete with videos): http://www.cs.toronto.edu/~hehner/aPToP/ 3) advanced: https://www.amazon.com/gp/product/0470848820/ref=dbs_a_def_r... 4) adva…

Ad 1) Two five-star reviews on amazon UK:

https://www.amazon.co.uk/Algorithmic-Problem-Solving-Roland-...

Re: A Parable by Dijkstra (1973)

#44
post #42
post #13

Is Haskell still a preferred introductory language to enter the Functional Paradigm with? Or do you think other alternatives do a better job at that than Haskell ? I'm learning Scheme with the SICP Book ATM, and am confused where to go next to get better at Functional thinking(and programming).

> Is Haskell still a preferred introductory language to enter the Functional Paradigm with? I say yes, for a two reasons. 1) Enforced purity means you can't just fall back to your old imperative style as coding and use it as a crutch, and 2) it's the "most different" functional language, it will expose you to more than just functional programming and thus teach you more. Learning Haskell will teach you: pure function…

Thanks for the detailed explanation. I'll surely learn Haskell now, after I'm done with this book.

Re: A Parable by Dijkstra (1973)

#45
post #3

For those who want to see Dijkstra's mathematics of programs in action: 1) basic (great for kids, math novices, whatever): https://www.amazon.com/gp/product/0470684534/ref=dbs_a_def_r... (ignore the two star review, this book would get 5 stars from me) 2) advanced (free, complete with videos): http://www.cs.toronto.edu/~hehner/aPToP/ 3) advanced: https://www.amazon.com/gp/product/0470848820/ref=dbs_a_def_r... 4) adva…

5) advanced: https://www.amazon.com/Science-Programming-Monographs-Comput...

Re: A Parable by Dijkstra (1973)

#46
For me, one moral of the story is when approaching any issue in a live system, it often pays to go back to modeling the actual problem instead of iterating on broken assumptions. Good solutions should have documentation which explains their take on the problem and the reason the solution in particular was chosen versus other potential designs.

Of course, outsourcing, interdepartmental or interpersonal politics can create commercial misincentives to remove such time and money saving features...

Re: A Parable by Dijkstra (1973)

#47

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…

In Finland we have three tiers of formal programming education. There's vocational secondary school awarding "technician" level degrees, an alternative to more academic Gymnasium type secondary education (grades 10 to 12). The learning is very hands-on and practicality oriented.

Then there's "vocational" or "applied science" colleges you can enrol in after either vocational or academic secondary school. They offer four-year bachelor-level degree programs in various fields from healthcare to engineering. The education attempts to mix theory and practice (with varying success).

Finally there's the "real" universities, offering primarily five-to-seven-year BSc+MSc programs (before the Bologna Process you used to go straight to master's; these days the steps are somewhat more discrete), and of course PhD programs for those wishing to pursue an even higher level of education.

Re: A Parable by Dijkstra (1973)

#48
post #47

Earlier quoted context omitted.

> 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…

In Finland we have three tiers of formal programming education. There's vocational secondary school awarding "technician" level degrees, an alternative to more academic Gymnasium type secondary education (grades 10 to 12). The learning is very hands-on and practicality oriented. Then there's "vocational" or "applied science" colleges you can enrol in after either vocational or academic secondary school. They offer fo…

Ah yes, we have "applied science" colleges as well. What you describe sounds pretty much identical to the German system.

Re: A Parable by Dijkstra (1973)

#50
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...

I absolutely adore Djikstra's stubborn and always eloquent insistence on rigor and purity in CS education, his unabashed refusal to see even one tendril of its mathematical connections be sacrificed for mere code production efficiency. If this case isn't going to be made at the university level, then where?
Post reply on HN