You had me at 'hello world' in n log n operations.
September 15, 2013 1:49 PM   Subscribe

I want to duplicate the experience of taking a college course on algorithms and data structures. I am unlikely to stay in sync with a fast-paced online course with firm deadlines. What are my best options otherwise?

I want to cover standard CS material in this area: basically, what an undergraduate CS course with this name would cover. I don't want an encyclopedic journey. I don't need coverage of specialized material like bioinformatics or numerical optimization. Unless a typical course already involves reading the Cormen from cover to cover, I don't want to read the Cormen from cover to cover. Finally, I want to be able to evaluate my performance.

What are my best options? Your suggestion could be a textbook that's very amenable to self-study or has a detailed solution manual. It could be a course webpage that has a comprehensive set of detailed, typed lecture notes, assignments, and example solutions. Really, I'd be happy with anything that allows me to pace myself, that offers evaluation tools, and that is rigorous and as up-to-date as basic material needs to be.
posted by Nomyte to Education (8 answers total) 38 users marked this as a favorite
UVa Online Judge and Project Euler (more math-oriented than CS, but still good) are pretty helpful for learning algorithms and data structures, and both sites track your progress.

I didn't read CLRS cover-to-cover, but referred to it a lot for solving those problems. I did it frequently enough that it's basically as effective as straight reading through the text. It might even be better because you get reinforced feedback that you actually understand the material.
posted by attente at 2:40 PM on September 15, 2013 [1 favorite]

Best answer: This coursera course on Algorithms was amazing. There were a few techniques which just about made my jaw drop. There's also a part 2.

The courses are set up for weekly quizzes and deadlines, but you can work at your own pace, even saving the video files to your hard drive if you wish.
posted by cali59 at 3:03 PM on September 15, 2013

Response by poster: Looking for more answers like #2. More guided instruction, less programming puzzle contest.
posted by Nomyte at 3:05 PM on September 15, 2013

Best answer: Here is the data structures class I took in college (this isn't the specific quarter I took it but the material is pretty consistent quarter to quarter).

It's mainly a programming course, the bulk of the learning/work is in the programming assignments. It was/is a really fun class in my opinion! As far self-evaluation goes, there are solutions to the two written assignments and for the programming assignments, there are grading/evaluation criteria in the assignment descriptions.

I can't find an algorithms book that I'm familiar with that has a published solution manual unfortunately. But if you use a fairly well-known book, even without a solutions manual, you'll be able to find solutions to most/many of the specific problems on the internet. Or even not a well known book I guess since a lot of the ideas at the heart of lots of the problems will be in almost any algorithms course so there will be lots of posted solutions out there.

The one thing that might be harder to self-evaluate is the proof-writing/conveying your ideas aspect. What I mean is, there's basically two components to a typical algorithms h/w problem. There's figuring out the idea/algorithm and then there's writing up the description of it and/or the proof that it works or the proof of its time complexity, etc. And for a lot of people I think that the writing up part is actually just as hard as the figuring out the idea part. And for evaluation on whether you're justifying the steps in your proof well enough, getting the ideas across clearly, etc., having feedback from a person who has read your work is very helpful. So that might be the one part of taking a course that might be harder to simulate.
posted by treese at 3:39 PM on September 15, 2013

One of the many good things about Coursera/Udacity etc. is that there's no penalty for quitting halfway, and no extra cost for re-enrolling if you want to continue a unit from, say, week 5. In real-life Stanford, professor Daphne Koller wouldn't wait for me; in Coursera, she's a series of recorded message and server scripts, so she has all the time in the world, and so do I.

Also, materials and assessment tasks remain available way after the assesment deadlines. The course is only fast-paced if you insist in getting high grades by submitting before the end of the earliest deadlines. If you don't care about grades, or don't mind the penalites for late submission of homework etc, you can do them at your own pace. Or repeat them if you feel you didn't get them the first time (Besides catching up with Probabilistic Graphical Models, I plan to do a re-up of two of my already-passed-with-good-grades courses, re-coding the homework from scratch).

So seconding the Sedgwick/Wayne course, and take your time. Good luck!
posted by kandinski at 4:20 PM on September 15, 2013

It's worth mentioning that UCB posts videos for a lot of their undergraduate computer science courses online. Course webpages like this one for a data structures course are freely accessible, with readings, problem sets, etc.

What the UCB CS materials don't provide are the evaluation tools you seek which the MOOCs like Coursera do. kandinski and call59 have it right about working at your own pace being possible on Coursera, though there is a certain beneficial momentum that comes from having and keeping deadlines. Their course forums also have very, very helpful, sometimes quasi expert members; so personal attention can be had.
posted by bertran at 5:02 PM on September 15, 2013

MIT's OpenCourseWare site has the materials for an Intro to Algorithms class.

I haven't used that particular course myself, but OpenCourseWare has a very good reputation for providing the same instruction and materials offered to MIT students.
posted by mekily at 6:04 PM on September 15, 2013

Response by poster: If you took an algorithms course in recent years and feel that your course webpage is a complete resource on its own, please feel free to link to it. It could be very helpful to extra-academic parasites like me.
posted by Nomyte at 7:19 PM on September 15, 2013

« Older Best/cheap Pokemon title for Nintendo 3DS?   |   We All Have Our Own Hands / But We Come From... Newer »
This thread is closed to new comments.