Live data from Hacker News

Why MIT switched from Scheme to Python (2009)

wisdomandwonder.com

51–60 of 249 posts

Re: Why MIT switched from Scheme to Python (2009)

#51
Related. Others?

Ask HN: How has MIT's switch from Scheme to Python worked out? - https://news.ycombinator.com/item?id=24960481 - Nov 2020 (1 comment)

Why MIT uses Python instead of Scheme for its undergraduate CS program (2009) - https://news.ycombinator.com/item?id=18782101 - Dec 2018 (136 comments)

Why MIT Switched from Scheme to Python (2009) - https://news.ycombinator.com/item?id=14167453 - April 2017 (97 comments)

Ask HN: Python or Scheme? - https://news.ycombinator.com/item?id=2523432 - May 2011 (11 comments)

Videos for MIT 6.00 - Python Version - https://news.ycombinator.com/item?id=1045114 - Jan 2010 (1 comment)

Why MIT now uses python instead of scheme for its undergraduate CS program - https://news.ycombinator.com/item?id=842333 - Sept 2009 (38 comments)

Python based MIT 6.00 | Intro to Computer Science and Programming - https://news.ycombinator.com/item?id=819734 - Sept 2009 (6 comments)

Chiming in on the MIT Scheme to Python Switch - https://news.ycombinator.com/item?id=622261 - May 2009 (7 comments)

Why Did M.I.T. Switch from Scheme to Python? - https://news.ycombinator.com/item?id=602307 - May 2009 (65 comments)

Why MIT switched from Scheme to Python - https://news.ycombinator.com/item?id=530605 - March 2009 (128 comments)

MIT replacing Scheme with Python for Intro CS class - https://news.ycombinator.com/item?id=75401 - Nov 2007 (16 comments)

---

Berkeley version:

Scheme vs. Python (2011) - https://news.ycombinator.com/item?id=9973156 - July 2015 (118 comments)

SICP (Python Version) - https://news.ycombinator.com/item?id=3718364 - March 2012 (18 comments)

SICP taught in Python 3 - UC Berkeley online - https://news.ycombinator.com/item?id=3491142 - Jan 2012 (25 comments)

SICP in Python - https://news.ycombinator.com/item?id=3141996 - Oct 2011 (49 comments)

Re: Why MIT switched from Scheme to Python (2009)

#52

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…

"Computer engineering" isn't vocational. It's an entire sub-specialty involving hardware theory and application. "Programming" is the vocational shift which was traditionally outside the purview of academic curricula. You're not engineering anything if you don't have a repeatable process that will deliver expected results. Programming alone doesn't meet that bar.

Re: Why MIT switched from Scheme to Python (2009)

#53

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…

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…

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

that's a good point actually. i had scheme, modula and others i don't remember in my undergrad classes. i remember almost nothing from that time. but at the same time i met some students running an LPmud, where i learned LPC, and then i discovered roxen and pike (which is based on LPC) which i used in all my volunteer and fun programming work. in other words all my motivation for learning stuff came from the outside.

Re: Why MIT switched from Scheme to Python (2009)

#54

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…

I just completed the WGU Masters in "Computer Science".

I put the scare quotes around "Computer Science", because outside of a single algorithms and data structure course and a single AI course (which was extremely high level), it was purely engineering stuff. One assignment had me deploying stuff with AWS, I was designing wireframes of potential "apps" I could create, and I had to write one HTTP server.

It was kind of fun and it was nice that I was able to complete it quickly, but it really shouldn't be called "Computer Science", it should be called Software Engineering. There's nothing wrong with software engineering, I just view it as distinct-but-related from CS.

Re: Why MIT switched from Scheme to Python (2009)

#55

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…

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 "data science" or the like. Undeniably most prospective CS students are not aiming to go into academia, but we shouldn't adapt to this majority and then leave behind those who do want to do more academic things.

My background is in physics, where this sort of dual-track curriculum is well-established, and the physics taught to physics majors is very different from that taught to engineers. Unfortunately the difference is often boiled down to rigor or difficulty (and this will be reinforced if it's physics professors that have to teach both of the tracks), but in reality it is a value-neutral split which is based on pragmatism. CS should have one too.

Re: Why MIT switched from Scheme to Python (2009)

#56

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…

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…

>Once you learn Scheme, well now you've learned Scheme.

There is something really joyful in learning a new language and then implementing a well-known protocol, like HTTP, in that language. You can pick either the agent or server side, and check your work with other well-known agents and servers. In my experience this tends to happen when students like the language they've just learned, regardless of the direction their given by staff. In fact, I'd almost consider it definitional of what it means to like a language - that you'd consider implementing a well-known protocol in it in your free time.

Re: Why MIT switched from Scheme to Python (2009)

#57

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…

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…

I suspect you might be observing two correlates and picking one as the cause of the other in a way that is ahistorical.

Specifically, it seems to me that colleges becoming more vocational and colleges becoming more expensive are both natural outcomes of the neoliberalisation of all things. I am aware that some students now rationalise their educational investments with the logic you describe above, but I think it's a post-hoc rationalisation.

You can get a good job without going to college, and you can get a good education without paying a gazillion bucks.

A side point, but calling it "vocational" seems a bit euphemistic too. Learning carpentry is a vocation. Getting a business degree is not equivalent to learning carpentry. I might say colleges have become commercialised, rather.

Re: Why MIT switched from Scheme to Python (2009)

#58
> Nowadays you muck around with incomprehensible or nonexistent man pages for software you don’t know who wrote. You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts.

Probably the best way, and maybe the only way, to learn this is by doing it. That's how I learned it, with no formal training in programming.

What I learned from SICP and Sussman's other books I would never have figured out any other way. I don't think the world is really as different as Sussman says it is here, and I think the programming world lost something special with this change.

The book lives on anyway, and he'll always be one of my heroes.

Re: Why MIT switched from Scheme to Python (2009)

#59
post #49

Earlier quoted context omitted.

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.

Knowing your way around the ecosystem of one programming language does not build up the intuition necessary for identifying O(n²) (or worse!) algorithms and choosing/writing O(log(n)) (or better!) ones instead. 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 i…

That's not really what we were talking about here. The context was that compsci students want to learn marketable skills, and the claim was that if the student had learned Scheme in class, they could quickly pick up Python. And that's true, for the language itself. But knowing only the language, like never importing code you hadn't written yourself, doesn't go far along the road to marketability.

I'm not arguing that compsci should be job training, not at all. My disagreement is solely with this specific claim.

But FWIW, while I understand your analogy, an astrophysics department that didn't tell the students that there are these things called telescopes, and here's why you might use one over the other for various situations, and that they're how you're going to get the observation data you'll test your theories against, would be doing a disservice.

Re: Why MIT switched from Scheme to Python (2009)

#60

This is just an introductory language and if you’re in a CS program, you’ll definitely move on to more advanced ones. It actually makes sense to switch to Python since it’s far more ubiquitous and accessible than Scheme. Scheme is not widely used in commercial software development, but still enjoys a presence in academia. Python has strong presence in both. On the other hand, Pascal was my “introductory” programming…

This is one of many divides in the field that makes many general discussions hard.

There are many people who think of themselves as a “X programmer” (and perhaps Y and Z), and managers/companies looking for them.

Then there are people who think of themselves as software engineers, and the language does not really matter (and companies that hire for that).

If often see the two camps talking past each other.

Post reply on HN