Live data from Hacker News

Why Did M.I.T. Switch from Scheme to Python?

danweinreb.org

51–60 of 66 posts

Re: Why Did M.I.T. Switch from Scheme to Python?

#51
post #2

This issue is a fundamental one that everybody teaching programming or computer science must answer. Is it better to teach CS from the ground up or top down? The ground up approach is something like SICP, with fundamentals in lambda calculus or Turing machines. Students learn rules such as how a Lisp evaluates an expression and write programs which apply the rules. It's not necessary that this be taught using Lisp, b…

Unfortunately, when MIT moved from 6.001 in Scheme to 6.01 in Python, they also changed later courses to Python because now students wouldn't have Scheme experience. This results in: 6.005 ("software engineering") in Java 6.006 (intro to algorithms) in Python 6.034 (intro to AI) in Python 6.035 (compilers) in Java (6.005 was 6.170 which used Java and 6.035 has always used Java afaik so this list isn't all the new cur…

> I'm not sure I would hire an MIT CS grad that did the new curriculum.

I want to know what line of work you are in where being an MIT grad is considered a drawback.

Re: Why Did M.I.T. Switch from Scheme to Python?

#52
post #47
post #30

Earlier quoted context omitted.

I did undergrad CS at Georgetown too (hi). What year were you, if you don't mind me asking?

Hi! I graduated last year ('08). You?

Ah I probably do not know you then. I graduated in '04. Do you know Zico? He graduated in '05 and is a grad student at Stanford now I believe. We were in the same algorithms class.

Re: Why Did M.I.T. Switch from Scheme to Python?

#53

I'm graduating from MIT (hopefully) in under a month with a degree in CS. The new curriculum is an abomination. If you are teaching some of the (supposedly) brightest students in the world, you shouldn't worry about teaching marketable skills or using popular languages. Your students should be able to pick up a new language easily. Luckily, I took all old-curriculum classes. If I were a student entering college for C…

looks like 61a at cal is still scheme based ( http://inst.eecs.berkeley.edu/~cs61a/sp09/ ) and still taught by the incomparable Brian Harvey. damn I loved that class.

The lectures are online at http://academicearth.org/courses/the-structure-and-interpret... and are really interesting. I'm about halfway through them. I only wish my Scheme-based course had been as cool.

Re: Why Did M.I.T. Switch from Scheme to Python?

#54
Every time this story comes up I'm shocked at the number of CS MIT grads there are on the internets. MIT must be graduating something like 50% of the total internet.

Also the comments on this story are always of the type "Well when I was in school things were taught right. The day I graduated it all started going downhill and now I wouldn't hire someone graduating from that school."

Re: Why Did M.I.T. Switch from Scheme to Python?

#55

Earlier quoted context omitted.

Unfortunately, when MIT moved from 6.001 in Scheme to 6.01 in Python, they also changed later courses to Python because now students wouldn't have Scheme experience. This results in: 6.005 ("software engineering") in Java 6.006 (intro to algorithms) in Python 6.034 (intro to AI) in Python 6.035 (compilers) in Java (6.005 was 6.170 which used Java and 6.035 has always used Java afaik so this list isn't all the new cur…

> I'm not sure I would hire an MIT CS grad that did the new curriculum. I want to know what line of work you are in where being an MIT grad is considered a drawback.

It's not "being an MIT grad", but the "new curriculum" he's commenting on.

Re: Why Did M.I.T. Switch from Scheme to Python?

#56
post #18

Earlier quoted context omitted.

Unfortunately, when MIT moved from 6.001 in Scheme to 6.01 in Python, they also changed later courses to Python because now students wouldn't have Scheme experience. This results in: 6.005 ("software engineering") in Java 6.006 (intro to algorithms) in Python 6.034 (intro to AI) in Python 6.035 (compilers) in Java (6.005 was 6.170 which used Java and 6.035 has always used Java afaik so this list isn't all the new cur…

The program I was in didn't even try to do things like this. Web course? Use perl. OS course? Use C. Soft Eng? Use Java (people demanded at least one Java course). If you can't learn the appropriate language within the first week of the course, you probably should have a different major. Naturally some people were very upset about this, but it definitely made for a better program all in all.

This was the same at my university (Santa Clara University, http://www.scu.edu/engineering/cse/): introductory courses used C++ (for "intro to computing" and data structures), assembly (for a computer organization course) and Haskell (for the SICP equivalent -- not sure if it's still a requirement).

Upper level courses would then expect students to pick up Verilog/VHDL, regular C, assembly, lex/yacc, Scheme/Lisp, Java and Perl/Python as needed.

Re: Why Did M.I.T. Switch from Scheme to Python?

#57
It it just me who is seeing a cowardly surrender to cultural decay here? From the renowned Sussman, no less. The glorious MIT of the 1980s and prior appears to be dead. Erased, in fact, without a trace. Consider the following:

http://mitpress.mit.edu/catalog/browse/browse.asp?btype=2

These are the latest releases from MIT press. Among them you will find nothing remotely like SICP, but plenty of postmodernist/related pablum.

"You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts." Is this not an atrocity, to be fought to the last bullet? Is this not an argument for declaring all existing software obsolete and starting from scratch? Why are we - even luminaries like Sussman - so willing to give up on the future without a fight?

As argued in some of PG's essays, in order for creativity to bear fruit it is not enough for a given individual to possess a creative mind. The culture has to be hospitable to creativity. And there are processes which come close to stamping out creativity without any overt or deliberate suppression involved. Specifically, a transition to a medium where one cannot get reliable, understandable "small parts" having predictable behavior.

Take note: http://xkcd.com/298/

Programmers have indeed created a universe where "science doesn't work." Learning where the permanent bugs and workarounds are inside a phonebook-length API teaches you nothing. It is anti-knowledge. Where your mind could have instead held something lastingly useful or truly beautiful, there is now garbage.

There is no longer a "what you see is all there is" Commodore 64 for kids to play with:

http://www.loper-os.org/?p=16

No one is working on, or sees the need for a replacement. This is just as well, considering as one would have to start from bare silicon - and avoid the use of design tools built on the decaying crud of the past. Only a raving lunatic would dare contemplate it... Outside of programming: Linus Pauling developed an interest in chemistry by experimenting incessantly throughout his childhood. Today, he would have been imprisoned:

http://memepunks.blogspot.com/2006/06/americas-war-on-scienc....

The new generation will have no Linus Pauling, unless the Third World - where one might still purchase a beaker without a license - supplies us with one. Likewise, we will see very few truly creative programmers. What creativity can there be when your medium is shit mixed with sawdust?

Re: Why Did M.I.T. Switch from Scheme to Python?

#58

It it just me who is seeing a cowardly surrender to cultural decay here? From the renowned Sussman, no less. The glorious MIT of the 1980s and prior appears to be dead. Erased, in fact, without a trace. Consider the following: http://mitpress.mit.edu/catalog/browse/browse.asp?btype=2 These are the latest releases from MIT press. Among them you will find nothing remotely like SICP, but plenty of postmodernist/related…

wow, this is just ridiculously over the top.

Re: Why Did M.I.T. Switch from Scheme to Python?

#59

The title is a bit misleading. The gist of TFA is that MIT is switching from Scheme to Python in its INTRODUCTION TO PROGRAMMING course. That would seem to me to be a bit of a no brainer. I find python to be a much more acceptable alternative than BASIC in introducing people new to coder in a way that is more in line with sound computer engineering practices.

I started with C, but from what I've heard, Scheme actually makes plenty of sense as a first language. There's a Marvin Minsky quote, "Anyone could learn Lisp in one day, except that if they already knew Fortran, it would take three days." The "complexity" of Lisp comes from our preconceptions from different languages (Minsky presumably said that when Fortran was more in vogue).

Re: Why Did M.I.T. Switch from Scheme to Python?

#60

I think this is a technology evolution natural move. This will probably happen every few decades to the most capable new language or platform. There is a strong religious backing to Scheme being the only way to teach core CS fundamentals at MIT. I think that is an emotional almost fanboy reaction at times probably filled with heavy bias. Python is a great balance of showing many sides of programming, it can be as eye…

> Scheme and Lisp programmers who are biased

Because we know what it is like to work in a medium that can be understood, behaves correctly, isn't peppered with inconsistencies, and does not force you to clutter your brain with pointless trivia. Call that bias if you will.

> the quirkiness of many compiler systems out there will drive good engineeers to simplify that process

There is no evidence that this is happening or will ever happen. Almost everyone shuts up, bends over, and spreads wide to accept whatever level of pointless complexity the system they are forced to work with has. Programming systems are continuously growing more Byzantine and idiotically laden with accidental complexity as feature is piled on top of feature. This is how we got Python, C++, Java, C#, et al.

Post reply on HN