(+) Best Online Courses #6

Advanced Data Structures in Java on Coursera by UC San Diego

I got a bit miffed upon completing UC San Diego’s third course in their series on Java and data structures, as part of their specialization called Object Oriented Java Programming: Data Structures and Beyond Specialization. Miffed because the faculty is so good and I wish they taught all of the computing & programming courses on Coursera! Dr. Christine Alvarado (PhD), Mia Minnes, and Leo Porter are all outstanding instructors and have created some of the best courses that I’ve taken on Coursera.

This course basically picks up where a traditional university-level algorithms course might start—well, maybe a bit past since the previous course already covered Big-O notation and asymptotic analysis. The material on graphs and related algorithms such as DFS (Depth-First Search), BFS (Breadth-First Search), Dijkstra’s, and A* were all a great refresher from my previous CS courses and was presented in a way that was always easy to understand. Although I feel that this course certainly missed some opportunities to cover additional topics, like red-black trees, B-trees, and Kruskal’s and Prim’s algorithms for MSTs (Minimum Spanning Trees), as well as dynamic programming and greedy algorithms, it was still fantastic and covered a lot of excellent material. But of course, the material wasn’t the only great aspect of the course and the faculty continued to maintain their excellent pedagogical approach and charisma on video.

Conclusion: Highly recommended for programmers who are ready for intermediate to advanced study of data structures and algorithms using Java.

Rating: 5 out of 5 (still that collegiate feel to the videos but will overlook that in favor of the very well-explained advanced material)