Udacity’s Machine Learning Nanodegree: First Impressions
I signed up for Udacity’s Machine Learning Nanodegree a couple of weeks ago, and overall they have a nice system with great content and projects — I’ve really been enjoying it so far, though it seems there are still a few areas that might be a bit rough around the edges.
The nanodegree is project-based rather than class-based, with 5 main projects and lecture materials leading up to each. The projects look interesting and detailed — the final capstone project requires a 9-15 page report.
Project reviews are quick — you turn in your project and within 15 minutes someone has reviewed it, with comments and suggestions for how to improve your code and analysis. If you need to submit your project again, you might get a different reviewer, who has other tips to give. The instant feedback is really nice — and you can also rate and give comments to your reviewer (anonymously).
The lectures are drawn from various different sources — some of Georgia Tech’s online Masters in Computer Science courses, other Udacity courses, and some custom videos for the nanodegree. This leads to a bit of disjointedness in the material, like having a professor assign you readings from 3 different textbooks. You’ll need to also supplement the lectures with other sources to fill in the occasional gap, though there are plenty of free resources on the internet.
The Udacity videos are interspersed liberally with micro quizzes (ungraded — you can even skip straight to the answer) to keep you engaged — it’s a bit like a professor pausing every now and then to ask the class a question. This is a nice system, and makes it easier to digest the information than just watching an hour long video on a topic.
Table of Contents
There are some other problems which could be fixed relatively easily — there is no complete and searchable table of contents, making it difficult to go back and find a page or video on a topic you might need to review for a project. A more complete syllabus down to the page/video level would be a great help here.
There is a nice forum available for the nanodegree, organized by the 5 sections and some other subforums.
One problem though is that there is often a lot of feedback on a particular page or video, but it’s scattered through the forum — it would be nice if each page/video had a comment section at the bottom, and possibly a rating system for each page/video.
There are also occasional hiccups here and there in the course, like broken links, mistakes in the lecture, confusing or out of order presentation, so having comments and ratings on each page would let students provide feedback, post links to more material, and ask and answer questions in one place — it would also give the admins a better idea of what areas might need more clarification.
The forums are apparently not watched by the admins, so if you make a suggestion on a topic or the site, one of the moderators might suggest that you file a ticket for it. There is no link on each page for feedback — it’s a separate ticket system that’s a bit hard to find. Apparently there used to be a link on each page to report problems, but I could see students using it to ask questions instead — so having comments on each page instead might be a better solution.
As for the content, some of it is excellent, like the section on Statistical Analysis, but some of it is a bit hard to follow, due to the disjointedness — a lot of the course could be improved though by simply inserting a page here or there with a bit more explanation.
Another problem with the content, at least in the first section that I’ve seen, is that the examples used to teach the concepts are a bit complex, and differ between the different course materials — I was still a bit unclear on some of the concepts by the time the first project came around, and wound up needing to make a Jupyter notebook with a simple example to try to understand them better. It was easier to deal with a simple 1-dimensional example where I could develop some intuition for the concepts, which apply to more complex problems as well. I put the notebook on GitHub, which actually renders Jupyter notebooks (!)— https://github.com/bburns/MachineLearningNanodegree/blob/master/Exploring%20Regression/Exploring%20Regression.ipynb
I think the nanodegree system is a great way of learning — it’s like a mini-masters degree, and the cost and time requirements seem quite reasonable. And despite some of the issues I’ve come across, I’ve really been enjoying the course so far, and am looking forward to the topics ahead!