[Edu-sig] Scaffolding

kirby urner kirby.urner at gmail.com
Sun Jul 8 06:34:22 CEST 2007


So I've learned a new term from ya'll:  scaffolding.  Of course I knew it
from the namespace of construction, but here it means a framework
or prewritten code or auxiliary aids such as diagrams.  Anyone want to
elaborate?

I see links between "scaffolding" and the concept of "immersion", already
well established in the language learning community -- human languages
that is.

The ideal is to immerse oneself in a culture or community that uses
the language expertly, natively, in its full-blown form, while at the
same time struggling with exercises, tutorials, working to get up to
speed.

This is how we learn our first language, usually.  Sure, we have picture
books and a huge amount of literature, gradated in terms of difficulty,
but the importance of all that background scaffolding i.e. mature
adults speaking and writing the language to each other, kids
listening in, reading, shouldn't be underestimated.  When that
background is missing, one often sees the debilitating effects.

In today's world, television is an important part of immersion and
language learning.  What would Python look like on TV?  That's more
my focus than traditional book publishing, though I in no way dismiss
or denigrate the importance of the latter.  I just think that domain
is already being rather competently handled by others (I'm even
more convinced of that since reading recent posts to this list),
whereas we have zero "Python cartoons" on TV (showmedo and
such screencasting archives are a first step -- I have some pilots
in the queue there as well).

Regarding mathematics, I think we should recognize that we teach
it with a lot of scaffolding as well.  True, constructivism (and
constructionism) advocate lots of exploration and self-motivated
play (becoming self motivated is almost a prerequisite for eventually
getting expert at something, no?), but there's really no way a single
person, nor even a single generation, is going to reinvent all
those wheels from scratch.

Take vectors for example.  They actually derive in some degree
from complex numbers, which come from polynomials (getting
generalized solutions).  People were having trouble wrapping
their minds around these critters until the Argand Diagram came
along (another guy had it even earlier) and showed a + bi as
(a,b) on a plane of two axes:  real (x) and imaginary (y).  That
set the stage for integrating with trig's unit circle, Euler's
identities, plus showed how two complex numbers multiply in
the complex plane (enter fractals, Mandelbrot set, at a later
date).

Hamilton wanted something similar in 3 dimensions and Quaternions
were born.  But they were difficult, especially pre-computer, and
that's where Gibbs and Heaviside enter the picture, using some
of these same concepts to create a rather simpler vector arithmetic,
wherein addition and subtraction are defined, along with scalar
multiplication, plus these two other operations, dot product and
cross product.  This marks the beginning of today's linear algebra,
with its matrix transformations, eigenvectors etc. (still with links
to polynomials though e.g. per the Cayley-Hamilton theorem).

That's a *lot* of scaffolding, and it took many many decades
to get us to where we are today (not a static picture -- lots of
momentum towards Clifford algebra ala Hestenes, exploring
other forks in the road ala Grassmann et al -- names mentioned
in passing on one of my Europython slides (slide #22)).

So let's remember, when we teach Python, that we're always
relying on lots and lots of scaffolding, even in the case of
"blank canvas" programming (it took a lot of evolution and
engineering to give as that deceptively blank screen in the
first place (I say "deceptively blank" because Python on
bootup is already a richly populated environment, as
dir(__buitlins__) reveals)).

We're born into the midst of things, a world already highly
sophisticated and technological.  There's no going back to
primitive origins except mythologically.  In practice, the
status quo is immersion, and there's really nothing we can
do about that.  So why resist?  That being said, I agree that
blank canvas or blank screen programming has its place.
But maybe not without access to documentation.  It's not
about memorizing everything and moving to some deserted
island, asked to code in Python.  There's no need to presume
such a deserted island model.  It's a very busy planet that we
need to emulate and synch with.

OK, OK, so maybe I'm putting my own spin on "scaffolding"
a little, incorporating it into my namespace in a slightly
different way.  Consider me a visitor to CS from the neighboring
philosophy department, where we twist things a bit, but
not so much we're indecipherable (at least some of the time).


Kirby

References:

Good history of the evolution of these linear algebra
concepts, with lots of links to recent thinking:
http://calclab.math.tamu.edu/~fulling/m629/f03/linalg.pdf

Linear algebra still very tied to Polynomials of the
Italian Renaissance:
http://en.wikipedia.org/wiki/Cayley-Hamilton_theorem

Typical use of "scaffolding" in the CS namespace:
M. Z. Numan, S. Ali, and J. Giniewicz, "Effective Scaffolding for
Problem Solving and Higher Order Cognitive Skills", presented at the
Annual Conference for the Advancement of College Teaching and
Learning, Harrisburg, Pennsylvania (2002).


More information about the Edu-sig mailing list