Computational Thinking Notes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Computa onal Thinking

Notes by Tan Yong Heng Michael

Computa onal thinking is characterized by four key elements: decomposi on, pa ern
recogni on/data representa on, generaliza on/abstrac on, and algorithms. [1][2] This process begins
by breaking down a problem into smaller components (decomposi on) and iden fying the variables
involved using data representa on. [3] Applying abstrac on in computa onal thinking enables us to
navigate complexity and find relevance and clarity at scale.[4] By developing algorithms, a solu on
emerges.

Decomposi on

Decomposi on involves spli ng a complex problem into more manageable sub-problems. This
approach makes each sub-problem simpler to address and reduces the overall complexity by
focusing on fewer details at a me. For instance, building an en re e-commerce website is more
challenging than construc ng a single feature of the site. To effec vely use decomposi on, certain
prerequisites are essen al:

a. The problem must be complex.


b. It should be possible to divide the problem into smaller parts.
c. A structured framework of thought is necessary for the process.
d. Importantly, the ability to reassemble the solved sub-problems into a cohesive solu on is
crucial. This reassembly is where algorithmic thinking, or simply the use of algorithms, plays
a vital role.

Pa ern Recogni on

Pa ern recogni on involves detec ng and understanding regulari es and anomalies in data. This
process can be proac ve, through deliberate observa on or experimenta on, or some mes,
pa erns may emerge spontaneously.

Take, for example, the design of an e-commerce website. An effec ve method to test design
efficiency is A/B tes ng (h ps://www.youtube.com/watch?v=XZ15VehMa7U), where two different
designs (A and B) are presented to users. Imagine a scenario where 2,000 visitors are split evenly
between designs A and B. If every visitor exposed to design A makes a purchase (100% sales) and
none of those who see design B do (0% sales), it clearly indicates that design A is more effec ve.

However, consider a different scenario where both designs A and B result in 50% sales each. If the
total sales value is the same for both, it might seem that both designs are equally effec ve. But a
deeper analysis could reveal more nuanced pa erns. For instance, if purchasers from design A are
predominantly aged 35 and above, while those from design B are below 35, this insight can guide
targeted design strategies. A poten al follow-up ac on could be to gather customers' age
informa on, such as their date of birth, and then present them with the design variant that aligns
with their age group.

This concept is similar to Amazon’s feature “Customers who viewed this item also viewed.” This
feature is another example of pa ern recogni on in ac on, where the browsing and purchasing
behaviors of users are analyzed to predict and suggest other items they might be interested in.

1|Page
Image source: Amazon

Abstrac on

Abstrac on is a fundamental technique of computa onal thinking that is par cularly beneficial in
so ware boundary tes ng. This technique simplifies complex systems by filtering out the less cri cal
informa on and focusing on what is essen al for understanding and solving a problem. In the
context of so ware boundary tes ng, abstrac on helps testers and developers to iden fy and focus
on the cri cal boundaries of the so ware system, thereby improving the efficiency and effec veness
of the tes ng process.

Iden fying Cri cal Boundaries: Through abstrac on, testers can determine the most relevant
boundaries of the so ware. These boundaries could be input ranges, data types, user scenarios, or
any other opera onal limits. By concentra ng on these crucial areas, testers can create more focused
and relevant test cases, ensuring the so ware is rigorously evaluated at its most vulnerable points. In
this par cular instance, we applied Boundary Value Analysis, an abstrac on method, to pinpoint six
cri cal test cases. Overlooking any of these cases could lead to significant so ware issues,
emphasizing the importance of their iden fica on. Conversely, employing more than these six test
cases would be an unnecessary expenditure of resources, highligh ng a failure to discern and
eliminate extraneous informa on.

Image source: testplace.gitbook.io

Algorithm

Computa onal thinking, par cularly the aspect of algorithmic thinking, is essen al in so ware
development methodologies like Waterfall and Agile. Algorithmic thinking involves crea ng a step-
by-step procedure to solve a problem, focusing on the sequence of ac ons needed to achieve a goal.
In the Waterfall model, this sequence is very rigid and linear, with each phase such as requirements,
design, implementa on, verifica on, and maintenance, following sequen ally. This method is
algorithmic in nature as it follows a predetermined path, leaving li le room for devia on or itera ve
revisions once a phase is completed. The importance of sequence in this context is paramount, as
each phase relies on the outputs of the previous one, and any errors or changes in earlier stages can
lead to significant disrup ons and rework in later stages.

2|Page
Image source: Medium.com

In contrast, Agile development adopts a more itera ve and flexible approach, which s ll relies on
algorithmic thinking but in a different manner. Agile breaks down the project into smaller,
manageable units, allowing for con nuous reassessment and adapta on at each step. This method
recognizes that the sequence of steps in a project can be non-linear and subject to change based on
ongoing feedback and evolving requirements. Despite this flexibility, the importance of sequence in
algorithmic thinking is not diminished; rather, it's adapted to a dynamic environment where the
sequence of ac ons is regularly evaluated and adjusted. This allows for more responsive and
adap ve project management, accommoda ng changes without derailing the en re project. Both
methodologies, while differing in their approach to sequence and flexibility, underscore the crucial
role of algorithmic thinking in effec vely planning and execu ng so ware development projects.

Design DEV Design DEV Design DEV Design DEV

1 2 3 4
REQ Test REQ Test REQ Test REQ Test

Deploy Deploy Deploy Deploy

Agile Methodology

Image Source: Author

Cri cism of Computa onal Thinking

The cri cism of computa onal thinking o en revolves around several key points:

Overemphasis on Logical Thinking: Computa onal thinking is o en cri qued for priori zing logical
and algorithmic methods at the expense of emo onal intelligence and crea vity.

Reduc onism: Cri cs argue that computa onal thinking oversimplifies complex issues by breaking
them down into smaller, more manageable parts, poten ally overlooking deeper systemic factors.

Neglect of Human and Ethical Aspects: There's concern that computa onal thinking may
inadequately address important social, cultural, and ethical considera ons in problem-solving.

Risk of Misapplica on: Computa onal thinking can be inappropriately applied to areas where its
logic and methods are not suitable, leading to ineffec ve solu ons.

Educa onal Limita ons: Overemphasis on computa onal thinking in educa on is said to poten ally
marginalize cri cal areas of learning, like arts and humani es.

3|Page
Technocentrism: This approach is cri cized for promo ng a technocentric worldview, where
technology is seen as a universal solu on, poten ally undervaluing non-technological methods.

Understanding these cri cisms is important for using computa onal thinking in a balanced and
effec ve manner, ensuring that solu ons are not only technically sound but also socially, culturally,
and ethically responsible.

[1] What is computa onal thinking? - Introduc on to computa onal thinking - KS3 Computer Science Revision - BBC Bitesize.
h ps://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1
[2] Google for Educa on: Computa onal Thinking. h ps://edu.google.com/resources/programs/exploring-computa onal-
thinking/
[3] Wikipedia contributors. (2024, January 23). Computa onal thinking. Wikipedia.
h ps://en.wikipedia.org/wiki/Computa onal_thinking

4|Page

You might also like