Why MIT switched from Scheme to Python (2009)
111–120 of 249 posts
Re: Why MIT switched from Scheme to Python (2009)
#112Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
But since I never took compiler theories and other courses on programming language, I never bumped into many of those concepts again except for those where modern languages adopted the same feature, and I ended up having to relearn them anyway. Hence, I would also argue that these days, most students would have been better served starting with a practical language.
Re: Why MIT switched from Scheme to Python (2009)
#113Earlier quoted context omitted.
Yes. One of the biggest complaints that computer science departments used to get from students is that they weren't learning any languages that employers are using.
I always found this to be a shortsighted complaint. Getting exposed to languages where computation models are clear gives you an excellent background to switch to the language du jour and become a master. Going through e.g. HtDP or CTM makes it easy to transition to Python and write excellent code, whereas traversing the opposite path is going to be tough.
Not a unique problem to software either. My sister in-law is a mechanical engineer. Her first employer was upset she didn't know anything practical, and only knew theory. She had to spend years catching up.
Re: Why MIT switched from Scheme to Python (2009)
#114Earlier quoted context omitted.
Human languages and programming languages are not comparable. You will need a lot more effort to become fluent in a second human language than in second programming language. Even if the human language is Esperanto (designed to be really easy for speakers of European languages), and the programming language is C++ (perhaps the most inconsistencies and foot guns) the programming language will need a lot less effort to…
They're not directly comparable because humans have an inbuilt ability to learn human languages. The vast majority of people on the planet know more than one human language and know zero computer languages. It's literally the opposite of what you're claiming.
I regularly use several programming languages, and tend to pick up a new one every year. I've been spending the last six months studying my second spoken language; I promise you human languages are much harder to learn.
Re: Why MIT switched from Scheme to Python (2009)
#115Earlier quoted context omitted.
even better is learning the languages you want to learn why are you paying a school to teach you something adjacent to what you want to learn so you can learn the thing you need yourself?
> why are you paying a school to teach you something adjacent to what you want to learn so you can learn the thing you need yourself? Because some topics are easy to learn by yourself, and some are not, so the latter ones are better learned in a college setting.
Re: Why MIT switched from Scheme to Python (2009)
#116Earlier quoted context omitted.
I always found this to be a shortsighted complaint. Getting exposed to languages where computation models are clear gives you an excellent background to switch to the language du jour and become a master. Going through e.g. HtDP or CTM makes it easy to transition to Python and write excellent code, whereas traversing the opposite path is going to be tough.
Sure, it's possible to catch up, but we're talking about at least four years of potential experience. That means spending years catching up, which can seriously impact you career. Not a unique problem to software either. My sister in-law is a mechanical engineer. Her first employer was upset she didn't know anything practical, and only knew theory. She had to spend years catching up.
Re: Why MIT switched from Scheme to Python (2009)
#117Earlier quoted context omitted.
When this kind of switch was happening in CS departments, as a graduate student I was part of a "movement" that advocated for switching away from things like Scheme to Python for introductory classes in my elite CS institution. (We focused on other things as well such as more interdisciplinary research, which was where I was more passionate, but that's a separate matter.) My reasoning at the time in this order was: 1…
I think the solution is to have, as is the case in math/physics, an honors intro CS sequence compared to the regular intro CS class. The latter would be the recommendation for all non-CS majors, and the former would be for CS majors. I've always thought that those who are focusing on more vocational training should not be in what is called the CS program, maybe there are other majors called "software development" or…
Re: Why MIT switched from Scheme to Python (2009)
#118Dijkstra on Haskell and Java https://chrisdone.com/posts/dijkstra-haskell-java/ "A fundamental reason for the preference is that functional programs are much more readily appreciated as mathematical objects than imperative ones, so that you can teach what rigorous reasoning about programs amounts to."
Re: Why MIT switched from Scheme to Python (2009)
#119Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational? LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching a…
It's not that simple, Python is a fiddly, complex, high-level language that has accreted features in a very ad-hoc way. This makes it very hard to teach and learn in a way that's expected to pay even the most cursory attention to actual rigor. You could probably define a Baby Python subset of the language that's just as simple and rigorously defined as Scheme and teach that, but this isn't how the new MIT intro courses have been designed.
Re: Why MIT switched from Scheme to Python (2009)
#120Earlier quoted context omitted.
I am confused, what is the relevance of the word essentially?
Do you agree or disagree that Python is more readable/closer to pseudocode than say Java or C++? Less syntactic sugar, no need to define namespaces/classes, more intuitive for declarations, etc.