Earlier quoted context omitted.
Starting at one place in the stack does not prevent you from moving to other places for subsequent courses.
And you don't see value in the core sequence being more deeply interconnected?
Dijkstra on Haskell and Java (2001)
181–190 of 253 posts
Re: Dijkstra on Haskell and Java (2001)
#182My personal opinion - the best languages for learning are script-able, dynamically typed languages like Ruby or Python. You can build very basic programs in a procedural or functional style, and then get introduced very softly into the world of OO. Haskell is great in some ways, terrible in others. Like the fact that you can't apply a normal function to a monad, and monads are hidden with do Lisp/Scheme are conceptua…
You can't apply normal functions to monads? Since when? Or what is a 'normal' function?
Re: Dijkstra on Haskell and Java (2001)
#183The reasoning for bottom-up is that there are fundamental aspects of the bottom up approach that truly teach the fundamentals that are necessary to become a great computer scientist/engineer/developer that I don't think any other method provides.
But the top-down approach is appealing for one reason it seems: It's friendly. I would not be surprised if the retention rate for top-down was greater than the bottom-up. Using something like Python, Java, or whatever other conventional blackbox language is easy, comfortable, and immediately demonstrates to a student the power of programming. The practicality of what they learn is evident. Ideally, interest in this would continue down the line. 'This is really cool, but how does Python actually work?'.
Unfortunately, it seems that most people, when presented with a working blackbox, don't care to see how it actually ticks. It takes a certain special someone to open up a watch, disassemble and reassemble it. So who knows how well the top-down carries over into learning the fundamentals.
The bottom-up has the drawback of intimidating the meek. I certainly was one. I would have benefited from a top-down approach, as I am one of the types who like to see how something ’ticks’.
So therein lies a trade off, would you sacrifice the known quality of your curriculum for better retention? Having someone learn something, is better than nothing, but that’s up to people like Prof. Dijkstra to decide.
EDIT: spelling/coherency
Re: Dijkstra on Haskell and Java (2001)
#184Earlier quoted context omitted.
As Brian Beckman explained, as an aside, in "Don't fear the Monad" [1], these two differing views were born in the '70s and split two programmers into two camps: The bottom-up people, and the top-down people: - The bottom-up people start with the hardware and only add abstractions and trade performance where necessary (fortran, c, java) - The top-down people started with perfect abstraction/logic and reduced/removed…
I don't agree. There's many a programmer I know that can troubleshoot a tube radio, then go write some Lisp. Most are old school folks that grew up in the 8 bit days of solder and wirewrap.
Re: Dijkstra on Haskell and Java (2001)
#185Earlier quoted context omitted.
This strikes me as in principle somewhat wrong and in practice quite wrong. If American universities expelled everyone whose declared major was not a matter of passion, they would in general be pretty empty.
And just imagine then we would not have 1 trillion in student debt with many unemployed college graduates!
Re: Dijkstra on Haskell and Java (2001)
#186I would guess Haskell would be perfect if the goal is to produce academics. But if most of your students are destined for industry, Haskell is in my opinion the absolute worst language. - You'll probably get a high drop out rate because of the complexity (recursion, pure / first class functions etc). - You rely that your students already have experience at high school with imperative languages - The industry by far s…
Industry is far too low a bar to aim at. College should give them the fundamental understanding of programming that they can apply to a variety of situations. Employability flows out of that.
Re: Dijkstra on Haskell and Java (2001)
#187Earlier quoted context omitted.
As someone who's strongly in the "top down" camp by observation, I'm about to refute an interpretation of what that means. Everyone who's learned Haskell really well understands exactly that you learn monads by example, not abstraction. Abstractions need both motivation and "point samples" which describe good reasons for their particular brand of abstract behavior to be meaningful. I don't think at all that the "top…
Same thing happens with design patterns. It probably happens with all sorts of non-obvious but powerful ideas. Hmm. Any sufficiently advanced learning is indistinguishable from madness?
Re: Dijkstra on Haskell and Java (2001)
#188Earlier quoted context omitted.
- The industry by far still don't use functional languages. Flat-out wrong. The world's most popular language (in terms of lines of code, number of programmers and companies using it) is a functional language: JavaScript.
Cheap crappy beer and junk food are popular too.
Re: Dijkstra on Haskell and Java (2001)
#189Earlier quoted context omitted.
>Personally, I see Haskell as the C++ of functional language You should try it some day, it is absolutely nothing like your misconceptions.
Haskell is a relatively difficult language to try. Introductions and books almost seem to expect you to understand the syntax when you begin. And I/O is introduced late, which makes it hard to play around with.
Re: Dijkstra on Haskell and Java (2001)
#190Earlier quoted context omitted.
Plenty of computer science students at my (SICP-using) university had never programmed before attending, yet they're great at it. Your attitude is especially damaging to female students, who are even less likely to lack programming experience. Computer science isn't even about programming all that much. > You can't study Economics if you've never heard of Keynes. Have you ever even been to a university?
Surely you won't get onto an Economics degree course if you haven't already studied economics in high school? I'm from the UK and there you can study Economics from 15. Also, surely the interview will ask you about your background knowledge of economics, and if you didn't know who Keynes was you're unlikely to get an offer.
In the US, a bachelors degree takes 4 years, consists of extensive 'general education' requirements outside of the emphasis area, and generally start with intro courses that are more in depth than what would have been studied in high school. So a background in the particular area is not required.