applying computational thinking: a consumer's perspective

Upload: sanjeev-kulkarni

Post on 04-Apr-2018

216 views

Category:

Documents


0 download

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