3 ms·
I think it's worth pointing out why the author's of SICP themselves acknowledge why it was phased out. Praphrasing, it essentially boils down to the kind of ap
by davidgrenier 8y ago
I think it's worth pointing out why the author's of SICP themselves acknowledge why it was phased out.
Praphrasing, it essentially boils down to the kind of applications developpers of today are writing. People are now mostly slinging libraries they have a superficial understanding of together in a black-box style. So for most proprammers there's a lot of prodding and tinkering and this isn't a skill that SICP teaches.
disclaimer: I don't think I've imagined reading this however didn't bother looking for the reference.
- veddox 8y agoIf your CS degree aims to churn out programmers ready for industry, then a overview of the currently favoured libraries is indeed what you need to teach. If on the other hand, you want to produce actual computer scientists who know how to think for themselves, the SICP is what you're looking for. (And I would hope that an institution like MIT would choose the latter focus for its program.)
- the_af 8y agoI tend to think the goal of a CS education is to form computer scientists. It's just that a lot of people (and articles) think it's about churning out programmers for the industry. With such a mismatch of expectations, the resulting frustration on both sides is not surprising...
- veddox 8y agoI like the German system: We have university CS courses, which tend to be more theoretical, but also universities of applied sciences as well vocational training in IT for the more practical approach.
- dreamcompiler 8y agoI had a hallway conversation with Sussman a few years ago and asked him why SICP was phased out, and the above is exactly what he said in reply. He was not at all happy about the fact that many if not most engineers nowadays were being taught "tinkertoy" or "erector-set" engineering (pretty sure he said one of those words literally) rather than the fundamentals that would allow them to write their own libraries instead of hooking together libraries built by others and being adrift when they didn't work.
- sedachv 8y ago> I think it's worth pointing out why the author's of SICP themselves acknowledge why it was phased out. Gerald Sussman made some remarks about this during an unrelated roundtable discussion at the 2009 International Lisp Conference: https://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/ https://cemerick.com/2009/03/24/why-mit-now-uses-python-inst... Note that Sussman did not actually state why the committee decided to change the curriculum. The remarks about studying software empirically were his opinion. I was in the audience, and while Sussman seemed sincere in his remarks, I still have a hard time believing he was serious. How can anyone state, without irony or sarcasm, that we should just give up, and start treating software programs, where all the "laws" are not only known, but made up, by us, as if they were natural systems, where our only way to understand them was to start "poking" (I may be wrong, but from what I remember this was the actual word Sussman used) at it and observing the results? If you give up before you have even started on modularity, composition, etc., and start treating every program as if it was a million line COBOL hairball, the hairball part is just going to be a self-fulfilling prophecy. My takeaway from Sussman's remarks was the opposite of his message - the ideas about applying mathematical principles to software design in SICP have become even more relevant as a way to prevent software hairballs. I make good money doing the "poking," but if you are going to teach that, stop pretending that you are teaching a science at the university level - this kind of shrug-and-give-up empirical programming is to computer science and engineering what a trade college auto mechanic education is to a mechanical engineering degree.