3 ms·
My main problem with teaching CS courses in Java was that it produces folks who have no clue about pointers or memory management in general. This however applie
by fishnchips 12y ago
My main problem with teaching CS courses in Java was that it produces folks who have no clue about pointers or memory management in general. This however applies to Python and Haskell as well. I personally had a strange mix of Java, x86 assembly and Ruby in my curriculum.
- zak_mc_kracken 12y agoThat's like saying "The problem with teaching people how to drive cars is that at the end, they don't know how to ride motorcycles". There are plenty of other classes at the grad and undergrad level that teach you about lower level concepts such as pointers and memory (system, C, OS, ...). The Java classes teach different concepts.
- fishnchips 12y agoI never got C or C++. The OS course, sure, but it was awfully theoretical and we didn't get to code all that much. Depending on the rest of the curriculum you should probably decide what to use to teach introductory CS.
- mp8 12y agoI was lucky to get a mix of C, Java, and Haskell. Unfortunately (to my detriment) I totally ignored Haskell, and it didn't really click until I picked it up at the end of my degree out of curiosity- it really does help to clarify one's thinking. I think teaching the motivation for learning it before beginning would have been better than just throwing it at freshmen, but I can't truly blame anyone other than myself.
- noelwelsh 12y agoA classic curriculum in functional programming, which goes back as far as SICP and is continued in modern books such as PLAI, is to build an interpreter for a programming language. This forces issues like memory management to be discussed.
- lern_too_spel 12y agoDijsktra isn't suggesting that the entire computer science curriculum be taught in Haskell. That would be impossible. He's saying only that the introductory course in programming paradigms be taught in Haskell. Haskell and Scheme are well-suited to such a course.