How is this course compared to Andrew Ng's Coursera class, his regular Stanford class and Caltech's Learning from Data course? (Other ML courses available on the web in terms of depth)
I will say that I'm a huge fan of the Caltech Learning from Data course (currently also offered on EdX). I took Andrew Ng's Coursera course 2 years ago, finished it successfully, and liked it. But I feel that the Caltech course gave me a much deeper foundational understanding of the basic issues and tradeoffs, and much deeper insight into what's going on.
Homework is much better in the Caltech course, too. In the Coursera course, they give you programs and environments in Octave that are all prewritten for you, and you just need to plug in a few key lines (often there's essentially one way to do it due to dimensionality). You feel like you understand what's going on, but the understanding is not really grounded. The Caltech course has multiple choice questions, but they look like this: "implement this algorithm, run it through a data set chosen randomly with such and such parameters, calculate learning error, do all this 1000 times and average. What value out of these 5 is your learning error closest to?". You choose the language, you implement the algorithm from scratch, you debug the hell out of it, you visualize your data to understand what's wrong... then the knowledge and the understanding stay with you.
I'm currently doing both the Coursera course and the Caltech course concurrently. I really like the level and delivery style of the Caltech course. It covers a lot of material, with good depth and rigour where needed and with a lot of colour. Makes you want to jump and try the techniques out.
In contrast the Coursera course seems a bit easy and dry. I also dislike the dependency on Octave.
I can't say how this specific CMU course compares with Ng's online course, but I can comment on Ng's course as compared to several other similar courses I took in Nanyang Tech. U. and Paul Sabatier (Toulouse 3), and my overall remark is that Ng's course is quite short on the maths, which makes it not sufficiently formal to deeply understand what goes on. However, it gives enough material and code samples to play with data. It can be nicely complemented with some self-study.
It's worth clarifying that Ng's online course is essentially his Stanford course minus most of the math. The online version doesn't have the proofs or theory problem sets, while the Stanford version does. The problem sets, etc... are available at cs229.stanford.edu, if anyone is interested.
Homework is much better in the Caltech course, too. In the Coursera course, they give you programs and environments in Octave that are all prewritten for you, and you just need to plug in a few key lines (often there's essentially one way to do it due to dimensionality). You feel like you understand what's going on, but the understanding is not really grounded. The Caltech course has multiple choice questions, but they look like this: "implement this algorithm, run it through a data set chosen randomly with such and such parameters, calculate learning error, do all this 1000 times and average. What value out of these 5 is your learning error closest to?". You choose the language, you implement the algorithm from scratch, you debug the hell out of it, you visualize your data to understand what's wrong... then the knowledge and the understanding stay with you.