Speaker 1: In this presentation I'll be talking about the three A's of computational thinking. [Slide 1] Computational thinking is term point by Janet Wing in 2006 to describe a set of thinking skills, habits and approaches that are integral to solving problems using a computer. Thinking computationally draws on concepts that are fundamental to computer science and involves systematically and efficiently processing information and tasks. [Slide 2] There are three main pillars of computational thinking, abstraction, automation and analysis. [Slide 3] Abstraction is the capturing of essential characteristics while discarding nonessential characteristics. [Slide 4] Here's one example, the graphic shows a characterization of a person in which essential characteristics are kept and high level of detail is considered nonessential and therefore left out. [Slide 5] In this piece of art by Onrey Martis, we see a figure of a human female with just enough detail to enable us to see that this is a woman. As an abstraction of a woman, it can represent all women. [Slide 6] Here's another abstraction of space and to some extent of time. We see the stray linkages between station and station on the subway map and time is represented in distance between stations. In this abstraction, only the essential characteristics were kept. [Slide 7] Abstraction is also the process of generalizing from specific instances. [Slide 8] In this example, we see a friendship network and we realize that any relationship with links and nodes can be used to represent relationships as networks. Networks are a generic abstraction that can be used to represent many types of relationships between entities. [Slide 9] Abstractions can also be representations of processes. Here's an example about how to make chocolate chip cookies. Looking a little more closely, you can see that the top part has to do with making dough. The next portion has to do with forming the cookies themselves. Finally, baking the cookies. This process can be abstracted [Slide 10] into a three step sequence, make dough, form cookies and bake cookies and realize that depending on what ingredients go into the dough, you can come up with different types of cookies. These three instructions are an abstraction of how to make any kind of cookie. [Slide 11] Onto automation. Automation is the use of a computer as a labor saving device. Computers save labor by being able to execute repetitive tasks for us, quickly and efficiently. [Slide 12] Here's a very low level example of automation and it's a repeat loop. The power of repeat loops is in the automating repeated tasks or groups of commands. This helps significantly cut down on the amount of work it takes to automate tasks. Three A's of Computational Thinking Page 1 of 2 If you've ever done any programming or scripting before, you know that loops are absolutely critical to accomplishing nearly any significant feat. If you're new to programming, you might be wondering, "Why do I need to repeat something? Why isn't doing something once enough?" The answer is that we frequently work with massive amount of data. If you have 500 images to rename, you don't want to have to click on each one and rename them by hand but you would rather automate the process. Using a repeat loop to do this will save time and energy. [Slide 13] Here's another example, in NetLogo we use models. These models have variables, for example, this is the termites model and it has a variable, the number of termites and the density of wood chips. Now I might want to run experiments and see what happens, what the outcome is if I keep the density at 20% and change the number of termites between zero and 3,000. I can do this by hand by moving the number slider, increasing the number slider by one each run or I could use something called behavior space that will run the simulations for me at each setting of the number variable. This type of automation is called parameter sweeping and it is very valuable. [Slide 14] Moving on. Analysis. [Slide 15] There are two categories of analysis. The first one is called verification. You might ask, "Are you building the model right? Is your code error-free? Is the model built to specifications?" The other category is validation. "Are you building the right model? Does your model reflect reality?" These are important questions to ask. [Slide 16] To review, the three pillars of computational thinking are abstraction or stripping down a problem to its bare essentials and/or capturing common characteristics or actions into one set that can be used to represent all other instances. Automation or the use of a computer as a labor saving device that executes repetitive tasks quickly and efficiently. Analysis, validating if the abstractions made were correct and verifying that the code was implemented correctly. Three A's of Computational Thinking Page 2 of 2