For example, consider the Distance Formula from analytic geometry.
Is the ability to use the above formula in a Scratch program that computes the distance between an ant and the mouse-pointer a test of the programmer's comprehension of the formula? That is, the Scratch program is a paraphrase of the distance formula. I've answered that question in the affirmative because I know how to express the formula in code that Scratch understands.
Watch this short video that will hopefully convince you that the project is truly a paraphrase of the distance formula. As the mouse-pointer is moved, the distance between it and the ant is continuously updated.
The Ant Chases the Mouse-pointer project can be viewed and downloaded at
http://scratch.mit.edu/projects/16266075/
Here is a second example. This Scratch project is an effort to dynamically 'explain' the angle concept. The project is dynamic because it actually constructs the requested angle.
This project can also be viewed and downloaded at the following link.
http://scratch.mit.edu/projects/16793255/
Now a third and final example. This project is also dynamic in that it constructs the perpendicular to a point chosen at random on a line segment. Watch this short video.
Click on this link to view or download the Perpendicular project.
http://scratch.mit.edu/projects/20186064/
What do you think? Is programming (coding) a higher-level cognitive process than just memorizing a definition? As you can probably guess, I answered that question for myself a long time ago and I want learners, of all ages, to share the joy I experience when I successfully code a program.