I just finished the above course – I just completed the last problem on the final exam and completed the exit survey a few minutes ago, so I figured I would write my thoughts on the course while they’re still fresh.
My impressions of the course are unanimously positive. I just finished the current iteration of the course (Aug – Nov 2016), and I found it to be excellent. I just finished writing an email to Prof. Grimson (the professor conducting the course), thanking him for all his efforts in preparing such high-quality materials!
Keep in mind that the title of the course is “Introduction to Computer Science and Programming using Python”, and so it is aimed to be an intro CS course of sorts. Nonetheless, it does serve as a very good introduction to the Python language, and covers fundamental CS concepts while teaching the Python language, including the various data structures (lists, tuples, and dictionaries), functions, and classes. The course isn’t intended to teach Python specifically, and so doesn’t cover a lot of the things unique to Python (such as lambda functions, list comprehensions, and other topics).
In retrospect, I wish I had taken this course before taking the “Data Science” bootcamp this summer – I would have been better prepared and would have had at least a rudimentary understanding of the CS fundamentals. Anyway, what’s done is done, and I’m glad that I was able to take this course.
The problem sets were very well crafted. They were appropriately challenging, and I probably did spend around the recommended 15 hours/week or so on them, and they weren’t too difficult where I would have ended up throwing my computer out the window and quitting in frustration. The bonus is that I ended up also learning how to use my computer better – since this course uses Python 3, I ended up using Anaconda to install that (so that I could manage that alongside my existing Python 2 install). I also ended up using Spyder as my IDE of choice for the course, and I’ve come to like that a lot.
As always, if you want to take a look at the problem sets, exercises, and my solutions, I’m posting everything to my github.
Proof of completion (I blacked out my username and email to dodge spambots):
Anyway, onwards to the sequel course, 6.00.2x! I started this course and it’s proving to be MUCH tougher, since the barrier is no longer the Python language, but abstractly developing algorithms before implementing them in Python.