Reflection on Introduction to Computer Science and Programming Using Python
-
Background
After more than half a year of hard-working, I finally complete this course today. I am so delighted that in the end, I embark on the journey of computer science and programming. During this process, I countered many obstacles and a lot of times, I couldn’t figure out the logic behind some programming tasks. And I was pondering over one solution for hours to find out the thinking behind it. It’s quite difficult for someone who learn this stuff from scratch. Programming is still a long way to go but after this course, I am quite confident that I am able to carry on.
-
Rewards
First of all, I want to thank Prof. Eric from Mit whose lectures are quite straightforward and get to the point. I can easily grasp the essential knowledge illustrated by some simple examples. If I have some doubts, I also can seek to the help from the posts and lovely TAs. That‘s the most helpful community I have ever seen on Mooc. I can see a lot of efforts have been poured in the formation and development of this courses.
More importantly, I can learn the thinking behind the programming. For instance, Prof.Eric compares the difference between iteration and recursion, elaborates on the different complexity of algorithms, which enables us to formulate varied solutions to a problem and compare the most efficient one.
Just like he said, there are three As of computational thinking:
-
abstraction: teaches us to find the common labels or exact notations of things, group them in more logic layers and dig out the relationships between different layers.
-
automation: if we have proper abstraction, it’s possible to mechanize things. Keep in mind to utilize machines to facilitate our efficiency. Modularize functions and assemble them into something greater.
-
algorithms: is language for describing automated processes. Always remember the big O notation. Simplify algorithms, cut it in half, think recursively, you can reduce problems into smallest parts. Less is more!
-
-
Afterwards
Computational thinking is quite useful not only in professional fields but also everyday life. It shades a new light for me to think about problems in a more logic and systematic way. For instance, English(Language) is just another language with certain rules(grammar). The vocabulary is also abstraction of things(layers of notations). If we can grasp words and grammar in more logic and systematic ways, and practice them as a way to automatize internally. We definitely can learn it well and hone our English skills.