Friday, November 02, 2007

Python at MIT

There was a bit of buzz about a year ago when MIT announced plans to experiment with an alternative version of their electrical engineering/computer science (Course 6) curriculum - one that would start students with a Python-based course instead of the famous Scheme-based 6.001. It was exciting news, but I hadn't heard anything about it since then.

Today, a look through the department's webpage shows that the experiment has come quickly to fruition, and the new curriculum is the standard for this year's freshmen.

6.01, Introduction to EECS I
, with Python (and robots! Sounds FUN!)

I'm dying to know more about this! I'm going to hit up school friends for info, but maybe somebody here has more details to supply?

I still meet plenty of neckties who have never heard of any language besides C/Java/.NET (hey, it's the Midwest, and it's the Air Force), don't know why Python matters, and aren't interested in understanding its merits directly - only want to know "who's using it?". "MIT teaches it to all their EE/CS students" is a pretty good one-liner response. I'm not above leveraging MIT's name recognition. I did the time, after all (as a chemical engineer, not EE/CS, but still). Granted, it never won world domination for Scheme, but I bet it is the source of a very large fraction of the fame that Scheme does have.

12 comments:

Corey Goldberg said...

great to hear. very smart Pythonistas coming.

Dorai said...

Cool. Hope this will be a model for lots of other CS 101 courses.

John Tenders said...

I think its great that MIT are pushing Python to the forefront. We'd been using PHP for years until it failed on us on a big project (well, we failed to evaluate its capability if I'm being honest!). We switched to Python for some intensive stuff and it rocks. I'm no longer a programmer, but I've been in awe of what our guys have achieved with it. Well done MIT

Anonymous said...

What exactly is your connection to Course 10?

Catherine said...

anonymous,

Course 10 SB '93. I sometimes wonder whether I wish I'd gone 6-3, but it all works out in the end.

Anonymous said...

"who's using it?"

Somehow I don't think the devastating reply "Google, NASA, MIT, and Industrial Light and Magic, to name but a select few" won't actually convince them, or matter at all.

Python is not an obscure marginal language. It's only obscure if you're an anti-intellectual shitbag who hates anything that's different.

And swapping Scheme for Python is tragic IMO.

Robert Ahrens said...

Harvard use Python for some of their courses too. But they still use Java for the CS100 intro course all the freshmen take. So it's not exactly Total Python Domination.

I'm not sure about switching Python in for Scheme. I learned Lisp and Prolog pretty early in my CS career and I feel like that knowledge stood me in really good stead. Or, to put it another way, I think Scheme may help you learn Python more than Python helps you learn Scheme.

mathsadist said...

A couple of years ago we founded a new CS program at the North Carolina School of Science and Mathematics.

In our no-prereq CS class, student learn some introductory LINUX and get used to it by making a simple site with XHTML/CSS.

We then go on to learning to program in Python. The emphasis in this trimester (12 wks) course is to learn how to write simple Python functions correctly. We dive into functional programming tools and make heavy use of recursion.

Python is great for n00bs and it teaches good formatting habits. We love Python here in Durham!

Peter Pinch said...

Sadly, it doesn't look like they've updated the OpenCourseWare version to reflect this change. It's still using scheme.

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm

Catherine said...

Peter,

I really don't know if the new 6.01 / 6.02 series would be appropriate for Open CourseWare anyway. It sounds like it's largely a hands-on class in building and programming robots... very hard to follow along with from your computer.

Personally, I still intend to use Open CourseWare to take the Scheme class after all... "when I get around to it", you know. It's still a very deep, insightful, nitty-gritty dive into the fundamental depths of computer programming (so they say). I think MIT students will continue to get it, it's just that the department hasn't decided it should be the first thing they get hit with... they should start out with something more hands-on, practical, visceral, cross-disciplinary... save the massively specialized academic stuff for later. Sounds like a good approach to me.

Blake McBride said...

I think this is sad. Twenty years ago many of the good book stores had really good academic books on computer science. The smaller book stores and the ones at the malls had only the popular commercial books. They gave you the mechanics of the popular languages but gave virtually no theory. As the years have progressed more and more of the book stores gave up on the academic books and only stocked the commercial ones. Now, unless you are in a book store next to a very major university, you can't find any academic computer science books.

Scheme and Lisp have some critically important features not available in most languages and not available in Python. There was a time when electrical engineers knew ohm's law. Not anymore. There was a time when computer scientists knew something about computation and algorithms. Not anymore.

I went to a huge conference Microsoft held regarding a new update to C#. In that meeting Microsoft talked about this wonderful NEW FEATURE they added to C#. Everyone was excited about it. They asked the audience if anyone ever heard of a lambda function. I was the only one! Apparently, like Al Gore inventing the Internet, Microsoft has just apparently invented the lambda function!

All this reminds me of Asimov's Foundation series. It used to seem ridiculous that a civilization could lose knowledge. It is beginning to seem more and more possible to me.

I suppose, not to lose touch with progress, MIT will switch to Python.

Pat said...

Hi Blake,

Isn't abstraction sort of the thing you CS guys should be understandable toward? We can't keep filling students' heads with low-level information that is no longer necessary to know -- it all fits in your head, but how many years have you been taking it in? Biological sciences do the same thing -- now what used to be the meat of the subject is a quick history tour. Make way for the new, as they say :)