· 3 min read

Review of MIT OpenCourseWare: Introduction to Computational Thinking with Julia

This article was auto-translated from Chinese. Some nuances may be lost in translation.

I highly recommend checking out the MIT open course Introudction to computational thinking. All lecture videos and assignments are available on their website. I initially decided to follow along because 3B1B (Grant Sanderson) was one of the instructors, but the content turned out to be far more fascinating than I had anticipated.

At first glance, the syllabus looks quite eclectic—covering topics like data science, climate change modeling, ray tracing, partial differential equations (PDEs), statistics, and image processing. However, everything actually revolves around the core idea of “computation.” I found that this approach effectively trains your ability to solve problems computationally.

For example, the first two lectures introduce image convolution, breaking the problem down into matrix multiplication, with an assignment to implement a simple Gaussian blur. The concept of convolution is then extended further—it can be applied to edge detection and even Fourier transforms using the exact same underlying idea. This process of breaking down seemingly difficult problems step by step into mathematical representations, and showing you how to apply them across different domains, makes for a fantastic way to learn. It’s also a skill that many people lack.

Next, the course covers seam carving—a technique that resizes an image’s aspect ratio without making it look “distorted.” Normally, when you change an image’s proportions, one dimension gets stretched or compressed, resulting in an awkward appearance. This algorithm identifies the less important parts of an image and removes them, keeping the overall picture looking natural.

After that comes data processing, using COVID-19 data as an example. I thought this was very relevant and timely, allowing students to learn using real-world cases. It also touches on what dimensionality reduction techniques like PCA and Singular Value Decomposition (SVD) represent conceptually, while reviewing fundamental statistics along the way.

For the latter half of the course, due to having less interest and being a bit lazy, I only skimmed through the material. Here is the outline for reference:

  • Random walks
  • Discrete mathematics
  • Partial differential equations
  • Climate change modeling

Personally, I think these are all very practical concepts. If I have time in the future, I would definitely like to finish the rest of the course.

The course uses Julia as its primary programming language throughout. I found it very pleasant to write in. Going forward, if I need to do basic matrix computations or data analysis, I will likely reach for Julia. For experienced engineers, it should be quick to pick up. Plus, paired with Pluto, you can write code directly in the browser (similar to Jupyter Notebooks) and see results in real time.

P.S. Grant Sanderson’s delivery and videos are extraordinarily well-crafted. In my opinion, his lectures offered the highest production quality among all the instructors.

Related Posts

Explore Other Topics