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

Greg Malcolm greg at gregmalcolm.com
Sun Aug 8 04:47:42 CEST 2010


I have to admit that when I ran Python Koans at PyOhio I did have to spend a
few minutes apiece helping a couple of complete beginners getting started.
It was mostly environmental issues, such as getting Python installed,
pathed, and running the test suite through the command line. Although I'm
not really sure what you can do to get around that kind of thing.

I guess my conclusion is whatever you run as the first Python 101 tutorial
of the day, make sure you have lots of helpers at hand!

That aside Python Koans has worked fairly well for beginners so far. It does
have a bit of a stumbling block in one of the 'about_none' exercises where I
have explain it on the projector, but the first few tests the user has to
fix are as simple as stuff like changing Assert(False) to Assert(True).

Regarding session size, I really doubt anyone will get even close to
finishing them. Theres a lot of content! So far with Python Koans I have
only ran the sessions in 2 hours timeslots but that actually seems to work
really well. Many students will continue working on them at home. I kinda
did the same thing with the Ruby equivalent that the Python version is based
on.

On Sat, Aug 7, 2010 at 12:06 PM, Brad Allen <bradallen137 at gmail.com> wrote:

> Wow, thanks, Greg and Katherine. The Python Koans will make an
> excellent addition to our beginner track. Given the lightness of the
> preparation required, hopefully we won't have any difficulty getting
> volunteers to run it.
>
> I'm uncertain whether Python Koans could be the first class of the day
> for students having zero Python experience. Maybe we still need a
> Python 101 to provide a basic orientation. What do you think?  Also,
> how much time do you recommend we allot to allow students pass all the
> koans?
>
> On Fri, Aug 6, 2010 at 10:37 PM, Greg Malcolm <greg at gregmalcolm.com>
> wrote:
> > 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/20100808/49dd8fa3/attachment.html>


More information about the Advocacy mailing list