Hacker News new | past | comments | ask | show | jobs | submit login
Stanford University Free Class: Design and Analysis of Algorithms I (algo-class.org)
207 points by ziyadb on Nov 20, 2011 | hide | past | web | favorite | 53 comments

I'm stunned... I've already signed up for ML, was thinking crypto, and now this? Some people dream of winning the lottery, I would be happy for a 6 month sabbatical from my full time job to immerse myself in these classes. I've currently taking the AI class and a enjoy it immensely. I feel the my 'bag of programming tools' has grown exponentially with all the stuff I'm learning.

I'm curious about the practical side of these courses as well as the intellectual side.

How much time does the course use up? I expect everyone is different - so it's a personal question of your time. Are there homework assignments or exercises? How are the practical aspects handled for example with learning a programming language?

With regards to the current classes, it typically takes 2-3 hours to consume the lectures (unless you have ADHD like me). 20 minutes to finish weekly exercises. 1-2 hours to finish the programming exercises in the ML class. The ML class also gave a crash course in programming Octave, which handled any language issues you may have for that course.

I took 2 classes, which is a huge time-sink (I can't even go through the textbooks). I think for a person with a full-time job, 1 course would be enough for a particular semester.

Thanks, I've signed up! I think I can spare enough time to make it worthwhile - reading the textbooks will probably be a stretch though.

Hell, due to the amount of interesting courses they've been pumping out lately, I'm more inclined to take a whole year off just to study.

Tempting, isn't it?

I'm taking ML now and it's pretty darned good.

ML class is good, but I'm bit disappointed regarding programming assignments - it is just a translation of the given math formulas to the Octave/MATLAB syntax.

I don't mind it. It's well known from teaching that reading about something and actually doing something (even if it is the same something) is incredibly important. I find that writing the MATLAB code, even if it's just translating a known formula, has helped my understanding of ML overall.

On top of this, writing the Octave code lets me see line by line what the algorithm is doing as well, and it's a quick way to gain insight into the ML approaches by seeing exactly what each intermediate step is doing.

Finally, even when it's a "translation" I find that it's not that trivial to do. Seeing a formula on a page and being able to write that as vectorized MATLAB code has also been an interesting challenge.

While that's not an inaccurate representation, I think "just" translating the math to Octave/MATLAB's pretty powerful vector algebra language isn't as trivial as you seem to find it. I've had some seriously epiphanic moments. For me, at least, this class is striking a pretty good balance.

Although I've been struck by the fact that they expect most people to do loop iteration until forced into vectorized concepts - I've been forcing myself to do it all as linear algebra from the start, as that's what I see as the point of the class.

yeah, that was kind of surprising for me as well. however, i have forced myself to submit only vectorized implementation for all exercises so far. yes, that includes the neural-networks examples as well ;)

but why ? if it is lack of maths, then you can work through derivations etc by following Christopher bishop's excellent 'neural network for pattern recognition'. for me though, the balance between theory and practice is just right.

also, for some more fun you may want to check out Stanford's uldl page as well, which goes into unsupervised learning and deep-learning architectures.

I agree with your description but I'm not sure if I'd call it disappointing. However I think it'd be really exciting if the class offered some sort of final project where you had to use the algorithms on some new domain of your own choosing (although of course you don't need a class to do this on your own).

Exactly, regarding final project or similar, where students could demonstrate some creativity and come up with original solutions. Actually, I put more emphasis in "bit" word, before "disappointed".

But otherwise, it is really a great course - such an amount of practical information in such a short time.

The problem with that is it would require human intervention to grade. That's really not what this whole venture is about.

Although it would be cool to organize a showcase of such projects spontaneously!

I wanted to take ML, but only really had enough time for AI. I was very happy to see that ML is having another semester.

For those who can only afford to take one or two classes per semester, keep them coming!

The ideal situation is that other Universities get into the game, so we can pick and choose courses from specific professors - one course from MIT and another from Stanford and so on.

Another thing I'd like to see is this idea expanding beyond CS to, say, Math and Physics. Within CS it would be great to see courses on Compilers, Operating Systems and so on. Yes I am greedy :p (and the courses are addictive!)

If you are looking for math video lectures, UCCS posts videos for a bunch of their courses. However, these do not have the features that are on the Stanford sites (e.g., interactive questions).


Why stop there? I hope we'll get an online version of every university course out there!

I think this might actually favor consolidation. With physical classrooms, you need hundreds of universities, but once a few universities are teaching an online Algorithms course in which thousands of people can enroll, it may be hard for additional universities, especially those with less exalted brand names than Stanford, to attract interest/students.

I'm a Stanford student, and I can tell you that Roughgarden is one of the best lecturers at Stanford. If you're thinking about taking a class, I would highly recommend this one. Plus, the material is awesome.

Which Stanford course does this correspond to?

looks like CS 161 https://courseware.stanford.edu/pg/courses/214383/cs-161-fal...

Can anyone (at Stanford or otherwise) tell me if there is a follow up course? The (online) course title says "Design and Analysis of Algorithms I". Is there a Design and Analysis of Algorithms II (or III or IV)?

There's the following algorithms class CS 261 (upper-level undergraduate/masters) and CS 361b (mostly aimed at phd students, though undergraduates take it). 161 covers all the material you would expect to see in an undergrad algorithms class. I'd be surprised if 261 or 361b are put online, since they're not usually recorded and (at least when I took them) have between 10 and 20 students.

"I'd be surprised if 261 or 361b are put online, since they're not usually recorded and (at least when I took them) have between 10 and 20 students."

Isn't that the exact reason they should be put online though? If there are say 5,000 students worldwide (vs 150,000 for the AI course) that is still a massive multiple. I sincerely hope Stanford doesn't stop at the "Introduction to X" courses. The upcoming "Probablistic Graphics Models" class seems reasonably advanced, and is hopefully a harbinger of things to come.

I think smaller classes are trickier to online-ify in a way. With large lectures, they're already somewhat public, so recording them doesn't change things a lot. With a 10-person class, you often have more of a seminar-style discussion, with a lot of back-and-forth between students and professor and less of a pre-planned, one-way lecture. That might be harder to record well, and I think the seminar-style discussion might also suffer if students were "on the record", knowing that they were being broadcast rather than just chatting with the 10 people in the room.

I’m seriously considering taking half a year off to work on several of these classes, supported by a part time job. There’s just so much in there that we never properly treated at uni (bachelor level).

Yeah, I did 2 ai based classes, a probability class and tackled nlp for my honors thesis and still find I'm learning a fair bit from the ai class.

exactly what I am thinking of. Should be fine with around 2 months off from work, I don't mind loss of pay for the period.

Why not do a master's instead? :)

Wow, the amazing classes just keep on coming! Stanford is really doing a phenomenal thing by making all of these classes free to the public!

.. it's raining free classes this weekend! Must be a deadline Monday :)

Is this a CVPR reference, or just an amazingly accurate comment?

They´re like pokemon. Gotta have them all!

Honestly, I'm more excited about these classes from Stanford than Christmas. This is the one I've been waiting for, thanks Santa!

I am amazed that Stanford is taking this idea and running with it. Khan Academy established the need and feasibility of the parallel education system. It is much better than the other types of open course ware. I am beginning to think there are going to be a lot more. And I am desperately wishing for some electrical engineering classes.

EE classes of the signal processing variety?

Yeah, would mark out if that happened.

I don't think I've ever heard of anyone marking out for signal processing, but I'm liking it. I think we need to combine all of the terminology- 'Fourier was such a spotmonkey' or something.

This guy is a great lecturer, I'm working through his CS161 videos right now.

You can get a sample of what his lectures will probably be like here http://openclassroom.stanford.edu/MainFolder/CoursePage.php?...

Know anywhere I can download those vids from? Streaming is a bit slow from where I am..

Great! Now I'm waiting for the Compilers class.

What are the expectations for someone who signs up for a course? Are there ramifications if one does not complete the material? I want to sign up for this, but I have three other college classes to take at the same time (with extracurriculars), and I'm not positive I could keep up for the entire semester.

It's completely free to take, and no one will hassle you if you don't do anything at all.

In addition, at least for the ones that happened this fall, if you are taking the advanced stream, you can drop down to the beginner one at any time.

Is there a central place to get a list of all the classes? (Aside from the bottom of these individual pages)

I'm currently loving Jennifer Widom's DB class, and I'm excited about this and ML next quarter.

I really hope this phenomenon spreads outside of their CS department; I'd love it if there were some pure math classes(like real analysis and abstract algebra) in this format.

I've been doing ML class this quarter, and it has been very good. Andrew Ng is a great teacher, and the programming exercises are a great addition.

This may have been answered in one of the many other threads on these, but are they going to run these regularly? There's so many I want to do but I don't have time to do them all at once. Have they said that they will run them later next year?

I don't believe the ai class profs have mentioned it yet. The db professor sounds like she is going to do it again next year same time, but hasn't said so definitively. ML class is happening next semester again.

I'm pretty amped about this, to be honest. Gives me a way to take an Algorithms class a semester early, and it serves as a good kick in the rear too! (Well, hopefully not so much the latter - just excited to be able to take the class!)

Like he said: "the key class to ace the technical interviews." So true.

I am guessing there are three more classes to come. That way the rows showing the classes, at the bottom of each class page, will be nice and symmetrical.

To make everything nice and symmetrical, think of a "square" of classes.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact