Live data from Hacker News

Why MIT switched from Scheme to Python (2009)

wisdomandwonder.com

21–30 of 249 posts

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

#21

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…

Executable pseudocode is an oxymoron.

And so is Python in many ways. The shoe fits.

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

#22

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…

Are functional languages more computer science than imperative languages?

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

#24

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.

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.

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

#25
post #2

Scheme it's far easier to grasp. With SICP you basically rewrite a Scheme within a Scheme. And you teach Calculus to the interpreter to solve further problems. Online SICP: http://sarabander.github.io/sicp/

The official SICP site is here, including the text.

https://mitp-content-server.mit.edu/books/content/sectbyfn/b...

pdf

https://web.mit.edu/6.001/6.037/sicp.pdf

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

#26

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…

Executable pseudocode is an oxymoron.

"essentially", come now.

The point is that python's syntax reads a lot more plainly and logically for learning than something like Java.

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

#27

Earlier quoted context omitted.

Shouldn't that be the point?

I remember when universities wouldn't teach languages higher level than C/++ because "the languages changed too quickly and the 4 year degree would be obsolete by the time the students graduate". Instead, they focused purely on the low level engineering aspects of the software meeting the hardware, with only advanced classes focusing on things like AI research (pre-LLM days) or modelling fluid dynamics on specialized…

I spent years knowing nothing but C and I’d say it handicapped me in many ways. (I recall insisting that it would be impossible to do anything without assignment.)

After getting my eyes opened a little bit, I read SICP and it was mind blowing. I read a little Haskell, wrote a little Clojure and a lot of Scala. And even though the day job now is Java and Python, I’m much better off for having bothered to learn it.

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

#28

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…

Are functional languages more computer science than imperative languages?

Formal reasoning about functional programs in terms of their (denotational) semantics is normal in a functional programming class (e.g. it's about a quarter of our mandatory-for-undergrads FP course).

Formal reasoning about imperative programs in terms of their (e.g. axiomatic) semantics is only in a grad-level course, and the programs you can reason about are really, really limited compared to the functional ones. (The last time I TA'd the FP class, one of the homeworks involved proving a simple compiler correct. When I took the grad course, I think the most complicated program we proved correct was selection sort.)

I think "reasoning about programs" is more computer-science than "writing programs," and choosing an imperative language signals that you're not emphasizing the former.

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

#29

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…

Lambda Calculus is one of those things that look good on paper as a theory construct but in practice it's not a great abstraction.

And honestly you could go your whole career without touching it, maybe only for the naming of an anonymous function.

Boolean logic, graphs, FSMs, set theory, mathematical proofs, pretty much all user here or there. Lambda calculus? Unless you're one of those Haskell fans, meh.

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

#30
post #11

I was one of the last batches of students on the old Scheme curriculum. I absolutely loved it! Understanding that all loops could be done via recursion, and what a side effect is, is what fundamentally made me fall in love with CS. I've heard good things about the new, and now newer, curriculum but I know I wouldn't have had the awakening I did if it weren't for scheme. RIP SICP --- ps another fun story: we had some…

> turns out the entire scheme specification is short enough to fit on a double sided page if condensed

I think this only held for R4RS and earlier. You can fit War and Peace on one page if you condense it enough.

Post reply on HN