Friday, March 30, 2018

Teaching abstraction to high school students

I have often found Abstraction a difficult concept to explain in high school computing classes. I now think that I found a few good examples to illustrate this concept and this post is about one of them.
First, let's define the word:
Abstraction ... is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics. (Abstraction on Whatis.com)
In other words, we hide some detail so we can concentrate on the essential features of the problem at hand. Below, I will attempt to illustrate with an example which is implemented in Snap!, a block-based language created at the University of California, Berkeley.

The problem

Say, for instance, we wanted to draw this brick wall:
Brickwall activity from Beauty and Joy of Computing, UC Berkeley