Send Close Add comments: (status displays here)
Got it!  This site "creationpie.com" uses cookies. You consent to this by clicking on "Got it!" or by continuing to use this website.  Note: This appears on each machine/browser from which this site is accessed.
Abstraction
by RS  admin@creationpie.com : 1024 x 640


1. Abstraction
Abstraction 1
To abstract is to take away from the essentials and thereby to ignore certain differences.
The similarity is what is the same. The difference is what is different.

Human brains are built for complex abstraction.

The Latin word "abstractus""take away from". In abstract art, something is taken away, something remains, one needs to then interpret what is meant or intended.

2. Higher level intelligence
Abstraction is the key to higher level intelligence. That is why so many questions are of the form, "What is the primary similarity and difference between ...".

Much of computer science programming languages involve looking at patterns between text and making abstractions.

3. Triangles: Seeing and thinking
Kanizsa TriangleHow many triangles do you see? There are no triangles! Your brain makes the triangles using abstraction (built into the brain).

Programming a computer involves a lot of abstraction of code text without thinking like a computer.

Information sign More: Kanizsa triangle: seeing what is not there

4. Abstraction
In simple terms, abstraction is looking at similarities and ignoring differences.
Abstraction arises from a recognition of similarities between certain objects, situations, or processes in the real world, and the decision to concentrate on these similarities, and to ignore for the time being the differences. Tony Hoare (British computer scientist)

Dahl, O., Dijkstra, E., & Hoare, C. (1972). Structured programming. New York: Academic Press., p. 83.

Information sign More: Tony Hoare

5. Programming abstractions
In programming terms, to abstract is to replace one or more parts of a program with a name that refers to the replaced parts (thus hiding the details). Here are some programming constructs that are used for abstraction.

6. Abstraction with algebra
Algebra can be used to abstract from a potentially infinite number of possibilities to a finite representation of those possibilities. Consider the following pattern.

f(0) = 2*0+1 = 1 f(4) = 2*4+1 = 9 f(8) = 2*8+1 = 17
f(1) = 2*1+1 = 3 f(5) = 2*5+1 = 11 f(9) = 2*9+1 = 19
f(2) = 2*2+1 = 5 f(6) = 2*6+1 = 13 f(10) = 2*10+1 = 21
f(3) = 2*3+1 = 7 f(7) = 2*7+1 = 15 ...

Many students have trouble abstracting the above to the following function.
f(x) = 2*x+1


7. Snoopy and Woodstock

Text: from Peanuts cartoon of March 23, 1990, by Charles Schultz. Snoopy is talking to Woodstock, who says nothing.
  • SNOOPY: And sometimes when a rabbit is frightened, it will sit very still like this so no one will see it...
  • SNOOPY: Of course you can still see me! I was just giving an example!!
  • SNOOPY: You can't explain anything to a bird!


Many people have trouble with abstraction - looking at similarities and ignoring differences. If they think not, try having them write a small computer program that requires abstraction. Many professional programmers have problems making appropriate abstractions.

8. End of page

by RS  admin@creationpie.com : 1024 x 640