Isn'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…
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.
Why MIT switched from Scheme to Python (2009)
41–50 of 249 posts
Re: Why MIT switched from Scheme to Python (2009)
#42Isn'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…
Assembler too. For example, Knuth's [M]MIX in The Art of Computer Programming.
That said, this is an introductory programming course, and there are separate courses focused on algorithms (which are not the same as programming). I agree with the article: programming has changed dramatically, while the core of algorithms remains largely unchanged.
Re: Why MIT switched from Scheme to Python (2009)
#43Earlier quoted context omitted.
There were plenty of less rarefied CS departments that were concerned about this, and they taught C, C++, or Java in their introductory classes. Ultimately, it doesn't matter. It's your first language, not your last.
How many people do you know who are monolingual?
Re: Why MIT switched from Scheme to Python (2009)
#44Isn'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…
Computer Engineering is its own discipline, typically lumped with Electrical Engineering, which is more about system architecture and design and only touches on programming at a low level such as device firmware. What I think you're really lamenting is the devolution of CS education to vocational programming.
Re: Why MIT switched from Scheme to Python (2009)
#45Isn'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…
Things would be so much better if this were actually true..
Re: Why MIT switched from Scheme to Python (2009)
#46Isn'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…
I'd argue that SML (or derivative thereof) would make for a better teaching language, for both the lambda calculus aspect and the type theory aspect.
Re: Why MIT switched from Scheme to Python (2009)
#47Isn'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…
My reasoning at the time in this order was:
1. Widely used tools and practices offer a flywheel of usefulness that can help motivate undergrads to learn about computation. Once you learn Scheme, well now you've learned Scheme. But at the time if you had learned Python you could then use something like Python's system and socket APIs to play around with the lab or personal Linux systems. On the web side, there was web.py or Flask (haha this was the late 2000s/early 2010s) to motivate yourself to keep going. The student could spend their summer building apps and tools so that they appreciate computation for more than just its "aesthetic" beauty.
This was a time when CS wasn't all that prestigious on its own and salaries weren't as high as they are now, so many folks who banged their head against Scheme or MMIX or LC3 would just churn to the EE or MechE departments.
2. As a grad student it was almost trivial to set an exam paper that could weed out most of the class. This was especially trivial at the introductory class level where Scheme would be taught. If the concern was rigor it was very simple to maintain the rigor in other ways.
3. For better or for worse many undergrads had no intent of going to grad school, and many of the undergrads taking our classes weren't even students of computer science. They were electrical engineers or industrial engineers who wanted to learn enough programming to automate things in their field but were more interested in their actual areas of concentration.
In the years since my thinking around this evolved, but I still share the same conviction I did then. Probably moreso given the sheer ubiquity of Python now.
Re: Why MIT switched from Scheme to Python (2009)
#48Isn'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…
Colleges becoming more vocational is a consequence of colleges becoming more expensive for students. If you are paying all of that money for college, you better get a good job out of it. I don't see that as a bad thing necessarily, but it would definitely be nice if we had better paths for those who want to end up in research. I'd argue that SML (or derivative thereof) would make for a better teaching language, for b…
https://news.ycombinator.com/item?id=13098598
A critique along those lines which suggests KRC and Miranda which are in the same vein as SML.
Re: Why MIT switched from Scheme to Python (2009)
#49Earlier quoted context omitted.
To be fair, if you learn computer science well enough to thoroughly understand Scheme, I don't think it'll take more than a few weeks during the summer to learn Python.
I disagree. You can learn the language itself pretty quickly. Finding your way through the expansive standard library will take longer. Getting a good handle on the package ecosystem is a lifetime learning project.
Computer Science has little to do with science, but what it teaches you is certainly closer to science than just building a huge mental index for a bunch of work done by other people.
There's certainly value in that skill, but it has no place in a Computer Science curriculum.
This would be like taking Astrophysics students and telling them to study the details of all of the different kinds of telescopes they can buy.
Re: Why MIT switched from Scheme to Python (2009)
#50On the other hand, Pascal was my “introductory” programming language (I already knew BASIC pretty well at that point), but it certainly wasn’t the only one in my program - we did Perl, Prologue, C, C++, etc.
In a professional software development career, it certainly won’t be the last language you’ll learn.