A few weeks ago I stumbled on a Reddit post detailing MITx: 6.00.1x – MIT’s introductory course on computer science. At the time, I was just looking for some help on a problem I was working on with Automate The Boring Stuff with Python. Even more fortuitous was that the course is free on the edeX platform ($75.00 if you want to get the certificate which also gets you a bunch of other course material too) and that it was starting soon. So I signed up.
One of the pitfalls with any book, guide, course, tutorial, etc is that, no matter how good it is, ideally, you’re going to have to learn a deeper understanding of your subject. That, and start building stuff. But programming can be incredibly difficult to just jump into building things. I was having fun with Automate The Boring Stuff, but at times I felt like I was just copying code rather than understanding why this code works. So, a dose of computer science shouldn’t hurt, right?
As I write this, I’m waiting for week 2 of course material to become available on the platform. I completed week one’s lectures and tasks in four days. The lectures aren’t very long and so far, I haven’t found any of them to be too mentally taxing. The longest are just over 15 minutes, and the shortest are around three. Each lecture is followed by one or two pages of comprehension exercises. At the end of the week’s material, you’re given a problem set which is graded and a due date to complete by.
The course uses Python as its tool to demonstrate the core concepts of computer programming and science. Week one’s material was focused largely on some basic Python syntax, how a computer “thinks,” basic linear programs vs branching ones, and while and for loops. Again, I felt as if the course content was pretty easy to follow. It wasn’t until the final problem set that I noticed a challenge, and that challenge was significant.
The first of the three problems in the set didn’t seem too hard. It involved writing a program that can pick out all the vowels of any string of random letters. I spent about an hour on it and felt really pleased with myself that I could write the script without having to draw on any outside resources. The next problem asks you to write a program that can find how many times the word “bob” appears in a randomly generated string of characters. This one took me a fair few hours to get through. After what felt like four hours or more, I needed some hints from somewhere. Luckily, one of the course’s TA’s has a YouTube channel where he offers hints to the problem sets.
These videos were a godsend. They’re purposefully made to help those of us who just need a bit of guidance. The course is, after all, for beginners and the problem sets are REALLY challenging. They don’t exactly walk you through the problem, they just drop enough hints to point you in the right direction without showing you how to answer the question in full. I suspect I’ll be using these videos a lot throughout the course because the final problem of the set – write a program that picks out the longest alphabetically ordered string of characters from yet another randomly generated string, really had me stumped. I started this around lunchtime on Sunday, took a break from it for a few hours later on in the afternoon and didn’t finish it until around 9 that night. It was incredibly satisfying to finish, but yeah, the difficulty of this course went from about 50 to 100 in a second.
Thoughts on MITx: 6.00.1x so far? Well, it’s only been one week and while it started off as a moderate challenge, it quickly ramped up to something serious by the week’s end. I’m both excited and a little worried for week two. In an effort to try and be prepared as possible, I’ve spent the last few days practicing problems on Codewars and reading up on the course’s next topic – recursion. I did drop some money for the certificate. There was a 15% discount code for new students, which helps. I’m not overly impressed by certificates but putting money down on something ties you into more of a commitment. Paying for the certificate also gives you full access to the course material for all time as well as offer more graded assignments, I think. Anyway, if I don’t get too bogged down with study, I’ll try to update my progress here later on.June 10, 2020