swcarpentry / instructor-retreat-2015

http://swcarpentry.github.io/instructor-retreat-2015/
2 stars 7 forks source link

Making friends with Python 3 #28

Closed bkatiemills closed 8 years ago

bkatiemills commented 9 years ago

@andreww suggested a possible session on migrating to Python 3, and I think this is a great idea; it's not actually that hard in most cases, but it feels like a big activation barrier. Two questions:

As for content, I don't think we need to cover every single last detail; just stuff likely to impact the basics, like syntactical changes (print -> print()), and basic structural changes like relative imports. Might be neat to see a 2to3 demo too. Any gotchas around notebooks as we move to 3? Or any other ideas.

ChristinaLK commented 9 years ago

+1000 This would be great. I think your suggestions so far are good (common syntax changes, etc.).

jdcorless commented 9 years ago

What I would really enjoy seeing is how to make Python2 code compatible with Python3, using for instance, from __future__ import print and the like. This seems to me to be a small step towards Python3 but might help bridge the gap.

andreww commented 9 years ago

I was being somewhat selfish with this idea. I'm happy to teach python2 and do quite a lot of my own work using it, but have failed to find any time either moving to python3 or even thinking about what I need to know before the first workshop where we will be using python3. It's that apparent activation energy thing...

However, I suspect I'm not the only person in this boat and so it is probably worth using some time at the retreat to overcome that barrier. In terms of high level goals, I would like to come away with answers to the following:

I could probably work out the answers to most of these things fairly easily with some reading and experimentation - but that brings us back to getting over the energy barrier. Let's find a way to tunnel through that.

Anyway, I wonder if the most effective approach isn't to have somebody run this as a broadcast session (or isn't only to have this as a broadcast session) but to have a group of us collaboratively write and/or test a short self-study guide for instructors. I expect we have people in my boat who won't make the retreat (and maybe who are not yet instructors).

bkatiemills commented 9 years ago

@andreww I would definitely be game to help pull together a study guide for this! Here's a skeleton containing our points so far - pull requests and further ideas very welcome! I'm hoping someone steps up to lead this session at the Retreat, since I may or may not be on a plane then, but I am definitely happy to help pull together the text for a lesson targeted at instructors.

Your list of ideas is awesome, we can definitely pull that together. The only one I don't have an intuition for off the top of my head is difference in misconceptions that arise for learners. Having a mixed 2/3 class is a guaranteed gong show, but do any of the other instructors have any new pitfalls to watch out for in 3?

waveform80 commented 9 years ago

If anyone wants a hand with this, let me know - I've written several libraries that operate happily in Python 2.7+ and 3.2+ from a single codebase (mostly educational Pi stuff, e.g. picamera, picraft, but some science-related projects too, e.g. umansysprop and compoundfiles) and I'm happy to discuss the methods I use.

My method is to try and write my code in an idiomatic Python 3 style, with a compatibility header where required to make Python 2 as much like Python 3 as possible (under the assumption that one day, in the dim and distant future, when Python 2 is finally removed I can theoretically just remove that header and I'll be left with nice clean Python 3 code).

I'll be at the Manchester retreat, but I can only make the morning (got a friend's wedding in the afternoon!).

bkatiemills commented 9 years ago

Thanks, @waveform80 - would love to see some minimal examples of those headers, that would be a great thing to add on. Any interest in leading this presentation that morning?

waveform80 commented 9 years ago

Sure I can do that (I actually wrote on talk on this subject a couple of years ago for the local Python North-West group, but it'll probably need updating a bit!)

bkatiemills commented 9 years ago

@waveform80, that's awesome! @ttimbers is in charge of broadcast session booking, she can help you get a session booked at a time that works for you. Thanks for doing this!

andreww commented 9 years ago

Thinking about how we will make this work. I think a broadcast session by @waveform80 would be very useful, and it would be good if this could be recorded in some form and eventually embedded in the study guide. I also think we should spend some time fleshing out the study guide at the retreat. A final possibility would be to have some "python 2" people work through our updated python (3) lesson. That should smoke out opportunities for confusion, which could be added to the "Common Gotchas" section or posted as issues / patches to the lesson.

I'll also be in Manchester, which will probably be useful. In terms of preparation if @waveform80 is happy to prepare and deliver a broadcast session in the morning, I'm happy to help coordinate the generation of the guide and gather feedback from anybody doing a lesson walkthrough. It may be good for somebody in the US to pick things up later in the afternoon (UK time) and maybe gather feedback on whatever we manage to produce.

ttimbers commented 9 years ago

Since the UK sites are starting at 10:00 AM GMT, and Greg Wilson is giving a contributorship session at 11:00 AM GMT, @waveform80 I would like to schedule you for 1:00 PM GMT - will that work?

waveform80 commented 9 years ago

Hmm ... tricky - I've got about an hour's drive to get to the wedding at 3:00 PM which is cutting it rather fine if I'm presenting until 2. Any chance I could grab a slot immediately after Greg's at 12? Or possibly even one at 10 if it's free?

ttimbers commented 9 years ago

Of course @waveform80 ! 10am it is!

bkatiemills commented 9 years ago

@andreww these are excellent ideas all! Do please be in touch with @apawlik, who is organizing the Manchester site; I'll be asking the site hosts to start pulling together some loose plans for the day shortly, and your ideas should definitely be part of that conversation.

andreww commented 9 years ago

I don't see @waveform80 on the broadcast sessions list at http://swcarpentry.github.io/instructor-retreat-2015/ - is this still happening?

Assuming this is a likely to happen, I'll pull together a minimum amount of getting started documentation that would need to be added to @BillMills skeleton, so people can test and contribute on the day.

bkatiemills commented 9 years ago

@waveform80 @ttimbers - any progress on arranging a time? Let me know if I can help!

ttimbers commented 9 years ago

@BillMills @waveform80 it's scheduled for 10:00 am UTC on the planning etherpad, apologies I forgot to include it on the PR for the website schedule. Will do tomorrow.

andreww commented 9 years ago

Final thought on this (before next weekend). Is it worth pulling the skeleton out into it's own repository before trying to populate it after the broadcast session? If so, should I create the repository, or does it belong in the SWC organisation?

bkatiemills commented 9 years ago

I would start your own repo, for convenience at this point. If SWC wants to maintain their own copy, the appropriate lesson maintainers can fork it. Looking forward to this!

andreww commented 9 years ago

Ok - for reference the repo is at: https://github.com/andreww/python3_friends

ttimbers commented 9 years ago

@waveform80 we still need your Google Hangout on Air link for the broadcast on Saturday. Instructions on how to create it are here. Please let @BillMills or I know if you need help setting it up and/or if you'd like to try out a test session (they are slightly different than the regular Google Hangouts).

gvwilson commented 8 years ago

We have moved to Python 3.