<div class="gmail_quote">On Mon, Sep 27, 2010 at 5:48 PM, Marco Gallotta <span dir="ltr"><<a href="mailto:marco@gallotta.co.za">marco@gallotta.co.za</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
We received a grant from Google to reach 1,000 kids in South Africa<br>
with our course in 2011. People have also shown interest in running<br>
the course in Croatia, Poland and Egypt. We're also eyeing developing<br>
African countries in the long-term.</blockquote><div><br></div><div>This is really great news! Sounds like you guys have been doing an amazing job.</div><div><br></div><div>As for your course notes and exercises, targeting 3.x sounds like the more productive choice:</div>
<div><ul><li>As you point, many of the changes in 3.x make it directly more sensible and suitable for teaching purposes. The avoidance of 2.x's str/unicode confusion should be one of the biggest points for first-time programmers, but all the other special cases and legacy cruft that's been removed from 3.x will help reduce distractions to learning.</li>
<li>As Niel Muller points out, library compatibility with 3.x is relatively good, and will only grow with time, while 2.x will become increasingly unsupported. The fact that you'll probably have to stick for the next few years with the material you produce now should seal the deal in favor of targeting 3.x.</li>
<li>The students whose learning advances far enough that they want to play around with more involved Python libraries are also the ones for whom learning 2.x/3.x differences shouldn't pose any difficulty anymore: if they <i>really</i> hit a sticking point that requires the use of 2.x (for now), they can just use it, without having to saddle all beginning learners with it.</li>
</ul><div>I doubt that students will be confused much more by seeing 2.x code all over the web, though; it's not really any different to 2.x users seeing code that uses old-style classes, string exceptions, and so on. There's not much that can be done about this: at some point, interested learners will have to encounter old idioms and legacy code, regardless of the choice of 2.x or 3.x now.</div>
</div></div>