As you may have noticed, this blog has been quiet for a little while. Partly, that’s because I’ve been working my way through the Udacity Artificial Intelligence Nanodegree Program. Having completed it, I want to share my review.
TLDR: Great content, ok exercises, zero validation
To put this review in context, I am a software engineer with 15 years of experience; I’ve spent more of that time managing that coding. I did take one undergraduate course on artificial intelligence in university. My goal with this course was both to learn new content and to refresh my skills.
This program presents a coherent path through several foundational concepts in machine learning:
- Constraint Satisfaction
- Classical Search
- Automated Planning
- Adversarial Search
- Probabilistic models (Bayes Nets, Hidden Markov Models)
The lectures are clear and the inline quizzes help validate that you understand the material before you try to build on it. I thought they did an outstanding job in two areas:
- Connecting the materials – the materials are presented in a logical order with clear connections between the techniques. I found the explicit links drawn between various search and planning techniques very helpful to my own understanding. In particular, several techniques use different terminology for historical reasons, but can be thought of as special cases of a more general technique.
- Highlighting practical applications – Thad Starner has a vast experience and often discusses empirical results alongside the theoretical discussion. Sometimes “over the last 15 years A has usually worked better than B” is a good starting point.
Although I was surprised to realize that the recommended textbook Artificial Intelligence: A Modern Approach is the same one I used in university myself, the 4th edition has some great updates. I was surprised by the number of improvements to what I considered established materials. For example, Minimax with alpha-beta pruning was invented in the 1950s. I didn’t expect much change between 2001 and 2021, but new research and better teaching techniques have resulted in a chapter I think is much more likely to help students learn and apply the techniques usefully themselves.
What doesn’t work
This course has 5 main projects:
- Build a Sudoku Solver
- Build a Forward-Planning Agent
- Build an Adversarial Game Playing Agent
- Part of Speech Tagging
While these projects did serve to reinforce the material, they had more in common with a weekly “assignment” than anything that would have been called a project in my university days. All of the coding was “fill in the blank” format and likely could be completed without writing more than 10 consecutive lines of code. The most interesting project was the game-playing agent; but I was really competing against myself, not the course requirements.
This is a bit concerning since the primary reason to actually pay for this course is the graded assignments. Furthermore, Udacity markets these nanodegrees as a credential. Given that sales pitch, I would have expected an actual challenge and at least a little bit of meaningful tutor engagement. As both a student and as a hiring manager, I feel this program would be far more valuable if completion actually demonstrated skill, rather than just interest.
Is this course for you?
That depends on what you want to get out of it, and where you are in your career.
For $500, this was a better deal than many professional development courses I’ve taken. I spent roughly 70 hours working through it. The lectures were great, as was the course structure. The projects did a good job of reinforcing what I had learned. If you are mid-career and looking to brush-up your skills, or if this is totally new to you, I recommend it. Having projects and due-dates can provide a little extra motivation to see it through.
If you already have a good computer-science background and $500 sounds like a lot of money, you can learn this material on your own. The textbook, AIMA is worthwhile. I recommend the 4th edition, but you can also find cheap copies of the 2nd and 3rd. The material in the course is mostly on Youtube, sometimes the exact same lectures, or available in free Udacity courses.
Have you taken this or a similar course? Would you recommend them? What did you learn?
Use the comments section below to share your successes, and let me know what you think. Do you have some great ideas I didn’t mention above?
The forum is moderated and your first post may not appear until it has been manually approved.