At 08:41 AM 3/8/2009 -0700, kirby urner wrote:

>What I'm seeing at your site so far is a very low level workout in
>Python basics -- not a criticism in any way, just suggesting you could
>apply the same technique to more challenging problems.
>
>Here's one I like:
>
>Write a Python generator so you get successive rows of Pascals
>triangle, like this:
>
>o = Pascal()  # o for object
>>>> next(o)
>[1]
>>>> next(o)
>[1, 1]
>>>> next(o)
>[1,2,1]
>>>> next(o)
>[1,3,3,1]
>....
>and so on (Pascal's triangle).  Note I'm using Python 3.x syntax.
>
>One of the best solutions is:
>
>def pascal():
>        row = [1]
>        while True:
>                yield row
>                row = [i + j for (i,j) in zip([0]+row, row+[0])]

Nice!  If you don't mind, I'll use this in our category "math" at level-3.  It 
is more challenging than the level-1 we are focused on now, but the more 
advanced problems will come soon.

The idea is to organize the problems in layers.  Layer-1 is problems that don't 
depend on students knowing anything that isn't in a short help page on a 
specific topic, like strings.  Layer-2 can depend on knowing all the basic 
techniques in layer-1.  Thus, we can now ask string questions that are best 
solved with a loop.  Layer-3 would include the more challenging problems, like 
the one you are suggesting.

-- Dave 


_______________________________________________
Edu-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to