transcript - New Mexico Computer Science for All

advertisement
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
Download