This is the first of a few reviews I'll be posting of online courses available.
6.00.1x: Introduction to Computer Science and Programming Using Python is available though EdX, using coursework and instructors from MIT.
The course is similar to the course taught at MIT for introducing newcomers to programming and computer science, but who may not be pursuing a CS degree. It isn't the real course that CS majors start with, which is Structure and Interpretation of Computer Programs, an intro to programming that uses Scheme (a dialect of Lisp) to teach programming principles.
The course runs 9 weeks. You'll need to set aside 6 or more hours a week to view lectures, do mini-exercises (called finger exercises), and problem sets.
Why I took the course
As I was new to Python, I wanted to take this course to get some organized instruction. I had already read Introducing Python: Modern Computing in Simple Packages, written by old friend Bill Lubanovic, and wanted more exposure.
I also wanted a refresher on some old CS concepts I had forgotten, and intro to concepts I had never learned.
- Introduction to Computer Science
- Core Elements of Programs
- Simple Algorithms
- Assertions and Exceptions
- Efficiency and Orders of Growth
- Memory and Search
- Object Oriented Programming and Inheritance
There is a book that accompanies the course, but I found that it's good for review but doesn't offer much beyond the lectures.
A certificate is available upon course completion, and is available for purchase for $50. There is a cutoff time to purchase the certificate sometime during the course, so don't wait too long or you will be unable to purchase. Linkedin has a certifications area to show these in your profile.
What I liked
The course is taught by Dr. Eric Grimson, who is now the Chancellor for Academic Advancement at MIT. He is a great instructor, and explains concepts well.
The course was straightforward, and Python was explained well. It was Python 2.7, so it's a bit in the past, but you can't blame them. They would have to change their system, lectures and all exercises and exams to upgrade.
The finger exercises, which are mini-quizzes interspersed amongst the lecture videos, are good review, and you can answer multiple times until you get them right, since there is some trickiness in Python that has some gotchas.
There are several problem sets that are released regularly as the course progresses, and they will challenge you. They take 2-4 hours each to complete, but they are not meant to stump you. They are meant to make sure you really grasp Python. There is a mid-course quiz, and a final exam. The problem sets, quizzes and finals contribute most of the course final grade. The finger exercises contribute very little, but they are important for reinforcing concepts.
You're not alone in your journey. There is a discussion board, and some of us created a Slack channel and chatted there, helping each other out. The TAs will also assist folks.
If you hang in there, you'll come out with a solid grasp of Python, and will have put it to practice.
What I didn't like
I can't really complain, because the course is great and was a pleasure to take. Don't expect to come out a computer science whiz. This is more of a programming course, not much of a CS course. There is a difference. You can program for years with very little CS experience. I have. Only very basic CS concepts are covered, to give you a taste. You'll cover big-O (algorithmic complexity/efficiency), trees (searches and decision trees), and bisection search. But not much more.
Once the course is over, you'll be steered towards 6.00.2x, which will get you more experience with computer science, and data science.
For a full-frontal assault into computer science (and its difficulty), take Rice University's Algorithmic Thinking, Part I (on Coursera). Very challenging, and very time-consuming. But you will learn core computer science, deep into your brain. I'll have a review on that later.