Berkeley’s CS61B as taught by Prof. Jonathan Shewchuk:
Fall 2006 Course Site: http://www.cs.berkeley.edu/~jrs/61bf06/
Video Lectures (Fall 2006): http://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C&feature=plcp
This course comes with Lecture Videos, Lecture notes* and Assignments(labs/homeworks/projects).
An introduction to data structures (lists, trees, hash tables, graphs, etc.), simple algorithms (searching and sorting), encapsulation, and the language Java.
After a few introductory lectures about the java language in general, they dive in to the ‘interesting’ stuff 😉
There are many different years of this course available on the Berkeley webcast site; Some of the newer years are available on iTunesU. The link I give at the top has Video lectures; some of the newer years available only have slide-videos (ie. audio on top of video of the slides used in the class, instead of video of the lecture itself). Videos are also available here: http://wla.berkeley.edu/main.php?course=cs61b. However I do not know which year they are from; and they are in RealMedia (.ram) format, which is why I didn’t look in them.
Why follow it?
You may have already used libraries that provide you with interesting data structures. At the very least you have probably used higher level languages — such as php — that have certain data structures, ie. Hashes, built into them.
Following a data structures class will help you demystify and get an insight on how those work.
Pick a year and Enjoy.
(*) no lecture notes on the Fall 2006 Course Site. But you can get at them using the Internet Archive’s WayBack Machine: http://wayback.archive.org/web/20070515000000*/http://www.cs.berkeley.edu/~jrs/61b/. ie: this version should be good.