Computer Science

MIT 6.00.1x Review

Review of “Introduction to Computer Science and Programming Using Python”

Image for post
Image for post
My grade for MIT 6.00.1x

I just finished auditing MIT’s 6.00.1x (Introduction to Computer Science and Programming Using Python) on EdX. This is the first MOOC that I even reached til the end, let alone passed! Please note that this course is fully accessible: you can get your codes for all the problem sets and exams graded for free; you only have to pay if you want to obtain a verified certificate after passing the course — $49, less if you are granted EdX’s financial assistance.

Below are my three observations after taking the class, including what I think is good, what can be improved, and tips on getting the most out of the class:

1. You should buy the accompanying textbook

The course comes with a textbook that can be bought as hard copy or in e-book form. This helped me a lot when I was confused about a certain topic during a lecture — which was very often — and was too exasperated to keep rewinding the same ol’ video. A deep reading through the relevant section in the book was more than enough to clear up my confusion, and gave me ample time to think about the concepts, especially when I tried to followed the code on the page. Without the book, I highly doubt I would have completed the course.

The course textbook

2. The algorithms were not as scary as I’d thought they would be

I was so scared going to the lessons on algorithm because I’d always thought they were too hard for me to understand. However, if you actually follow through the codes for those algorithms in the book or in the lecture slides and make ample notes on them — as seen below when I destroyed my textbook with highlights and annotations — you’d soon start to get their logic. I was pleasantly surprised to discover that I could implement the sorting algorithms (selection sort, merge sort) even before seeing the code, just by listening or reading the pseudocode. This is a testament on how the previous lessons in the course really gave me a strong foundation to start implementing new programs.

Image for post
Image for post
Me trying to figure out sorting algorithms

3. This class could be better with some data science applications

As this is a prerequisite class for MIT’s 6.00.2x (Introduction to Computational Thinking and Data Science, now open!), I wish there’d be more data science applications of the concepts taught in class, given that many people who take the class are interested in learning programming for that purpose.

Granted, the items covered in this class are supposed to be basic, but I think there are better ways to learn about classes and inheritance than with a hackneyed Person-Student-MITPerson-Undergrad/Grad-class example. I’m really interested on how classes could be used to model data science problems, and I think with more relevant examples I might be able to appreciate more the powers of object-oriented programming. For now, I’m still not quite sure when or how I should use them.

Image for post
Image for post
Snoozeville -.-

Further resources:

Here are the additional resources that I used for the class that really helped me during the course:

  1. Other Python beginner books: I recommend Python Crash Course, as I’d finished that book first before taking this class. You can just skim the first 11 chapters which cover Python basics.
  2. For algorithms, I highly recommend Grokking Algorithm. I adore this book, especially the cute illustrations ❤️ After reading the first 5 chapters of the book, which cover run-time analysis, sorting algorithms, and hash table, it was so much smoother for me to absorb the course lectures on those topics. As the course textbook can sometimes be terse, this book is a wonderful companion to it.
  3. Finally, nothing beats getting a pen and paper — it shocks me how much paper I’ve used for this class! — to draw out the concepts covered in the class and explain to yourself how it works; for example, how a certain function mutates a list passed onto it. This also applies when you’re working on the exams and problem sets: it brought me great pleasure to see the ideas I’d written and reasoned out on paper get turned into code that then worked.

A few weeks after writing this review, I’d also finished MIT 6.00.2x. You can check out my review of that course here.

Written by

Data scientist based in Ho Chi Minh City, Vietnam |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store