Today was my 4th session in a sequence of nine.
I think the way it's developing for me is I hand out worksheets, which
pose questions around Python, and students have the option to just fill
them in, knowing Python "in their heads" well enough to not consult the
actual interpreter. Others run the questions through
Python. Others do a little of both. Worked pretty well
today. The kids seemed very engaged. I walked around
helping and explaining. We were in learning mode, not "prove to
me you already know it" mode.
We started out with an xmlrpclib demo. My setup was lame:
Ethernet from my laptop to a neighboring PC, with an air gap to the
actual PPS intranet. So of course it didn't work. Even
after fixing the link, I was having problems. But some of the
kids got their examples to work. In a way that was good:
teacher in a group with floundering students, other students having it
work. Very democratic.
At the very end of the class, I retold the story about the young Gauss,
this time suggesting he did the whole thing in his head. Like,
the teacher said add 1 to 100 and he said hmmmm, that's range(1,101)
and range(100, 0, -1) on top of each other, and a sum of 101, 101,
101... 100 times = 100(101). But that's twice the sum you need,
so voila, 5050, in like 8 seconds. Stunned teacher.
I explained why such consecutive sums-from-1 are considered
"triangular" and threw out this challenge: class is about to end,
but if anyone thinks they can do this:
def tri(n):
# something goes here
return answer
then let me know now. Type type type. A hand goes up.
I quickly memorize the student's solution and transfer it to the screen
up front (laptop -> projector -> screen):
def tri(n):
num = n * (n + 1)
num = num / 2
return num
(actually the student said 'print num' and I said that'd be OK too).
And yes, tri(100) returns 5050, so big win. The kids felt one of
their own had risen to the challenge, not in a competitive way, but as
their representative. A peer had passed a tough test on their
behalf.
Note: using "__past__ style" division is OK in this context, as
n, n+1 must form an even/odd pair, meaning their product is even,
meaning 2 divides with no remainder (i.e. integer division OK).
Kirby