#121 overall
Discrete Mathematics, Algorithms, and Theory of Computation
Aduni
4 recommenders · 4 threads · recommended in 3 years, 2008–2017 · score 3.6
A free video lecture series from Aduni (the ArsDigita University project) covering discrete mathematics, algorithms, and the theory of computation, taught by Shai Simonson. It is designed to be taken without formal prerequisites.
Commenters call the lectures excellent and say they gave insight into theory of computation that writing code alone did not, with one suggesting taking the courses in sequence.
Algorithms & Data Structuresbeginnerfreevideo lectures#discrete mathematics#algorithms#theory of computation#simonson#aduni
Recommendations by year
20062026
this is where I learnt Theory of Computation from; I'll especially recommend Shai Simonson's lectures, that guy is absolutely brilliant
Those ADuni lectures are actually what I know him from. They're excellent, and I very much admire his teaching. The problem I think is either that I went too far in the lectures without attempting the problem sets, or that I simply didn't have the educational prereqs or a work / hobby application to ground me and keep me working at it. Nonetheless, I very much admire the work and enjoy watching the lectures. If nothing else it gets me in a better headspace when I program. Hopefully I can transition that into learning the actual methods and techniques over time.
I will definitely check out the MIT course. I bet that would help me retain it much better. I was also looking at the Math for Electrical Engineering & Computer Science that I think you mentioned in an earlier comment.
Unfortunately, at least in my experience, most textbooks are rather unfriendly for self-teaching (including the ones very frequently recommended), especially in the more theoretical fields like algorithms, theory of computation etc. (no solutions to exercises, not enough worked out examples, general strong reliance on classroom usage), it takes a long time to find good ones and even then a very long time to get to a decent speed in a new field, surely much longer then when taking a course. Thus I would recommend relying more on some online courses at least initially:
http://ocw.mit.edu/courses/electrical-engineering-and-comput... - Very good course covering the most crucial theoretical things every programmer should now
http://aduni.org/courses/ - Good discrete mathematics, algorithms, theory of computation courses (I recommend "taking" them in this order) without assuming any prerequisites
http://ocw.mit.edu/courses/electrical-engineering-and-comput... - More sophisticated "CS 101" kind of course
I think almost everyone with some programming experience should be able to work through them in the sequence listed in one year perhaps, at a satisfying level of detail. At the same time, many people programming professionally lack mastery of this basic material.
No, you aren't going to watch some videos and come out of it a skilled python programmer.
But lectures can be good as an overview or introduction, or to help getting your head round difficult concepts. For instance Shai Simonson's Theory of Computation lectures ( http://www.aduni.org/courses/theory/index.php?view=cw) gave me a lot of insight which I couldn't have got just by writing code. There are also some excellent Haskell lectures around, which helped me grok the basic concepts so I could start programming with it.
Plus, I can watch video lectures while I'm eating, grooming, mentally exhausted, or huddled with my morning coffee hating the world. Yes, it's all too passive to really learn much, but it's a good way to semi-relax.
Also: Peteris, who wrote that blog post, also writes an excellent montly round-up of video lectures he's been watching. Highly recommended: http://freescienceonline.blogspot.com/