MIT OpenCourse - Reflection on Introduction to Computational Thinking with Julia

Written byKalanKalan
💡

If you have any questions or feedback, pleasefill out this form

Table of Contents

    This post is translated by ChatGPT and originally written in Mandarin, so there may be some inaccuracies or mistakes.

    I highly recommend checking out this MIT open course, Introduction to Computational Thinking. All the course videos and assignments can be found on the website. I initially started following along because 3B1B was also teaching, and I was pleasantly surprised to find the content even more interesting than I expected.

    At first glance, the course content may seem quite diverse, covering topics like data science, climate change modeling, ray tracing, partial differential equations, statistics, and image processing. However, they all revolve around the concept of computation. I believe this approach effectively trains your ability to solve problems using computers.

    For example, in the first couple of classes, you learn about image convolution, breaking down problems into matrix multiplication. The assignment is to implement a simple Gaussian blur. The concept of convolution can be further extended; for instance, you can apply the same idea for edge detection or even Fourier transforms. This method of breaking down seemingly complex problems into mathematically representable steps, and showing you how to apply it in other areas, is an excellent learning approach that many people lack.

    Next, let's talk about seam carving, an algorithm that can change the aspect ratio of an image without looking "off." When we typically alter an image's proportions, one dimension is stretched or compressed, which often results in a strange appearance. This algorithm identifies the less important areas of the image, allowing you to remove those sections while keeping the overall image looking normal.

    When it comes to data handling, using COVID-19 as an example feels quite relevant; it allows for learning through real-world cases. The course also touches on concepts like PCA for dimensionality reduction and the significance of singular value decomposition, while briefly reviewing statistical concepts.

    I lost interest in the later classes and, admittedly, got a bit lazy, so I've only skimmed through them. Here’s an outline for reference:

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

    I personally think these are quite practical concepts, and if I have time, I’ll likely continue to follow through the entire course.

    The course primarily uses Julia as the main programming language, which I find very comfortable to write. In the future, for simple matrix operations or data analysis, I will probably use Julia. Experienced engineers should pick it up quickly, and with Plutco, you can write code directly in your browser (similar to Jupyter Notebook) and see the results in real time.

    P.S.: Grant Sanderson’s delivery and videos are impressively well-made; I believe he is among the highest quality instructors in the group.

    If you found this article helpful, please consider buying me a coffee ☕ It'll make my ordinary day shine ✨

    Buy me a coffee