Late to the party, but here is what I did once (as mentioned here
<https://disqus.com/home/discussion/software-carpentry/not_quite_lesson_material/#comment-2254281932>):
Explaining shell variables and loops:
Take an empty cup, this is going to be your variable (a 'container'). Write
something on a sticky note, and put the sticky note in the cup. Now your
variable has a value. Ask a student or helper to 'echo' the content of the
variable, i.e. read what is written on the sticky note. Replace the sticky note
with another one with some other data, 'echo' again.
When it comes to loops, ask a few students (e.g., the front row) to each write
their name on a sticky note. Take your (empty) cup and go to the first student,
ask her/him to place the sticky note in the cup. Go to the 'echo'
student/helper, and ask for him/her to read the content. Go to student number
2, replace the sticky note with this student's note, and redo the echo. Repeat
until all names have been read. Remark that the cup still contains the name of
the last student.
Lex
> On 04 Dec 2015, at 18:25, Greg Wilson <[email protected]> wrote:
>
> ...and when we talk about pedagogical content knowledge (PCK) in instructor
> training, this is exactly the kind of thing we mean. If someone would like
> to boil this down into a PR against the instructor's guide (instructors.md)
> of either shell-novice or python-novice-inflammation so that we can pass it
> on to future generations, that would be wonderful.
>
> Cheers,
> Greg
>
> On 2015-12-04 4:56 PM, Karin Lagesen wrote:
>> Just wanted to say thanks for the great suggestions!
>>
>> Will try to incorporate and see what happens :)
>>
>> karin
>>
>>
>> On 12/3/2015 4:23 PM, Tyson Whitehead wrote:
>>> On December 3, 2015 10:24:44 AM Karin Lagesen wrote:
>>>> The more I teach, the more I realize that I am not really able to convey
>>>> what a for loop does to everybody. Do any of you have a metaphor or
>>>> something that you use for teaching it? I explain about variables and
>>>> collections, and the body of the loop, and I show examples, but I am still
>>>> not able to get through all the time.
>>>
>>> How about starting with the unrolled version and then introducing for as a
>>> better way to write it. For example
>>>
>>> print "hi there, "bill"
>>>
>>> print "hi there, "sue"
>>>
>>> print "hi there", "bob"
>>>
>>> Ask what is similar about all these? What is the underlying "template"?
>>> Try and get them to identify something like
>>>
>>> print "hi there", name
>>>
>>> Then, in terms of this template, the above is
>>>
>>> name="bill"
>>> print "hi there", name
>>>
>>> name="sue"
>>> print "hi there", name
>>>
>>> name="bob"
>>> print "hi there", name
>>>
>>> From there perhaps it isn't such a big stretch to go to
>>>
>>> for name in ["bill","sue","bob"]:
>>> print "hi there",name
>>>
>>> especially if there is some way to step through this last one in a debug
>>> mode so they can literally see what it is doing.
>>>
>>> Cheers! -Tyson
>>>
>>
>>
>> _______________________________________________
>> Discuss mailing list
>> [email protected]
>> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
>>
>
> --
> Dr. Greg Wilson | [email protected]
> Software Carpentry | http://software-carpentry.org
>
>
> _______________________________________________
> Discuss mailing list
> [email protected]
> http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
_______________________________________________
Discuss mailing list
[email protected]
http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org