[python-advocacy] brainstorming new ways to teach Python 101

Greg Malcolm greg at gregmalcolm.com
Sat Aug 7 05:37:20 CEST 2010


Hi guys!

Some info about Python Koans:

Python Koans sessions are very easy to run. They come in the form of a suite
of of unit tests that confirm the functionality of Python itself. It starts
with the extreme basics: Asserts, None, strings, lists, eventually leading
to more complex subjects such as Generators and Decorators. The tests are
all initially in a state of not working, or need values filled out, so the
process of fixing them teaches the student how Python behaves.

The code for it is all available on both bitbucket and  github:

  http://bitbucket.org/gregmalcolm/python_koans
  http://github.com/gregmalcolm/python_koans

I've run this as a session a couple of times now, once at my local user
group, and once at PyOhio. Both times it seems to go down pretty well,
particularly among beginners. My approach is to give a very short talk/demo
at the beginning explaining the concept of TDD, how it relates to the Koans,
followed by a quick demo of solving the first couple of problems. From there
on in most of the work is wondering around the room making sure everyone got
set up ok and helping anyone who is stuck or has questions. I've brought an
assistant with me on both occasions.

As long as the assistant has at least spent a couple of  hours working
through the koans and knows their way around Python they should be good to
go. Having more than one assistant for a large audience is not a terrible
idea.

It also helps to have the koans available on cd and flash disk if the
wireless access cannot be relied on.

On Fri, Aug 6, 2010 at 12:10 PM, Catherine Devlin <
catherine.devlin at gmail.com> wrote:

> Sounds intriguing - if you do it, please report back on how it goes.
>
> Another possible approach: at PyOhio this year, Greg Malcolm led a session
> based on the Python Koans.  Greg, do you have any comments about how that
> went?  Since the Koans are already prepared and the students work through
> them on their own, you might be able to get somebody to lead it without too
> much advance work.  The big thing (it seems to me) would be making sure
> students are getting help to get them over humps, which your circulating
> instructors could do as with your ticket system.
>
> On Thu, Aug 5, 2010 at 11:33 PM, Brad Allen <bradallen137 at gmail.com>wrote:
>
>> A couple of days ago we learned that our PyTexas 2010 volunteer teach
>> Python 101 had to drop out. Since the event is on Aug 28, we don't
>> have much time to find an instructor, or for that instructor to
>> prepare. We know students and other beginners are coming, so how can
>> we avert disaster?
>>
>> Maybe it's time to come up with a different approach. Having an
>> instructor speak in front of a class has never sensationally
>> effective, anyway. Students often have trouble paying attention and
>> retaining lecture material, even when starting class with the best of
>> intentions. So why not risk trying something different?
>>
>> I'd like to call for some new ideas, and to offer one for
>> consideration. Here goes:
>>
>> Instead of burdening one volunteer to be the single teacher, let's
>> schedule one or two hours at the beginning of the day for *all
>> attendees* to be involved in the Python introduction for beginners.
>> The entire lot of experienced PyTexas attendees could act as tutors
>> simultaneously in an ad-hoc arrangement. Sound crazy, a recipe for
>> chaos? Maybe...but if we could figure out the right structure to make
>> it effective, everyone would be challenged and have fun.
>>
>> According to our survey, over half of the respondents are experienced
>> Python developers, most of whom I think are capable of teaching, if
>> asked to explain a particular topic or faced with a chance to answer
>> specific student questions.  Those who can't be bothered to volunteer
>> can just show up late, but I would expect most of the attendees to
>> step up to the challenge.
>>
>> One idea for making this work would be to develop a strategy for
>> pairing up the students with the teachers who can explain what the
>> student needs to know. Here's how it might go:
>>
>> 0. We define a loose curricula in advance, listing all the core
>> fundamentals a student needs to understand. We can reference the
>> wealth of existing tutorials to build this curriculum.
>> 1. This curriculum could be divided up into variously colored paper
>> tickets, each representing important learning milestones (red tickets
>> for installation basics, green tickets for how to run scripts, white
>> tickets for language fundamentals, blue tickets for collections,
>> etc.).
>> 2. At the beginning of class, each student would pick up a ticket of
>> each color for the part they needed to learn.
>> 3. During class, students raise their hands waving a colored ticket in
>> the air to attract a tutor to come by and help them learn that
>> specific curriculum item.
>> 4. When a student is satisfied they understand that item well enough,
>> the ticket is given to the tutor to keep, like a trophy.
>> 5. At the end of class, success is gauged by how many tickets the
>> students still have. If any are left over, maybe time later in the day
>> can be found to resolve the remaining tickets.
>>
>> This plan assumes that all the students bring a laptop, but I am not
>> sure that is going to be possible. We might have to ask tutors to use
>> their own laptops for teaching students who don't have one.
>> _______________________________________________
>> Advocacy mailing list
>> Advocacy at python.org
>> http://mail.python.org/mailman/listinfo/advocacy
>>
>
>
>
> --
> - Catherine
> http://catherinedevlin.blogspot.com/
> *** PyOhio 2010 * July 31 - Aug 1 * Columbus, OH * pyohio.org ***
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/advocacy/attachments/20100807/cb4cda82/attachment.html>


More information about the Advocacy mailing list