applying computational thinking: a consumer's perspective
TRANSCRIPT
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
1/8
Applying Computational Thinking: A Consumer's PerspectiveSanjeev Kumar Kulkarni
Senior Software Engineer, Ness Technologies (I) Pvt. Ltd, Bangalore
Email: [email protected]
http://sanstechbytes.wordpress.com
Abstract
In this paper, I give a brief background on the challenges we face, when we, the consumers, set out to
consume information in the process of accomplishing a task and the need for applying computational
thinking (CT), thereby arising. I describe ways to effectively address our inability in coming up with an
efficient strategy in such situations and in particular, address our inability in making an optimal
decision for a subproblem of Bad Buy. Ive outlined some steps that can be incorporated in our
decisioning framework to aid us in making an Optimal Buy. With a singular focus on the topic of
Computational Thinking, Ive illustrated application of CT techniques for situations mostly relevant to
Consumer in day-to-day life. In the end, I draw some conclusions based on my observations and my
own experience applying computational thinking, as a consumer. A Consumer is not just referred to
the one that buys items; without the loss of generality, a Consumer is anyone that consumes data.
Data may or maynt contain information all the time.
mailto:[email protected]:[email protected] -
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
2/8
Background
The abilities of an individual, including the abilities for abstract thought, understanding,
communication, reasoning, learning, planning, emotional intelligence and problem solving define
degree of his/her intelligence. The path to excellence in any field consists of journey through many
layers of abstraction of knowledge needed to use and enhance these abilities. This applies to
accomplishment of a task or even, sheer completion of a task, as well. In this journey of
accomplishment of task, lets say for all practical purposes, that each and every skill (to perform any
task) is acquired in a layered manner through different abstraction layers (think of these layers as,
concentric circles) with the level of difficulty increasing at each layer. In schools, some gifted students
naturally build upon the above fundamental abilities, move through each and every layer of
abstraction easily and some not-so-gifted struggle a bit to do so but end up being there, through hard
work and perseverance, while majority of the students struggle to move to the more and more difficult
layers of abstraction itself. For any given generation at any given point in time, vast majority of
students are at a layer of abstraction with lower level of difficulty compared to a minority (say, < 40%
of students) that are at a layer of abstraction with higher level of difficulty. Industries want people that
are in these layers of abstraction where the real-world action is, when they graduate.
Were not talking about just the chosen fields to draw these observations. Regardless of ones years
of schooling, everyone thinks computationally in completing a task, because this kind of thinking is
already embedded inside of us either because it was passed on to us by our ancestors, or weve
observed that it works and have incorporated it or by virtue of our study and practice. A task can be
as: Going to work in field, answering multiple phone calls, designing a system, washing clothes,
boarding a bus, writing a program etc. Everything is algorithmic in nature.
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
3/8
Keywords
Pattern, Algorithm, Computation, Time, Space, Consumer, Buy, Market, e-Commerce, Laptop
The Problem
Therere two types of problems Im trying to address. One is the problem of a sub-optimal buy; and
the other, the poor information consumption.
The information overload has impacted all spheres of our lives. Add to this our own vulnerabilities to
deal with it, we suddenly find it difficult to make an optimal decision or consume rich information. We
find ourselves in loops.
In all our outward dealings related to buying an item or in general, consuming information, this has
resulted in increasing the complexity of the whole process of consumption. We often end up making a
sub-optimal buy or a bad buy.
Let's look at it, from the perspective of current trends in Education Sector. The lack of ability to think
computationally, among graduates has led to the poor supply of man-power to industries in various
sectors. The prevalent education system is the major contributor to such a situation. Researchers and
Visionaries have increasingly felt the need for introducing appropriate courses at schools or for
introducing mechanism to educate masses concerned with developing new way of thinking known as
Computational Thinking, to bridge the academia-industry gap as an effort in tackling this issue.
Theyve also simulated and have experimented with results on Computational Thinking, with an
appropriate course material, at high-school and pre-university levels that can significantly help the
cause. However, a course on Computational Thinking is still not taught at most schools.
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
4/8
Understanding Computational Thinking
Computational Thinking is a way of solving problems, designing systems, and understanding human
behavior that draws on concepts fundamental to computer science. Computational thinking is thinking
in terms of abstractions, invariably multiple layers of abstraction at once. Computational thinking is
about the automation of these abstractions. The automaton could be an algorithm, a Turing machine,
a tangible device, a software systemor the human brain. (Carnegie Mellon, n.d.) [Bold added for
emphasis.]
Computational Thinking is the amalgam of thought processes involved in formulating problems and
their solutions so that the solutions are represented in a form that can be effectively carried out by an
information-processing agent. In simple terms, its the thinking that involves techniques like problem
decomposition, pattern recognition, pattern generalization to define abstractions or models, algorithm
design, and data analysis and visualization. As software engineers, we use these techniques; we
acquire these skills with practice and build reliable computing systems. While CT draws on concepts
from Computer Science, its relevance is increasingly being recognized in other areas of active study
including algorithmic medicine, computational archaeology, computational economics, computationalfinance, computation and journalism, computational law, computational social science, and digital
humanities.
Specific computational thinking techniques include: problem decomposition, pattern recognition,
pattern generalization to define abstractions or models, algorithm design, and data analysis and
visualization. In the next section, Ive made an attempt to describe each of these techniques with
examples, to develop better understanding of CT and in a way, address the said problems.
How Computational Thinking Solves Your Problem?
Can we apply computational thinking in daily life? Is Computational Thinking already a subsystem in a
big system of our thought processes? Yes and Yes. Although engineers, scientists, architects, or ingeneral those involved in accomplishing a task requiring abstraction and automation, use CT in their
daily lives, some of the examples given below still relate to events in everyones life, including those
mentioned above.
1. Pattern Recognition:
The ability to notice similarities or common differences that will help us make predictions or lead us to
shortcuts. Pattern recognition is frequently the basis for solving problems and designing algorithm.
Example:
Many a times we in IT are under enormous pressure to meet certain deadlines. Most of us usually
search on Google or seek help from colleagues or think about solutions based on existing code or
existing artifacts. It happened with few of my colleagues. All of us including Yours Truly, in our team
didnt have adequate knowledge of XSL syntax (we could generally use help from existing code or
google). Theres a requirement to sort a bunch of records based on date and it was inside an XSL file.
My peers got no help from existing code and spent roughly one day thinking about various
approaches to solve, which they werent willing to use.
When they discussed with me, I predicted that since XSLT is a declarative language used for
reorganizing document content, and a way to generate multiple results such as HTML, WAP, and
SVGfrom the same content and as any programming language that is used for the tasks mentioned
in previous line, provides routines for search and sort operations, XSLT might provide a sort routine.
With XSLT, its mostly tag based and I keyed in and phew, that works! We solved the problem in 2
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
5/8
minutes. Searching and Sorting are some of the key operations supported by all programming
languages that are used for tasks like above. I recognized the pattern and predicted. Five minutes,
and we got our solution! You dont need work experience all the time. Its the thinking you need.
2. Pattern Generalization and Abstraction:
It refers to the ability to filter out information that is not necessary to solve a certain type of problem
and generalize the information that is necessary. Pattern generalization and abstraction allows us to
represent an idea or a process in general terms (e.g., variables) so that we can use it to solve other
problems that are similar in nature.
Example:
All the people are inherently aware of the fact that due to middlemen (brokers), they always buy items
at a heightened price than the original price. Its a pattern thats been observed since the mankind
began trading. Why dont people generalize this pattern and try to find ways to solve this problem and
to make an efficient buy? They dont have to be literate to be educated. Even with the internet
accessible from mobile, desktop, laptop and reachable to masses, many people do not innovatively
think and save time and money using Internet!
Think about buying an item at a lesser price than is sold at many places. Be it book, apparel, music
CD, gadget etc. If you think computationally, you come up with abstractions about different
intermediary businesses involved between the producer (manufacturer) and the consumer (end user).
You also observe the pattern that each intermediary business makes some money in the form of
commission and the final price the item is sold at is obviously higher than it was actually priced by the
manufacturer. Instead of the B2B (Business 2 Business) model, if you use the B2C (Business 2
Consumer) model, through online shopping for example, theres a saving in both money and time.
Think Amazon.com, Think Flipkart.com etc.
Suppose you went to buy book from a Shop on Avenue Road in Bangalore (This is the place in
Bangalore where books are sold usually at discounted rate of
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
6/8
performance results in your workstation based on the past experience patterns. Then, you google for
products on internet and compare them on one page. You identify the range which meets your
requirements of memory and data processing speed. Then you look at the individual brands.
Additionally, you dont straightaway look up for different brands on google and then are caught up
mixing brands and unclear requirements ending up with overlap of wants and requirements.
Decomposition saves time and gives a clear picture to you about the configuration and look and feelfor 'your' laptop. From the perspective of someone not so knowledgeable about PC components, this
Laptop Buying Task can be considered to be solved algorithmically and more on this below.
4. Algorithm Design:
The ability to develop a step-by-step strategy for solving a problem. Algorithm design is often based
on the decomposition of a problem and the identification of patterns that help to solve the problem. In
computer science as well as in mathematics, algorithms are often written abstractly, utilizing variables
in place of specific numbers.
Example:
Lets consider a scenario when a layman wants to make an optimal decision in buying a mobile. Lets
also visualize the scenario when the so called computer-savvy person wants to do so, without
applying computational thinking techniques. By optimal, I mean the type of thinking that results in
deciding a great mobile for his budget and yet something that could offer rich visual and audio
experience without compromising on the core requirements like call quality, decent battery backup
etc, having invested minimum time in the process. By layman, I mean someone who cant appreciate
the technical specifications like 5.1 Channel Output, file formats like MP3, MP4, HD etc, Screen
Resolution, and Memory (in-built and expandable) size etc, himself. Ultimately, everyone really wants
to make an optimal decision!
With so much of competition in mobile phone market, there are plenty of products in both low-end and
high-end segments on the offer by different mobile handset manufacturers. This makes the job of
making optimal decision a little challenging. There is also lot of middlemen, n number of commission-
sucking middlemen in increasing order of commission sucking ability(this particularly refers to the
second-hand mobile sellers), shops, malls, mobile showrooms, online stores, where mobiles are sold.
From business perspective, the sellers need to keep themselves busy, and cant afford to spend good
time explaining tech specs to laymen. Laymen waste a lot of time on looking at lot of products
(enticing) that are cheaper, that may turn out to be costlier after some time in terms of the experience
they expected but werent able to express while buying a mobile and making. In the end, they make a
bad buy for their budget.
Lets talk about computer-savvy persons now. As its proven that Computers / Internet addresses the
human vulnerabilities of being lonely and fearful of intimacy, when computer-savvy person wants to
make a decision hell google for sites with listing of mobiles, actually many sites, hell start randomly
scanning different products that are enticing, might read reviews of course(which is good to a degree).
Think about the time he actually spends before he comes up with his practical requirements and
fixing his budget. He would have wasted lot of time.
Lets assume that the layman or the computer-savvy person referred to above thinks computationally.
Sometimes budget and requirements can have cyclic relationship from CT perspective. Ideally, theres
only a linear uni-directional relationship. Then:
As a first step, he notes down his principles of buying that include: Simplicity/Craze (No, I mean it,
although the word Principle is not usually referred to, in the context of characteristics like craze etc.),
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
7/8
Rough handling, Battery Longevity, Visual Experience, Something pleasing to eyes and at the same
time captured for memory, Audio Experience, Digital Life needs (Read documents, PDFs, Email, Surf
web, Chat, Widgets, Games etc).
You might be thinking everyone thinks about these things. True, their thinking is not systematic, rather
jumbled and one principle overlaps another in their buying process without CT. Remember, theobjective is to make an optimal decision. Remember, you might make a great buy spending a lot of
time but its not just about money. Its very much about time as well. You might get lucky and make a
great buy by spending little time and well within your budget.
1) In the next step, he translates these principles into requirements in terms of technical specifications
like:
- Rough handling (robust outer build),
- Battery Longevity (type of battery Li-Ne etc),
- 5.1/ 7.1 channel output (Great Audio experience),
- Busy Life Business (Dual SIM / Triple SIM)
- HD/HTML5/etc for rich Visual experience,
- Android/Bada (widgets/apps),
- Visual *memorable* Experience (Camera 3.2 MP Etc),
- Digital Life Needs (3G, WiFi, Bluetooth, Memory Card with 8 Gb/16Gb etc (Read docs, Watch videos
etc)). In case of laymen, they might seek counsel from sellers or some expert to translate theirprinciples into requirements.
2) In the next step, he fixes his budget and allows a buffer of some money like 1k etc.
3) He uses Flipkart.com or any other site that allows for comparison of mobiles on price, tech spec etc
(In case of laymen, hell seek sellers help at the shop).
4) He comes up with a shortlist of products to meet his requirements.
5) He checks if anyone in his radar (friends circle) has purchased a mobile thats in his shortlist.
6) He reads reviews online or watches internals of mobile on YouTube.com or visits Chromastore(store where they let you touch the items for sale and get a feel of the item that you want to buy)
etc (in case of layman).
7) If there turn out to be 2 or more matches meeting his all his requirements (including his budget of
course), he uses intuition, look and feel to decide which mobile he finally wants to buy. Hes made an
optimal decision and is happy with the time spent in his mobile buying process.
8) If therere no matches, if he can wait for few months when newer mobiles meeting his requirements
could be released to the market, he would wait; Optimal.
9) Anyone thats crazy will aim at high-price mobile although he maynt use most of the features in themobile at all, for some reasons. Its not an optimal decision from a computational thinking perspective.
-
7/30/2019 Applying Computational Thinking: A Consumer's Perspective
8/8
The one who thinks computationally, says, I dont need to use those features now, Ill buy a low-price
mobile for now and after 2 years, when I would need those features, I would buy the same mobile at
probably 2/3 the price that the crazy person has bought now. Computational Thinker users power of
web and technology to assess the trends and situation and make his decision.
Its a sequence of steps and its algorithmic.
Conclusion
From my own experience and observation, lot of us do not think computationally, and spend lot of time
in building our Decisioning Framework and also in realizing or living the life we actually want to live.
Its quite impossible or rather extremely difficult to permanently fix some of the human vulnerabilities
like being lonely and being fearful of intimacy, trying to explore something enticing, trying to explore
something that can grab the attention of your senses. When theres an information overload and
theres so much to consume digitally and through other means, computational thinking should serve
as a quintessential skill to solve problems or dilemmas arising out of such situations or in general,
accomplish any task. In these uncertain times and fluctuating economic conditions, CT is a skill that
most people should realize the importance of, for Economy Living.
In summary, Computational thinking is about using Abstraction and using Automation. Were all
increasingly feeling the want to buy time for ourselves, especially those of us leading urban lifestyles.
If we think computationally, well save time (always) and money (in some cases) as well. Its
synonymous to thinking in Computer Science where time (time)-complexity is more important than
space (money)-complexity in most cases, these days.
References:
1.Google University: Exploring Computational Thinking
2.Computational Thinking: ACM Publication Jeannette M. Wing PDF
3.Carnegie Mellon University
4.MIT Open Courseware Lecture What do Computer Scientists do?
http://www.google.com/edu/computational-thinking/what-is-ct.htmlhttp://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdfhttp://www.cs.cmu.edu/~CompThink/http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-24http://www.google.com/edu/computational-thinking/what-is-ct.htmlhttp://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdfhttp://www.cs.cmu.edu/~CompThink/http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-24