If you’re interested in taking a free online course, consider Coursera. It takes seconds to make an account and filter through the 700 or so classes currently in the database to find what interests you. Classes are generally affiliated with a university, and professors are often the ones lecturing in the videos online. In addition to video lectures, there are homework assignments and exams, which are submitted electronically, as well as user discussion forums where the students can discuss class concepts.
Coursera embodies the concept of the massive open online course (MOOC) which aims to have unlimited participation to allow (theoretically) anyone in the world to obtain an education for free. Founded in 2012 by Daphne Koller and Andrew Ng of Stanford University, Coursera now has over 7 million users and sports an impressive list of university partners. (Check out this paper for an interesting discussion about MOOCs.)
Coursera is similar to the well-known MIT OpenCourseWare, but it has several advantages. The biggest one is that courses on Coursera will have all class material eventually available to the students who sign up, whereas on MIT OpenCourseWare, you face the repeated problem of lack of video lectures, lack of exams and solutions, and other information, especially with the upper-level courses. Coursera’s website design is also vastly superior. On the other hand, Coursera classes requires the user to sign up in a certain date range, so if you go on Coursera right now, chances are high that some of the classes that you want to take aren’t offered in the near future (and you might have to add it to your “watch list” for the next session).
In the meantime, I’ve been checking out Andrew Ng’s machine learning class, which was what really started Coursera. It’s designed to be a ten-week course, with the following syllabus:
- Week 1: Introduction, Linear Algebra Review, Linear Regression with One Variable
- Week 2: Linear Regression with Multiple Variables
- Week 3: Logistic Regression and Regularization
- Week 4: Neural Networks (Representation)
- Week 5: Neural Networks (Learning)
- Week 6: Applying Machine Learning Algorithms
- Week 7: Support Vector Machines
- Week 8: Clustering, Dimensionality Reduction
- Week 9: Anomaly Detection, Recommender Systems
- Week 10: Large-Scale Machine Learning
A third of the grade is based on multiple-choice quizzes, and the rest is determined by programming assignments, to be done in MATLAB or Octave, the latter of which is an excellent free version of the former. Octave is one of the simplest programming languages out there, so it shouldn’t be too difficult for one to get used to it.
After going through the first few weeks of the course, here are some quick impressions:
- Advantages: The class doesn’t have many prerequisites (no calculus, no probability, etc.) and is accessible to a broad audience. Professor Ng’s video lectures are excellent. In fact, it’s nice to see that someone who can write complicated papers can clearly explain the basics. There seems to be a lot of collaboration among the students. The class covers most of the concepts I’d expect in a machine learning class, but for some reason doesn’t seem to cover the naive bayes and decision tree learning algorithms.
- Disadvantages: The simplicity of the class is also its major drawback — to someone like me who already knows machine learning, the class is too easy and I watch video lectures (for review purposes) at 1.5x or 1.75x the speed (a nice feature, by the way). Professor Ng often has to say “the discussion of this concept is beyond the scope of this course….” Consequently, a student at Stanford is better off taking Professor Ng’s “actual” machine learning course.
Again, if you’re interested in learning more about any subject, I encourage you to check out Coursera. There’s definitely a heavy focus on computer science — not surprising, given that the founders are computer science professors — but there are courses in subjects as diverse as health, law, engineering, and music.