In an effort to continue to hone my teaching abilities, I am taking an opportunity to give a couple presentations at work to a mixed technical and non-technical audience on business automation. I've chosen Python as my language of choice, mostly for its friendly syntax, the rich standard library and wealth of 3rd party libraries, and my own familiarity with the language.
My approach is going to be to give an overview of the language by way of an example "application" that does some repeatable tasks that they may want to accomplish (file copies, Word/Excel automation, etc.) covering some basic programming constructs (loops, functions) and basic language constructs (strings, lists, dictionaries) It's a lot to cram in, but it will be followed up with a "lab" where people can try out some of the techniques they've learned.
What I would like to get are some additional tips:
- Should I teach with Python 3.x or Python 2.x? 2.x still has better library support overall, but for the basic automation/scripting that I'm teaching I don't think this will be an issue (e.g. PyWin32 for COM hooks to office on Windows, which has a 3.x distribution)
- Should I use the built-in REPL or use something like IPython, which adds some shell-like features that may be useful?
- What free online books or teaching materials would you recommend for a non-technical audience? I love Dive into Python as a teaching resource, but I haven't read it recently enough to say if it's geared enough towards a new programmer.
I'm making this a community wiki because I don't think there's any right or wrong answer, and hope that any information provided here can be of use to others trying to accomplish something similar at their own company.