This past semester (Fall 2011) I signed up and completed all three of the free Stanford Online classes:
Each course offered a basic and advanced track. For the basic track, you just had to watch the videos (and for AI, answer the in-video quizzes). For the advanced track, there were homework assignments (review questions, exercises) and exams (AI, DB) or programming assignments (ML).
I already wrote an early review of the AI class.
Although I tried to find others in the Phoenix area that were also taking the class, I didn’t have much luck (I also didn’t look that hard). A search on Meetup doesn’t show anything. There was an AI study group on there for a bit, but James let the subscription lapse (no pay, no group), since it was only him and I. Compare that to what’s available in the bay area. Sad.
The AI class covered basics of AI, Search, Probability, Probabilistic Inference, Machine Learning (supervised, unsupervised), Logic, Planning, Reinforcement Learning, Hidden Markov Models, Particle Filters, Game Theory, Computer Vision, Robotics, and Natural Language Processing.
The DB class covered XML, Relational Algebra, SQL, Functional & Multivalued Dependencies, UML, Indexes, Constraints, Triggers, Transactions, Views, Authorization, Recursion, OLAP, and NOSQL.
The ML class covered Linear Regression, Logistic Regression, Neural Networks, Support Vector Machines, Clustering, Dimensionality Reduction, Anomaly Detection, Recommender Systems, Large-scale Machine Learning, and Optical Character Recognition (computer vision). There were also several videos on Machine Learning system design.
I found all three of the courses to be quite good, yet fairly different. The ML and DB classes were similar. All of the classes were easier than I think they should have been if trying to really learn the material well. However, given the wide audience the classes were intended to reach, and that they are all introductory courses on the material, I think the difficulty level was appropriate.
What I liked:
- More quiz questions throughout the videos than the other two classes
- Videos broken down & labeled in finer detail
- Coverage of a lot of AI topics
- Having to toil through the math a bit more & good mathematical explanation of methods
- Aiqus was much better than the Q&A software for the DB & ML classes
- Couldn’t download the videos easily
- Website downtime was awful
- Homework due-dates constantly postponed
- No programming assignments
- Having to constantly rewind the videos to hear the quiz/homework/exam questions
- Ambiguous questions, missing (but necessary) details for quizzes/homeworks/exams
- No practical guidance on how to program or apply methods using a computer
- Getting logged out of the site after a timeout
The biggest complaint with the AI class was what I would consider a complete failure in terms of reliable website uptime. The site was constantly down. For such a high profile class, run by such smart professors, it seemed like a joke that the staff couldn’t keep the website up. At least they weren’t teaching a class on scalable websites …
Also, I found it to be rather lame that the due date for the homework assignments got pushed back a day at the last minute so many times. For someone that made the effort to get the homework done on time (even if last minute), that was annoying to me.
ML & DB Classes
What I liked:
- Downloadable videos
- PDFs of course material
- Review questions & exercises could be retried until you got 100%
The ML and DB classes were very similar in that they used the same format & software for the website, so a lot of the likes & dislikes are the same. There were a few differences though.
In addition I the ML class also had programming assignments and the DB class had interactive web tools for the exercises, both of which I liked.
The programming assignments for the ML class (at least at the beginning) were more challenging than the DB exercises due to the fact that I have significant SQL experience, but had no MATLAB or Octave experience.
There was some definite overlap with the ML and AI classes. I felt that they complemented each other nicely. I really liked that the ML class had programming assignments.
It also inspired me to get a trial version of MATLAB to test out, which has a pretty sweet IDE.
Watch the videos for all of the classes on my iPad was not a good experience. The websites for the classes were not mobile-friendly at all, and there was no HTML5 player for the videos even available until several weeks in to the classes.
I’m thinking about writing an iOS application for the classes next semester to make it much easier to watch the videos and check progress.
I successfully completed the advanced track for all three courses.
- DB Class: 314 / 323
- ML Class: ~100%
- AI Class: 85.9%
Considering the AI class exams were weighted so heavily (70% total of the score), if I really wanted to have scored higher, I would have spent more time on the exams and been more careful. However, the score wasn’t really the point for me. I just wanted to get a good introductory experience to a bunch of AI concepts.
I still haven’t received my statement of accomplishment for the ML class, so I’m just guessing on my “grade” for that class.
In all of the fields covered by these classes, a lot of extra learning and experience is really necessary to actually make significant & practical use of the methods taught. I know this as it is definitely true for databases, where I do have significant experience already. These classes are just a foundation. With so many options of how to use my time, I’ll save the heavier learning for when it’s necessary
I see a lot of potential for using AI and especially Machine Learning in all kinds of areas. Fortune Tech published
an article last September about how
“Data Scientist” is the new hot gig in tech.
I was contemplating a move in that direction myself.
We’ll see what the future holds …
Stanford (and Berkeley now too) has expanded their offerings to 15 courses for the next semester (Jan 2012):
We’ll see how many of these I can complete this time around, and still get other work done, and balance family and social obligations.