April 21, 2016 noteThis article was originally published on December 03. 2012. It's now more than 3 years later and this is one of the most popular articles on my blog, having accumulated more than 2000 pageviews, so I re-visited the article to see how it's holding up. Alas, the link (http://forums.udacity.com/questions/2025469/is-this-course-watered-down#cs101) to the original forum question in the opening paragraph no longer works as Udacity has re-done their forum. Worse still, far as I can tell, not all of the old forum Q&A items survived that re-do. I think I finally found a link that works. Sigh. And the forum re-do broke other links in this article too. I've done my best to replace them with updated links. If you find any problems with broken links or whatever be sure to leave a comment about the problem so I can do what I can to fix it.
I haven't retaken the CS101 course lately, but my understanding is that it now has some additional content and is now, nominally, a 3 month course. It is still self-paced and you can still take it for free, but they offer an option ("Udacity Connect") for $99/month to have face-to-face (Skype?) support, so you can personally ask questions, get human assessment of your work, have a sense of accountability for your progress. If you find you aren't as self-driven, self-motivated as you thought, perhaps that face-to-face option is worth $99/month to help keep you on track. It certainly is less than college tuition.
The original December 03, 2012 article, as amendedA Udacity CS101 student asked on the forum if the course is watered down compared to taking an introductory programming course from Prof. Evans on campus in Virginia. To see the original question, see: Is this course [CS101] watered down
Here is my reply to that question:
It's an 8-week course intended to fit into your life - that is, it isn't 8 weeks of intense focus every waking hour. It doesn't cover 100% of the Python language and Python environment, but it is not, IMHO, watered down. It covers what it intends to cover and does a good job of it. At the beginning of Unit 7, Dave gives a quick recap of what the course has covered. I won't rehash that here, but will try to describe from a different angle what you should get out of CS101:
- Python programming language. A start on programming, specifically in Python.
- Introduction to computer science. BNF, abstraction, recursion, iteration, even an introduction to performance analysis (e.g. linear run time, quadratic run time, ...)
- Research skills. Hone your use of Google or the search engine of your choice to find more information than the lectures have covered.
- Communication skills. The forum is an important part of the course. You should be asking and answering questions there. It should motivate you into working on those research skills mentioned as item 3.
- Time management. Much like getting through all the hoops to earn a college degree, getting a certificate of completion from CS101 shows that you've managed your time well enough to stay on track and keep moving forward for the 8 or so weeks. That's an important skill that will serve you well on the longer haul to a 4-year college degree.
- An idea of whether computer programming and computer science is a field that interests you enough to focus on it for years to come. If you hate it, you can always go in other directions (Hamburger U.?) and will only have sacrificed a fraction of 8 weeks of your time. I hope you find the course stimulating and enjoyable and that it leaves you hungry for more. I assure you there is no shortage of more.