7 ms·
The way it was explained when I took the class was that the language is irrelevant for such an intro class and he (harvey, the guy who taught in scheme) just us
by joshAg 15y ago
The way it was explained when I took the class was that the language is irrelevant for such an intro class and he (harvey, the guy who taught in scheme) just used scheme because SICP is so good.
We actually went through tons of different programming paradigms that scheme and lisp probably weren't really designed for, like OO (closures upon closures, all the way down). Throughout the class harvey and the TA's emphasized that everything we were learning could be done in any language, and didn't actually require scheme or lisp (yes, we never got to macros).
I can understand why you it might seem strange to port SICP over to scheme if you read SICP with the intention of learning lisp, but at berkeley the point of using SICP was to iterate through many different programming paradigms and cover basic computer science. unless they've found a better manual for this, it makes a lot of sense to just translate SICP instead of starting from scratch.
- tikhonj 15y agoI don't know, I found the way they did OO actually made more sense than what I was taught earlier in a class using Java. It also seems more logical and elegant than Python's OO implementation, even if Python's isn't quite as arbitrary and complicated as Java's. I think the language was only irrelevant because Scheme is so simple. We covered it in a couple of lectures and then it stayed in the background. I really don't see the case for switching to Python at all--why "fix" something that isn't broken? Everybody seems to just assume that Python is a better choice.
- joshAg 15y agoNone of the professors want to teach in scheme anymore, and a vocal subset of the eecs students think scheme is a waste of time because it has no real world applications. That said, I think scheme is one of, if not, the best language to begin programming in, and agree with you that none of the reasons given for switching were very compelling. Those scheme handles OO paradigms, the way it does is kind of annoying below the abstraction. however, scheme wasn't designed to handle OO, it was designed for functional programming. if i remember correctly, mutability is a hacked on addition (one of the reasons you use set! instead of def).
- tikhonj 15y agoI, along with several others, are also trying to be vocal in support of Scheme, but I think we're an even smaller subset :( That said, the self-paced class seems really good. Some of my friends are TAing for that class and it seems to be going well.
- joshAg 15y agoi just hope it lives on every semester, and the faculty doesn't treat it like the red-headed step child of the 61 family.
- Xurinos 15y agoEvery time I hear from someone that scheme has no real world applications, I like to pass them this link: http://philosecurity.org/2009/01/12/interview-with-an-adware-author http://philosecurity.org/2009/01/12/interview-with-an-adware...
- joshAg 15y agoif i remember correctly, some airfare calculators were/are written in scheme/common lisp for the macros as well.
- nobody3141 15y ago>best language to begin programming in The problem is that how many of the new undergrad intake at MIT/UCB are new to programming ! It was a little easier back in the 80s when the new students would only have known BASIC or 6502 assembler
- joshAg 15y agomost of the arguments that i heard about moving away from scheme were about how it wasn't worth teaching to people who had never programmed before because it wasn't practical/real world enough or too abstract/LISPy. i think scheme is still great if you already know some programming because you can appreciate it even more.
- baddox 15y agoMaybe at MIT an "introductory course" means something a lot different than the school I went to, but SICP covered a lot of stuff in more depth than my entire CS degree did. I'm referring mostly to the 4th and 5th chapters, which cover language implementation right down to the hardware. Are those chapters included in MIT's "introductory" computer science course?
- tikhonj 15y agoMy impression, and I recall this from reading the introduction, is that the fourth chapter is included--just like at Berkeley--but the fifth chapter isn't. The way the Berkeley intro course series is structured, it actually makes sense to not teach the fifth chapter in the first class: the idea is that you go from the top down, starting with really high abstractions and working your way down to building a computer out of logic gates. The fifth chapter fits in with the latter portion more than with the rest of SICP. Also, MIT doesn't teach SICP at all in its intro course any more, as far as I know. They've also switched to Python, but I don't think they've kept the book, structure or material from the Scheme course (unlike what Berkeley is doing here).