Skip to content

carpentries-incubator/python-intermediate-development-earth-sciences

 
 

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python for Earth Sciences

This lesson teaches intermediate-level course in research software engineering and development skills and collaborating as part of a team (using Python as an example language) to Earth scientists using analysis of river catchment data as an example project. It has been based off the original lesson on intermediate research software skills in The Carpentries Incubator.

Target Audience

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

Lesson Status

The lesson is currently in beta - it has been tested extensively with different cohorts by the lesson authors as well as independently by people not directly involved in the lesson development and is in a good state to be reused and taught by others.

Teaching the Lesson

The lesson is suitable for both instructor-led teaching or guided self-learning where instructors provide help and answer questions (synchronously or asynchrounously) as learners go through the course on their own. Initially, in sections 1-3 of the lesson, learners are working on a software project and going though exercises individually. In sections 4 and 5, they are grouped and work in teams, as they would when collaborating on a team software project development.

The lesson has 5 sections; each section can be delivered or worked through in self-learning mode over a half a day to a day, depending on the pace. We would recommend setting aside one day per section to make sure the delivery is not rushed.

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson (in alphabetical order) are:

The maintainer team aims to meet at 11:00 UK time (BST or GMT) on the fourth Wednesday each month. The meetings alternate between operations meetings and co-working sprints. Meeting notes are kept in the Google doc.

Authors

A list of people who authored the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Contact

To get in touch with the lesson maintainers, send an email to Doug Lowe.

Acknowledgements

The development of this lesson has been supported by the NERC grant NE/Y003616/1 and the NERC grant NE/X009181/1. The original lesson this lesson is based on was supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 52.2%
  • Python 27.8%
  • SCSS 5.9%
  • R 4.1%
  • Makefile 3.1%
  • CSS 2.6%
  • Other 4.3%