Live data from Hacker News

Why MIT switched from Scheme to Python (2009)

wisdomandwonder.com

101–110 of 249 posts

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

#101
post #83
post #35

Earlier 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.

One of the big shifts in academia over the past couple decades is that, for any number of reasons, students today are less likely to self-study or tinker outside of classes and internships. The increased prevalence of basic bootcamp-style classes like "Let's Build a Rails App" in CS programs is because departments can no longer assume that students will explore things like that in their spare time.

What good does that do, though? Make it harder to tell the intrinsically motivated students from the “I’m just here to get a job when I graduate”? It seems like it harms the former.

Is that what we need from universities? Is that helping employers? Helping strong or intermediate students?

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

#102

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…

The only point I really have an issue with is #2, where the focus seems to be on “weeding out” students as a sign of rigor. I would much prefer that some kind of pedagogical motivation replace this point.

Edit: I take that back.

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

(Not from SICP but How to Design Programs): The claim is that you’ve learned how to THINK about programming. You understand how to organize and test your code so you can make a larger project.

I think the dismissal of a Scheme-like language as a dead end is shallow, and includes a large assumption about the (lack of an) ecosystem of the language. I think saying more will turn this into a rant.

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

#103
post #43

Earlier 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.

They’re not directly comparable because programming languages are much simpler and much easier to learn. Becoming a good programmer is hard, but that’s not due to difficulty of learning a programming language. Once you’re a good programmer, new languages are easy. A decent programmer should be able to do something useful in a new language in a week or less, and be reasonably competent in a month or two. See how long it takes anyone to learn a human language to that level.

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

#104
post #79
post #41

Earlier 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.

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)

#105

This story has been reposted many times, and I think GJS's remarks (as recorded by Andy Wingo) are super-interesting as always, but this is really not a great account of "why MIT switched from Scheme to Python." Source: I worked with GJS (I also know Alexey and have met Andy Wingo), and I took 6.001, my current research still has us referring to SICP on a regular basis, and in 2006 Kaijen Hsiao and I were the TAs for…

MIT "units" of class divided by 3 = other American university credits. 3, 4, and 5 credits would be 9, 12 and 15 units; generally 15 units includes lab time, although there are more or less pure lab classes too.

credits are hours spent in class per week, and units are ostensibly hours of class plus homework, except it's a lie, there is much more homework than that.

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

#106
post #24

Earlier 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'm not so sure someone who's good with Scheme will be bad with Python or Java. On the contrary, I suspect that such a person is likely to be better suited to build software in either of the latter two. I also suspect that Python is not a particularly good first language for someone who aims for a professional career building software.

When I went to university in the 90's, Scheme was used in a couple of early courses. I had already learned C and Java on my own, but greatly enjoyed how Scheme made me think about problems differently. (I didn't learn Python until much later when I was out of school.)

As long as students are exposed to multiple languages, I think starting w/Python is fine. Every language has its issues.

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

#107
post #41

Earlier 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.

If you understand the fundamentals, you can easily switch between languages.

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

#108

Earlier 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.

That's kind of a useless argument. Universities often also don't teach people any web development. In many cases a graduating student has never worked on any real project. If the university's idea is, that the student can learn those things in their free time, then surely asking someone to learn a little bit of Python or another language is not too big an ask either. So which one is it? Learn that stuff at home on yo…

When I was in college, we had our base software development courses and could choose web development as an elective. Our class taught .NET.

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

#109

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 think you mean software engineering. Computer engineering is computing hardware, CPUs, etc.

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

#110
post #4

Earlier quoted context omitted.

To do that with Scheme/SICP, you actually have to understand the CS principles behind it. Not as much with Python, which is likely why it became a more popular choice.

Shouldn't that be the point?

That's what I'm trying to say. SICP teaches you to think differently and "grok" the CS concepts. This isn't always the case with other approaches, which can be much more reliant on blind copy-and-paste and library functionality.
Post reply on HN