duncanwp / python_for_climate_scientists

A python course intended to provide a thorough grounding for those working in the earth sciences

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

General feedback

duncanwp opened this issue · comments

  • Could mention scripting a bit more - how to do it. Particularly how to work with multiple datasets across multiple cores - perhaps we can cover this on the final day
  • Maybe cover the conda setup in a bit more detail at some point - people see this as a 'python thing' and can be quite complicated at first

I think we forgot to mention anywhere that all the libraries and Python itself are open-source, and thus anyone can contribute to them (bug reports, improving documentation, code).

"The overall layout of the course was very good although the second day was the most difficult and challenging one (and I didn’t even follow the CIS part!). Maybe some swapping of topics or diluting of topics could alleviate that.

You guys live & breath Python but that sometimes meant concepts were used without introduction. E.g. concept of objects, methods, classes & OOB were introduced either seemingly random (objects & methods) or rather late (OOB). Note that objects and OOB are conceptually very different from languages we usually use. Introducing them gradually might work (e.g. first objects and methods to explain basic Python syntax, later on OOB). The specific OOB-oriented syntax of Python is already visible in the use of matlibplot but one can deal with it there without mention of OOB.

The intro on the first day might be sped up; after all we’ve all worked with computer languages before. Important things to note: white space matters, case sensitive, Python data structures (list, tuple, dictionary), indexing in Python, how to get help on Python. Some of these things were part of the course, others just cropped up (or not at all). I’d say a list of possible variables (int, float, char etc) can be dealt with quickly: of course a language like Python knows those.

The difference between a view and a copy of Python data also came up randomly. But again it is an important distinction with most other languages (although pointers exist in most languages these days many people stay away from them).

The reliance on the notebook was sometimes a problem. In general this is a very useful tool to teach a language but it also created many moments of ‘Oh, yes, I should not forget to say …” (Python stuff like None or “””. The latter by the way should be introduced much earlier (not on third day) as part of a number of techniques to learn Python on the go, e.g. help()). Maybe a succinct traditional presentation followed by a notebook session might be a better way to organise many of the individual sessions.

I also found the different fonts used for normal text and Python commands to be insufficient. Maybe use colour as well?

The pycharm session ran into some trouble, maybe because two different things were introduced at once: IDE and optimisation?

Overall a wide variety of really useful topics was covered and usually well explained.

One suggestion: maybe at the end of the day you could give some bigger exercise to allow people to play around more with the language? The breaks can be shortened in my opinion."