5 ms·
I really wish SICP had been a 2nd year course (with a requisite increase in difficulty) instead of my very first course in the EECS department. Not having had a
by mattlong 10y ago
I really wish SICP had been a 2nd year course (with a requisite increase in difficulty) instead of my very first course in the EECS department. Not having had a ton of background in programming beforehand, I feel that a lot of what SICP has to offer was lost on me to some degree due my not appreciating it at the time.
I suppose the same could probably be said for any intro course or just college in general...
- shepardrtc 10y agoMy university used to have an Engineering Fundamentals class that all Engineering students were required to take their first year. Among several other things, it taught how to use Excel and more importantly, programming using Fortran. It wasn't in-depth, but you learned what programming was in a pretty easy environment.
- thrownaway2424 10y agoWe had a similar freshman pan-engineering course at Texas A&M that taught both excel and fortran among other things. Probably the most practically useful course in the entire program.
- thaumasiotes 10y agoMy university offered "intro to unix". It wasn't required for anyone, but it did fill a general education requirement. It was also one of the most practical, useful classes they had. A CS student who didn't take it (probably most of them) would still pick up most of the material by osmosis, but I think that class was a great idea.
- WildUtah 10y agoIn Math, you take Calculus. It's four semesters. Then you take Real Analysis which is the exact same material all over again, but you actually learn it and prove the theorems instead of just memorizing a few formulas and blindly applying them. It's the same in Economics where you take Micro and Macro and then junior or senior year you do the same all over again but this time you take it seriously with logical reasoning instead of just memorizing a couple stock phrase explanations. SICP wants to be both. It's a great book so maybe it can do both. But it's hard for a class to do both.
- three-cups 10y agoI first read SICP 10 years into my programming career. I felt like that was a good point to read the book. Any earlier and much of it would have been lost on me. But maybe this is the kind of book that you read and re-read and always find new things.
- computmaxer 10y agoAt my university it was a 3rd or 4th year course (depending on how quickly you were able to knock out the prereqs), and I think that was a great approach. At that point you've used programming languages enough that creating your own interpreter is a fascinating experience.
- gumby 10y agoWhen 6.001 was introduced, a surprisingly large number, perhaps a majority, of MIT students arrived without having leaned how to program. SCIP was their first exposure to programming. That's inconceivable to me now.
- Apocryphon 10y agoI think Berkeley's EECS curriculum starts with functional programming instead of imperative. Need someone to confirm.
- sokoloff 10y agoI was in the opposite situation. I'd been programming (mostly self-taught) for so long in imperative languages that I really struggled with 6.001, ultimately dropping the course. (I was course 2 taking .001 for "fun".)
- thorrr 10y agoI took 6.001 in the late nineties and hated it/did very poorly. I found it waaaaaay too difficult as a freshman. Oddly, doing a bunch of C++ and Java in high school made it even more difficult. Biggest problems: 1. the programming environment (an emacs clone in scheme) had an extraordinarily steep learning curve 2. S-expresssions were hugely difficult to visually parse and edit vs. languages with more familiar syntax. 3. very little exposure to practical projects in the class - felt like constantly working on toy projects or impractical abstract constructions I got a lot more out of 6.170 (software engineering lab) and the other computer science classes. I have a much greater appreciation for the class now after 15+ years and recently worked through SICP again. It's much easier with more programming experience, not to mention Emacs paredit mode. I always thought 6.001 should have been a 2nd or 3rd year course. I would have gotten a lot more out of it.