below is a summary of the yesterday's lesson, followed by my conclusions.

yesterday we were supposed to teach about ifs and about strings. amit
pointed out that in the ifs part i rely on some strings knowledge and i
should reverse the order, so i did that.

in the class, i found that teaching about strings took longer then i
thought. the use of 'for' loops got the kids confused - they didn't find
it easy to grasp the idea that the for variable points to a different item
in each loop. i only realized this when i explained how to use such a for
loop in order to reverse a string (by which point they had to understand
two things - how the for loop works, how string concatenation can be
performed from a variable into itself (revstr = letter + revstr), and how
the reversal happens at all.

we had to draw it step by step over the blackboard for things to be clear,
and even then it wsn't clear for everyone (at least according to the
puzzled looks on their faces).

the rest of the lesson was spent on doing the exersize (they didn't get at
first what i wanted them to do. only when they realized what i did to
limit them, did they start understanding what i want them to do).
eventually some of them managed to draw some interesting things.

some lessons i learned form this:

1. every thing should be dry-runned with the kids (i already did that with
   them last week, but this week emphasied that it has to cover
   _everything_).

2. in the dry run of a loop, i should perform a dry-run for 2-3
   iterations, and then i need to pick up specific kids and ask them to
   describe the next iteration. this makes sure they indeed understand
   what is going on (and just so you'l know - they had problems even after
   this - it's not as if they pulled out the description too easily).

3. i need to teach the kids to talk in precise terms (i.e. not "the word
   is concatenated to the letter and then you get 'eh'". rather "the
   character named 'letter' is concatenated from the left to the word
   named 'revstr', and then you get 'eh' - and you call that 'revstr'
   now").

4. the empty string realy confused them. since i didn't think about it in
   advance, i was puzzled about how to explain what an empty string is.
   need to prepare a good analogy for such abstract things next time (and
   lets face it - there are no intuitive "empty strings" in real life.
   no - a blank note is not exactly the same as an "empty string").

5. the material in what i thought to be a "mini-lesson" can be sufficient
   for a whole session (the class begun at 17:11, and ended at 18:57).
   this. this was not the case last week (int variables alone are not
   sufficient for a whole session - together with the while loops they
   were sufficient).

6. lesson from last week's exercise class (which got messed up due to
   other reasons) - i should not expect the kids to write a program with
   nested while loops, before they had good practice of single while
   loops, and before i showed meaningful examples of nested wihle loops in
   class. thus, i will write a mini-lesson to cover nested while-loops -
   it won't teach new python keywords - but it will teach new programming
   concepts - nested while-loops and two-dimentional drawings.

7. another lesson from last week's exercise class - for each exercise, i
   should write an explanation how to do it (breaking it into parts,
   explaining what each part should do, and which constructs that we
   learned it should use). as we make progress, i will try to make these
   descriptions less detailed, and see if the kids manage to close the
   gaps properly.

-- 
guy

"For world domination - press 1,
 or dial 0, and please hold, for the creator." -- nob o. dy

לענות