library-python icon indicating copy to clipboard operation
library-python copied to clipboard

Reworking Python Lesson for the 2017 Mozilla Global Sprint

Open drjwbaker opened this issue 8 years ago • 23 comments

Coordinated by @richyvk

Further to the general Library Carpentry issue 'Mozilla Global Sprint 2017, 1-2 June 2017' https://github.com/LibraryCarpentry/librarycarpentry.github.io/issues/23

On 11 April @c-martinez @mkuzak @jezcope @ostephens @weaverbel & @drjwbaker met to discuss reworking the Python lesson during the 2017 Mozilla Global Sprint in light of recent teaching experience (eg at the Sheffield workshop).

Broadly speaking we agreed that:

  • The lesson should be an introduction to using Python in a library context.
  • The core learning outcome of the lesson is for librarians to leave a Library Carpentry Python workshop feeling that programming is achievable for them and relevant to their work.
  • The lesson must be based around a compelling example (or examples) where a library specific problems is solved with Python
  • In order to demonstrate that we are trying to ensure the lesson is relevant to as many librarians are possible, the example(s) should use bibliographic data.
  • The lesson must explain features of Python through examples of using Python to solve library specific problems, rather than explain Python features then give an example of their possible use to librarians.
  • The lesson should focus on a small number of small and powerful Python features (loops, functions, variables, lists, dictionaries).
  • Lesson development should keep in mind what could be taught in an advanced lesson even if we do not develop one, so that we can ensure we stick to the basics.
  • Lesson development will evaluate using Spyder as the learning environment for the lesson (in place of the shell).

We need someone ~~to agree to take a lead on this work during the Sprint~~ (taken by @richyvk), to recruit a team, and to develop a workplan. If you are willing and able to do this, please indicate so below.

drjwbaker avatar Apr 11 '17 11:04 drjwbaker

Just run these past my other half, a non-techie librarian who was participating in the Sheffield LC workshops, and these points all ring true for her as a learner too.

jezcope avatar Apr 11 '17 20:04 jezcope

Here is some other feedback from the session, to make sure it's captured here:

  • Setup instructions: recommend installing full Anaconda Python; some participants only had miniconda, which meant that many more packages had to be installed manually before being able to follow along with the lesson
  • Perhaps worth spending a full day on Python (and a full day on OpenRefine?)
  • Exercises should be carefully designed to build confidence, with extensions to give quicker learners something to keep them occupied

jezcope avatar Apr 11 '17 20:04 jezcope

Weeping into my cup of tea that @drjwbaker didn't say I was there too - I know I was late, sorry.

weaverbel avatar Apr 12 '17 03:04 weaverbel

@weaverbel Genuine slip. Fixed now. Sorry!

drjwbaker avatar Apr 12 '17 08:04 drjwbaker

Thinking ahead, I think we need to plan an LC Python workshop for post sprint, advertised explicitly as a) this is new b) we need you to help us make it better.

drjwbaker avatar Apr 12 '17 08:04 drjwbaker

Agree. I would be keen to give it a go in Brisbane - with @richvyk's help and maybe @brendam's - I really want to get better at Python and teaching seems to be my best learning method !

weaverbel avatar Apr 13 '17 01:04 weaverbel

This all sounds good. I'm happy to have a crack at leading the dev team for the Sprint, and would be well up for testing the workshop in Brisbane with Belinda, and Brenda if she's keen.

Agree that a day is probably warranted for a duration - any less and it would be a bit overwhelming I think.

So, where is the best place to start planning the lesson in more detail? An etherpad??

One thing, I have zero experience with Spyder. Are we planning to use this to deliver the lesson? If so, I better get it installed I guess. I assumed we'd be using a jupyter notebook. Was that option eliminated in the chat the other day?

richyvk avatar Apr 15 '17 01:04 richyvk

Hey @richyvk Spyder comes bundled with the full Anaconda install. Just type spyder from a terminal and it will launch. It is an IDE - if you have ever seen RStudio or a Python IDE, it will seem familiar. And in Spyder, you can use ipython notebook-style python or command-line-style python. The main advantage is that people can be tinkering with code in one pane of the IDE and launching it in another pane so it's a bit more user-friendly than the plain Jupyter notebook when you are a learner. Happy to be the dummy-newbie crash test dummy for you on this lesson.

weaverbel avatar Apr 17 '17 00:04 weaverbel

@weaverbel OK, thanks. I'll check it out. Except I don't have Anaconda installed so I 'll have to figure out the best way to install. I have never installed Anaconda because I have my Python setup just how I like it now and I read that Anaconda could destroy my setup so I've never installed it. I know this is not ideal for LC work. One day I might get to setting up dual boot on my Mac or something so I can have a separate LC machine.

richyvk avatar Apr 17 '17 23:04 richyvk

Hey @richyvk Can't you do a conda install of Anaconda so that you have Anaconda corralled off somewhere else?

weaverbel avatar Apr 18 '17 00:04 weaverbel

@richyvk you can install anaconda with the installer from continuum analytics dowload page. It will install in your home ~/anaconda. It will not mess with your installation. It's up to you to add it to your PATH. Anaconda has its own environments in ~/anaconda/envs.

mkuzak avatar Apr 18 '17 07:04 mkuzak

@richyvk Huge thanks for taking this on. I've noted at https://github.com/data-lessons/library-python/issues/38#issue-220917280 that you are taking the lead.

drjwbaker avatar Apr 18 '17 08:04 drjwbaker

@richyvk You could also try miniconda which is a minimal anaconda installation that just gives you the conda package manager. It's actually pretty self-contained: it essentially sets up its own isolated virtualenv and lets you create additional environments, optionally with different python versions, if you want to.

Spyder is also in PyPI, so you can do pip install spyder if you prefer.

jezcope avatar Apr 18 '17 14:04 jezcope

@jezcope yeah, thanks figured out I could pip install it last night, once I realised you need to pip install PyQt first. Running pretty nicely now :)

richyvk avatar Apr 18 '17 22:04 richyvk

The wisdom of crowds ;-) Another job well done !

weaverbel avatar Apr 19 '17 01:04 weaverbel

Brain dump for the sprint (to be continued):

https://docs.google.com/document/d/1Ov91r00zDwo2PFoA3xtx7Vx6X9PCtwoDTXOFO4zpUQk/edit?usp=sharing

Feel free to edit/add to.

Ultimately I'll move this to the preferred location - whatever that might be. First priority for me is confirming who the team is going to be, so if you want in please add you name to the doc :)

richyvk avatar Apr 19 '17 02:04 richyvk

I don't have collaborator access to this repo so I can't do it myself, but it would be good to tag this issue mozsprint for consistency.

jezcope avatar May 02 '17 20:05 jezcope

@jezcope I added you to the team, you should be able to edit after accepting an invite, I also added a label

mkuzak avatar May 02 '17 20:05 mkuzak

@mkuzak Thanks! :grinning:

jezcope avatar May 02 '17 20:05 jezcope

Thanks @mkuzak ! @jezcope Are there any repos you can't get into? I can add you.

weaverbel avatar May 02 '17 22:05 weaverbel

I'm interested in helping out with this if there's an open task.

elliewix avatar May 17 '17 16:05 elliewix

Hi all. Please see the LC gitter for a quick announcement on this lesson :)

richyvk avatar May 18 '17 23:05 richyvk