Why MIT Switched from Scheme to Python (2009)
51–60 of 102 posts
Re: Why MIT Switched from Scheme to Python (2009)
#52Earlier quoted context omitted.
Because it is a required subject in your curriculum? You don't get to pass people just because they say they know something.
If a student claims to know what the class would teach, you don't have to take their word for it: you can talk to them, or you can give them a test. (I skipped the first two intro CS classes in college after talking to the professors and figuring out the right place to start given my background.)
In university, successfully challenging also gives you credits for that course (though there is a small fee per unit). I successfully challenged four courses (all in graphic design) - three of which were based on portfolio review and the fourth was based on completion of course projects in an accelerated period. Additionally, though not quite a challenge, I was able to speak with a couple CS professors and get them into admitting me into their courses despite not having the prerequisites (though was doing them concurrently).
The course requisite structure is more a guideline than a rigid computer system that works one way and only that way.
Re: Why MIT Switched from Scheme to Python (2009)
#53That said, the rationale presented in the article is a really good one. Hm.
Re: Why MIT Switched from Scheme to Python (2009)
#54Earlier quoted context omitted.
While I think that most CS people should learn assembly and computer internals basics, it would be an absolute disaster to start students off in assembly as CS 101. Python is a fairly decent language for starting people off: * It doesn't have a lot of boilerplate, so no magic "I'll teach you what this means in three weeks" steps * Output for debugging is fairly easy, since print accepts a lot of stuff without needing…
But many students come in with years of programming in a language like Python, Java, or C++. My friends and I built video games when we were in high school so we were comfortable in all three of those languages. Scheme levels the playing field. I have never encountered a student who entered university with years of functional programming experience and I was a TA for an introductory CS course. I think moving back to…
Re: Why MIT Switched from Scheme to Python (2009)
#55I took 6.001 in 1999 (I think). Hal Abelson taught it along with a professor who took off his sweatshirt to reveal a Microsoft tee at his final lecture (he went to Microsoft). What was great about Scheme (Lisp) is that most programs are basically words from your vocabulary, parentheses, and cars and cdrs. With procedural languages, there is always a sense that the language provides all the tools, and the magic happen…
Re: Why MIT Switched from Scheme to Python (2009)
#56Earlier quoted context omitted.
If students have years of programming experience, why are they being made to take programming 101?
When you say "programming 101" you might not be talking about the MIT courses being discussed here. 6.001 was a course in functional programming, based on the book Structure and Interpretation of Computer Programs. 6.01 (the replacement course that uses Python) is a project-based course involving robots and stuff. Neither of these courses depend on any specific knowledge, but they would be very difficult courses if y…
While I can't speak for MIT, SICP was used as the introductory course for CS in a number of universities. It assumes no programming. It is challenging, but that's the point of going to top universities.
Re: Why MIT Switched from Scheme to Python (2009)
#57https://github.com/nickbauman/sicp/blob/master/src/section2_...
I loved the process. Scales fell from my eyes. I didn't get this with Python, even though I love that language too.
Re: Why MIT Switched from Scheme to Python (2009)
#58Read many comments, decided to make a reply on the main one so its easier to address them all. Many people suggest that it was a bad switch and that Scheme should have been kept because it helped them understand FP. I think it would be doing a disservice to other students if they didn't switch. The rationale given was a great one actually. OOO is there for a reason. I do not like the idea that FP is the answer for ev…
Re: Why MIT Switched from Scheme to Python (2009)
#59One of the key things about SICP in Scheme was that the language used so few intrinsic keywords and structures (I think it was something like 7 intrinsic keywords that could be used for just about everything you needed to do) that you could move on from learning about the language really quickly. It kept the focus on the underlying principles (every programming language is a set of primitives, a means of combination…
> 50 years there won't be that many application developers left either. I like your comment, but the crystal ball statement in the last sentence is a bit too much.
Re: Why MIT Switched from Scheme to Python (2009)
#60At UBC CS a few years ago they made a switch in the opposite direction, from Java to Racket for their intro course. I think this was a very good decision because it allowed them to spend less time teaching syntax (which in racket is very simple) and more time focusing on fundamental topics such as graphs, recursion, functional programming, and test driven development. Compared to the equivalent intro programming cour…
The sheer amount of nonsensical boilerplate required in any Java program, even trivial ones, makes it a terrible language for teaching Computer Science. Think about trying to teach the meaning of "public class Foo { public static void main(String[] args) { ... }}" to a complete novice. Class-based design, inheritance, visibility, return types, arrays, etc. all right off the bat. It's too much. Scheme and Python both…