Monday, March 21, 2016
In 2012 word got out that Major Universities would be offering online courses for free with some sort of certificate at the end. I jumped at the chance to really see what I could do. So in October of 2012 I signed up for EDx.org, then a joint venture between MIT and Harvard. This would be my first online MOOC (Massive Open Online Course) and I was excited. I had 2 classes in mind to take, 6.00x through MIT, and CS50x through Harvard. I always wanted to learn to code, but it never worked out, there was no internet at the time, and I had no one I could ask questions to, but all that was about to change.
First Up MITx 6.00x (now 6.00.1x) :
To be honest, I had already been watching the videos for 6.00x through MIT's Online Coursework. A program designed to allow anyone to virtually audit any MIT course. edX now allowed you to participate, not just watch and receive credit for you work (although not college credit.). I needed a new career and frankly cannot afford an online college. There are 115,000 janitors with BA's and I am a member of that statistic. http://www.bloomberg.com/news/2012-06-17/end-u-s-student-loans-don-t-make-them-cheaper.html , but now I was in a class at MIT. (albeit virtually, but who cares?). This course is strict. The deadlines are the deadlines and you better have it done when its time to turn in your problem set or you get a zero. I was honored to comply, because I knew that the in-class students had the same rules, but I also work 60 hours a week as a janitor, plus I have a wife and two kids, so something has to give. So sleep gave in, no more sleep. I had something to prove so I was up for it.
6.00x is a flagship course on edX. As such this course has very tight integration with the edX online software. Everything is built in to the website with the exception of the Python coding environment. That is a simple download.
The class is broken up into a string of small 5 minute lectures followed by practice exercises. I dug in. The language we were taught was Python. The advantage was that Python does not require braces or semicolons, just indenting 4 spaces. It does not require types to be set either, just when casting. It is then easier to read and looks more like shorthand than computer code. The fundamentals of variable assignment, lists, sets, dictionaries, and loops came rather easily, but MIT's course is not just about how to code, but rather how to use code do science. That essentially is the function of this course. Learning to use code to do science.
In the practice exercises you are asked to code a solution in the web browser and submit. If you succeed, you get a green check, fail and you start over.
You are not alone though. There is an online forum where students can learn from each other and get help. The instructors and teacher's assistants also jump in to help. I cannot express how amazing it was to connect with people all over the world through this platform. If the class faltered, those students who are actually software engineers speak up to help.
This was overall a challenging experience not because of the code taught, but what you were asked to do with it. I passed the course and got my certificate, but it was not without blood. This teaching approach I would call framework style. They give you the rough outline, but its up to you to figure it out. This is what happens in the real world, I'm sure, but in the real world you can ask more questions, and online you can't. Its a puzzle you have 30 min to solve it: go!
All in all it was an honor to take the class and in the end I learned far more that I had in the past about algorithms and code. More than that, I now had command of a powerful popular language, and after the MIT course, I wasn't afraid of much.
But I signed up for two edX courses at once, and I still had to complete CS50x. Would I make it? Would the next intro to computer science course be the same?
See part 3 CS50x.