Milhouse on software, engineering, and Emacs.

Complete Data Structures Courses

TL;DR: The internet is amazing and you can learn almost anything you want for free and with the best material out there. Today the lack of formal education is much less of a barrier than it used to be.

This week I was looking for a course in Coursera and EDX about data structures, the kind of course you take at your first year in Computer Science. Since I have no formal education in computer science (and by that I mean that I have not actually took the classes while in college), I thought it was already due time to actually learn about trees, heaps, arrays, vectors, garbage collection, and so forth.

The trigger of this decision was the chapter 3 of Beautiful Code written by Joe Bentley. Joe shows how you can express the duality between the quick-sort algorithm execution under ideal partition and a sorted binary search tree. He states that “data structures are algorithms frozen”. I did not understand the claim for some time, but then the whole thing clicked in my head. I knew that algorithms and data structures were related, but the duality never occurred to me.

Surprisingly, I could not find an offering of such course in any of those sites^1. So, I tuned down the search a little and googled for ‘data structures open course’ and found these two complete courses:

  1. Data Structures - CS61B (full lectures here) from UC Berkley (2006)
  2. Advanced Data Structures (lecture videos not on youtube) from MIT (2012)

You can get all the material of the course in their websites, like lecture notes, assignments, projects and so forth. Although Coursera and Edx’s platform are way more user friendly, those websites will not let you short on materials.

Also, you can download the full CS61B with the amazing python library youtube-dl:

$ pip install youtube-dl # people say brew install youtube-dl works too
$ mkdir /path/where/you/want/your/videos && cd /path/where/you/want/your/videos
$ youtube-dl https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C # <= full CS61B playlist

And then, the whole playlist will be automagically downloaded, renamed and sorted. I have to take off my hat to the guys over at youtube-dl.

That’s it.

(1) Actually, I found more than one, but they were in Chinese. If you don’t mind following the course by the transcripts, you can find them here and here.

Comments