
#72 overallEvergreen
6.046J Design and Analysis of Algorithms
MIT OpenCourseWare
6 recommenders · 6 threads · recommended in 6 years, 2008–2022 · score 7.1
MIT's undergraduate algorithms course, taught by Erik Demaine and Charles Leiserson, covering design and analysis of algorithms, asymptotic notation, sorting, graph algorithms, dynamic programming, and data structures. It is distributed through MIT OpenCourseWare with video lectures from a 2005 offering.
Commenters call the lectures outstanding and a good treasure trove, and say they helped them understand material they had only muddled through before.
Algorithms & Data Structuresintermediatefreevideo lectures#algorithms#data structures#asymptotic analysis#demaine#leiserson
Recommendations by year
20062026
This is what big O (also little O and little omega) notation is all about. Unfortunately, all the resources I know of teach it as pure mathematics, so they require a firm grasp of mathematical proofs to understand the details and implications.
With that said I highly recommend the classic Introduction to Algorithms (CLRS for short) by Cormen et Al. It is written in clear and straightforward language. And the lectures on MIT OCW by Erik Demaine are outstanding.
By reading and watching the lectures I deeply understood stuff that I had just muddled through previously.
https://en.m.wikipedia.org/wiki/Introduction_to_Algorithms
The MIT lectures in general are very good quality and these ones in particular are a treasure trove.
I would have loved access to something like this when I was a student.
The MITOCW channel on Youtube has many more for those who are interested. A nice one is Design and Analysis of Algorithms.
Also MIT OCW lectures for Algorithms. These are old and video quality is not nice, but course is really good. I think they published a newer version of this course too. http://ocw.mit.edu/courses/electrical-engineering-and-comput...
You could watch the video lectures instead of or in addition to reading the algorithms book.
I've seen quite a few of these and thought they were ok:
http://videolectures.net/mit6046jf05_introduction_algorithms...
This one is newer though:
http://ocw.mit.edu/courses/electrical-engineering-and-comput...
I guess I would check out both and see which professors I like the best :)
They are indeed fascinating, and Erik Demaine's MIT OCW lecture on it is amazing [1]. The analogy between the NYC subway system (express and local trains) and skip lists is brilliant.
[1] http://ocw.mit.edu/courses/electrical-engineering-and-comput...
I'd definitely recommend trying some self-study before grad school-- better to find out on your own if the work really interests you enough for the required investment.
As to recommendations, I second the recommendation for SICP, but I'd also suggest the video lectures: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...
Then, I'd move on to various online courses (with video)-- besides the MIT OCW resources, there are some good CS courses from UC Berkeley. Specifically, for someone getting started, I'd recommend MIT 6.046J (Introduction to Algorithms), and the Berkeley CS 61A/B/C and CS162, but your interest may vary.
Naturally, there are a lot of good video course for mathematics as well-- I enjoyed Gilbert Strang's Linear Algebra from course from MIT as a nice brush-up in Linear Algebra, for example (and as a companion to his textbook).
But the guiding thread has got to be your own interest.
Great list. Two things:
(1) MIT has also posted lectures for "Intro to Algorithms" taught by Leiserson (one of the authors of the famous textbook). The course number is 6.046J[0].
(2) You mention shell scripting and sed/awk/grep...can you recommend any resources for those?
[0] http://ocw.mit.edu/courses/electrical-engineering-and-comput...