
MIT 6.006: Algorithms in Python - helwr
http://courses.csail.mit.edu/6.006/spring11/notes.shtml
======
sajithw
It's a bit misleading to describe this as "algorithms in python". You'll find
that the course is almost entirely theoretical (as it should be) and that
there is a small implementation component for each problem set that just
happens to be in Python.

------
Bogdanp
You might also want to check out [http://ocw.mit.edu/courses/electrical-
engineering-and-comput...](http://ocw.mit.edu/courses/electrical-engineering-
and-computer-science/6-046j-introduction-to-algorithms-
sma-5503-fall-2005/video-lectures/) .

------
nsomaru
does anyone know of a directory of all MIT CS lectures which may not be
available on OCW? would be great to have such a list. extra brownie points for
Python... :)

~~~
kevmus
<http://student.mit.edu/catalog/m6a.html>

------
morazow
Erik Demaine great lecturer.

~~~
michael_dorfman
This is an understatement.

Erik Demaine is absolutely fascinating. He does brilliant work, and has a
great style. I saw that he and Vi Hart once co-authored a paper together-- can
you imagine the offspring they could produce?

------
scorpion032
Always, Always been a fan of algorithms taught in Python.

------
niyazpk
Waiting for the video lectures...

~~~
kelleyk
We're actually producing a whole new set of 6.006 video lectures this fall for
OCW! (There'll also be some amazing new and reorganized material.)

~~~
gary4gar
Does the new ones are based on python as supporting language? what all things
have changed in this new set? And lastly, any timeline?

Btw. I am Super Excited to hear this :D

~~~
kelleyk
Yes, it will still be taught using Python. Almost all of the undergraduate CS
courses are moving from Scheme or Java to Python if they haven't already. (One
notable exception is the excellent 6.172, about Making Things Fast(tm), which
uses C and Cilk.)

The videos will be recorded this fall semester; Erik will be lecturing again,
along with the equally awesome Srini Devadas. In the past, when Erik has
recorded his own lectures, I recall that they were posted as soon as they were
edited. Every time I've worked with OCW, though, one of their staff members
comes in and collects materials at the end of the semester.

I'm not sure exactly what the material differences will be; that's the
lecturers' call (way above my pay grade!). If you want more than 6.006 offers,
though, check out 6.046, which is the follow-on undergraduate algorithms
course.

Since we're doing as much of our planning now as possible, I'm curious: what
sorts of things do you wish we'd include? Does anyone have suggestions?

~~~
helwr
I'd love to see the entire course in the format of that first lecture linked
above, i.e you start with a naive implementation and gradually improve it both
algorithmically and with language-specific hacks until you get orders of
magnitude faster version working on your machine, not on paper.

Make every homework a contest on the fastest implementation,e.g. see Tim
Bray's Wide Finder benchmark:
<http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results>

Python is great for teaching, but I'd let them do the optimizations in any
language.

Use problems from your current research as examples/assignments, rather than
boring textbook problems.

Let them work with real data: [http://www.quora.com/Programming-
Challenges-1/What-are-some-...](http://www.quora.com/Programming-
Challenges-1/What-are-some-good-toy-problems-in-data-science) ,
[http://www.quora.com/Data/Where-can-I-get-large-datasets-
ope...](http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-
public)

Add parallel algorithms to the mix. Ask to parallelize serial algorithms that
you explain in the lecture. They should at least start thinking about
programming for multicore and clusters, they will thank you for that later.

------
pbreit
Could Khan do each of these in about 7 minutes?

~~~
pbreit
Seriously. The thing that always irritated me about university lectures,
especially when presented online is that the material covered in 50 minutes
could likely be covered in 7. But who would pay $30k for that?

Thanks for the down votes, though.

~~~
mechanical_fish
Too terse. It turns out that some points cannot be made in one Tweet, just as
other points cannot be made in seven minutes.

And you need to be a bit more generous to those who still admire fine old art
forms like the classic long lecture. It is a genre. It used to be _the_ genre,
and now it is just one, but the masters of the big lecture were and are great,
and a lot of them aren't going to master the new genre - they were born too
late, perhaps - so enjoy them for what they are. Use the high-speed button if
you must.

All that said: Yes, you're right, the central awesomeness of Khan is not Khan
himself or his lectures - people have rightly pointed out that Khan isn't the
teacher to end all teachers - but his relentless pushing of this new genre, a
genre that relies on the presence of ubiquitous handheld portable video
players. In a world where everyone on the bus and in line at the supermarket
has a smartphone, a traditional lecture, with lots of throat-clearing and
repetition and class mechanics ("before I tell you anything useful let me talk
about the TA assignments") and a long recap at the start of every lecture to
let the people who slept through the last lecture catch up... it's tedious.
Cut out half of it, deliver the rest in chunks, build a replay system that
makes it easy to navigate to and play the individual chunks, and suddenly
you're in the 21st century. I've been waiting for this to happen ever since I
first used YouTube, and countless YouTube teachers have pioneered the
technique; Khan is finally doing the evangelization.

I keep wishing, probably in vain, that TV would go the same way. I put off
watching _Mythbusters_ for years because I just couldn't stand the editing:
shows are edited for people who tune in and out constantly, so every five
minute chunk has one minute of pure review of stuff _you just saw ten minutes
ago_ , two minutes of new material intercut with one minute's worth of stuff
that you have already seen, and thirty seconds of previews for things that you
will see fifteen minutes from now.

