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