Anda di halaman 1dari 8

Applying Computational Thinking: A Consumer's Perspective

Sanjeev Kumar Kulkarni Senior Software Engineer, Ness Technologies (I) Pvt. Ltd, Bangalore Email: kulkarni.msn@gmail.com 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.

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.

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.

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, computational finance, 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 in general 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

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 <= 20% of the Original Price). This is still the B2B model. In B2C model, you usually shop online from Amazon.com or Flipkart.com; you spend about 2 minutes in making online transaction at the same price. You save money and save the time required to go and buy the book from a shop. Even if you wont buy online, youll avoid spending time at the shop looking at many items, if you do your homework online. You save time anyways. 3. Decomposition: The ability to break down a task into minute details so that we can clearly explain a process to another person or to a computer, or even to just write notes for ourselves. Decomposing a problem frequently leads to pattern recognition and generalization, and thus the ability to design an algorithm. Example: Suppose youre buying a Laptop that you want for software development or you want for high performance computing. If youre a software engineer or youre someone whos work needs awareness of, or is associated with internals of a workstation, you probably have fair amount of knowledge on what Laptop components are critical for your needs. If youre not aware of critical nature of components for your needs, you would go to an expert, or ask questions in online forums (the latter is more computational. If youre thinking computationally, you decompose your Laptop into different components that make up the laptop and you would think the one with highest clock rate, latest chipset, highest RAM, Solid State Disk would give optimum performance. You visualize the

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 feel for '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 commissionsucking 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.),

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, the objective 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 their principles 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 Chroma store(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 the mobile at all, for some reasons. Its not an optimal decision from a computational thinking perspective.

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?

Anda mungkin juga menyukai