/python-intermediate-development

Intermediate Research Software Development Skills In Python Lesson Material

Primary LanguagePythonOtherNOASSERTION

Intermediate Research Software Development Skills In Python

This is a multi-day, intermediate-level lesson/course in software development skills for researchers using Python as a programming language. A typical learner for this course may be someone who is working in academic research and, needing to write some code, has gained basic software development skills either by self-learning or attending, e.g., a 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.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software. It continues from the material covered in the novice-level Software Carpentry lessons and follows the same principles, as described in Best Practices for Scientific Computing and Good enough practices in scientific computing.

The code examples used in this lesson build upon the examples used in Software Carpentry's Programming with Python lesson and work with the patients' inflammation dataset.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in the alpha status, which means that it is still being actively developed. However, all planned episodes have been written and finished, and the lesson has be tested several times with different cohorts and is in a good state to be reused and tried by others. Please be aware that there may be some discrepancies and inconsistencies with language, images, screenshots and code outputs. We would appreciate any contributions from the community in fixing these issues - see the section below on how to make contributions. After these inconsistencies are fixed, the lesson will graduate to beta.

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 familiarize yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, ways to render the lesson locally, and even how to write new 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 are:

Authors

A list of contributors to the lesson can be found in AUTHORS.

License

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

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.