Topics
Introduction
- Computational Thinking is a subset of problem solving
- It can be applied in various fields, not just programming
- There are four pillars (ways) to solve a problem
- Decomposition
- Pattern Recognition
- Data Representation and Abstraction
- Algorithms
Decomposition
- First pillar is decomposition, the way to break problem into sub-problems
- Breaking huge problem into smaller pieces allow us to focus and solve the problems effectively
- Similar to having an issue and break it into smaller tickets in daily work
- Combining all sub-problems, should present the whole problem
Pattern Recognition
- The second pillar of computational thinking
- It is the step we observe the problem and focus at features of the problem
- If there is any features we could discover, it is possible for us to create reusable solutions
Data Representation and Abstraction
- The 3rd pillar of computational thinking
- Filter out the unrelated & trivial information based on the criteria of the task
- It allows us to have better vision of the problem
- The result from this pillar should be the "schema" or "shape" of the output
Algorithms
- A set of instruction of what to do in a certain order
- It is the last step after we implemented the other three pillars
- We might not need all the pillars every time
- We can start from a simple algorithm and further improve it to a more generic algorithm
- Algorithms could be represented in plain English, Flow Chat, pseudo code and etc.
- Basic Flow chart syntax is as follow:
Reflections
- It is generally a good introduction course because I realized some strategies I have been using in my career or even life
- e.g. After receiving a task, I will confirm the expectation and result from my supervisor, and break into smaller tickets (Decomposition)
- e.g. By checking the tickets, I will try to find out how to reduce repetitive work (pattern recognition) and prioritize them
- After taking the lessons from this week, I will try to be more cognitive of using computational thinking in my future work
- I had trouble on the Data Representation and Abstraction part, because I thought it is only a filter for useful information, but actually it is a review on the shape of result
- After working on assignments and doing peer reviews, I found that my classmates and I could not grasp the computational thinking as a whole and tend to lose focus of the problem
- e.g. In the Algorithms part, some of us only listed out the instruction of a specific task, which is not the purpose of Algorithm
