[TIP] Talking to a test-is-from-outer-space crowd
Mark Sienkiewicz
sienkiew at stsci.edu
Tue Apr 12 11:40:17 PDT 2011
Gary Bernhardt wrote:
> On Apr 12, 2011, at 7:34 AM, Mark Sienkiewicz <sienkiew at stsci.edu> wrote:
>
>> I mostly agree, but not with this part. You can't teach people by throwing all the complexity at them at once.
>>
>
> Important qualifier: "when they're learning on their own". In a pairing situation, I find that this concern doesn't matter much. (And they'll learn far faster. And they'll see the immediate utility in the thing rather than having to appreciate it as an abstraction.)
I think the concern is still there, but with pairing you can include
more complexity than you might otherwise. The second person of the pair
is acting as a guide, so the student doesn't have to understand
everything. If the teacher is careful about which parts to explain and
which parts to gloss over, the student can pick up an understanding of
the system without needing to understand every detail.
In the unittest example, a teacher might provide the basic structure of
a test. Explain to the student "unittest instantiates one of these
objects and then calls one of the test methods; you write the test
method". If the student gets confused, the teacher can provide
direction, so that the student doesn't get lost for hours. When you see
that they have a basic understanding, you can fill in more of the details.
If the knowledge you need to convey is not too far beyond what the
student could gather on their own, then pairing works well. You want to
choose the complexity to maximize the learning. Too little, and they
could have gotten more out of that session; too much, and they don't
grasp it all.
I expect that you think "this concern doesn't matter much" because you
made good choices in this area. You wouldn't think of teaching a
student "This is a variable" and then jump into "now we are going to use
MPI to implement map/reduce parallel processing, using sqlalchemy to
join tables in our database to get the input and output 3D models for
Blender". It's too big a step.
Mark
p.s. Of course, you don't necessarily formally declare "student" and
"teacher" when pairing, but it accurately describes what happens sometimes.
More information about the testing-in-python
mailing list