Gold BlogFree From MIT: Intro to Computer Science and Programming in Python

This free introductory computer science and programming course is available via MIT's Open Courseware platform. It's a great resource for mastering the fundamentals of one of data science's major requirements.

I shouldn't have to tell you that programming is an important aspect of data science.

In order to implement computational solutions to data science problems, it is clear that programming is an absolute necessity. Regardless of whether you are visualizing data, performing exploratory data analysis, or implementing machine learning models, and whether you are using existing code bases and libraries or coding from scratch, writing code as a data scientist is required.

But stringing together disparate lines of code found via Google searches shouldn't be the goal of an aspiring data scientist (or anyone else learning to program). An understanding of computer science principles, computational approaches to problem solving, and the fundamentals of programming, all independent of implementation programming language, should be the goal of anyone with a true desire to really learn how to code.

There are lots of ways to pick up programming and master the concepts of computer science. Obviously, some people will learn better with some approaches than with others. Thorough university courses, including lectures, readings, slides, and assignments, are one such approach.



Via its Open Courseware initiative, MIT offers Introduction to Computer Science and Programming in Python, a structured approach to learning the concepts of computer science and programming. Taught by Dr. Ana Bell, Prof. Eric Grimson, and Prof. John Guttag, this course seeks to impart a comprehensive set of computer science fundamentals upon newcomers to programming.

The OCW website offers this description of the course:

6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.


The course topics are as follows:

  1. What is computation?
  2. Branching and Iteration
  3. String Manipulation, Guess and Check, Approximations, Bisection
  4. Decomposition, Abstractions, Functions
  5. Tuples, Lists, Aliasing, Mutability, Cloning
  6. Recursion, Dictionaries
  7. Testing, Debugging, Exceptions, Assertions
  8. Object Oriented Programming
  9. Python Classes and Inheritance
  10. Understanding Program Efficiency, Part 1
  11. Understanding Program Efficiency, Part 2
  12. Searching and Sorting

Interested in skipping directly to the lecture video playlist? You can find that on YouTube.



Note, once again, that these concepts are all taught using Python, one of the dominant programming languages used in data science, and one of the most popular general purpose programming languages in widespread use today.

Technology moves quickly. However, while this version of the class was taught in September 2016 and uses Python 3.5, the fundamentals of computer science and programming are much more static than outsiders tend to believe, and so do not be turned off by the fact that this iteration of the course is four years old. It really is still very much relevant.

The course's accompanying textbook, Introduction to Computation and Programming Using Python, is, unfortunately, not free. However, it can be picked up for a reasonable price at sellers like Amazon if you are interested in following along with the readings. If not, the lecture videos, notes, and other resources still provide a rich learning experience in sum.



If you go through this course and find yourself looking for the next step, MIT's Introduction to Computational Thinking and Data Science is the direct follow-up, which is also freely available on their OCW platform.

You can't go wrong learning to program, and these days you can't go wrong learning Python. If you are interested in mastering the essentials of computer science and programming, this MIT course on the subject might be for you.