Learning Objectives:
LO5a: Learn the characteristics of open software; understand the ethical, legal, economic, and research impact arguments for and against open software, and further understand the quality requirements of open code (knowledge).
LO5b: Be able to turn code made for personal use into open code which is accessible by others (task).
LO5c: Use software (tools) that utilizes open content (task).
- Principles of Open Source Software.
- What open, collaborative platforms, with version control, exist.
- GitHub and Zenodo plug-in for code archiving.
- How to document and publish code.
- Open Source licensing.
- Tools for better open research (e.g., RStudio).
- Community codes, governance, and contributions.
- How to access and start working on general computing platforms (e.g., GCE, AWS, OpenStack and more specific - Galaxy, InsideDNA).
- Differences in setting up accounts/storage/computing on different platforms.
- Comparison in terms of collaboration and openness with clusters/in-house servers.
- Individuals: Paola Masuzzo, Naomi Penfold, Titus Brown, Rene Bernard, Daniel Katz, Neil Chue Hong, Heidi Seibold, Anna Kostikova.
- Organisations: Sustainable Software Institute, COKO Foundation, Free Software Foundation.
- Other: WSSSPE community,editors of software peer-reviewed journals (Open Research Software, JOSS).
- Testimonials of scientists who just published code explaining why they went through the trouble and of scientists who already use cloud computing. Explanations about large initiatives (e.g. TCGA) moving their data into cloud and why it has huge impact.
- Journal of Open Research Software and the Journal of Open Source Software.
- Galaxy - Reproducible Research environments.
- Google Compute Engine (GCE), Amazon Web Services (AWS) - Cloud-based software environments.
- Software Citation Tools, Mozilla Science Lab.
- Open Science, Open Data, Open Source (Fernandes and Vos, 2017).
- Choose an open source license.
- The Future of Research in Free/Open Source Software Development (Scacchi, 2010).
- The Scientific Method in Practice: Reproducibility in the Computational Sciences (Stodden, 2010).
- The case for open computer programs (Ince et al., 2012).
- Code Sharing Is Associated with Research Impact in Image Processing (Vandewalle, 2012).
- Current issues and research trends on open-source software communities (Martinez-Torres and Diaz-Fernandez, 2013).
- Ten simple rules for reproducible computational research (Sandve et al., 2013).
- Practices in source code sharing in astrophysics (Shamir et al., 2013).
- A systematic literature review on the barriers faced by newcomers to open source software projects (Steinmacher et al., 2014).
- Knowledge sharing in open source software communities: motivations and management (Iskoujina and Roberts, 2015).
- An open source pharma roadmap (Balasegaram et al., 2017).
- An introduction to Rocker: Docker containers for R (Boettiger and Eddelbuettel, 2017).
- Upon the Shoulders of Giants: Open-Source Hardware and Software in Analytical Chemistry (Dryden et al., 2017).
- Four simple recommendations to encourage best practices in research software (Jimanez et al., 2017).
- Perspectives on Reproducibility and Sustainability of Open-Source Scientific Software from Seven Years of the Dedalus Project (Oishi et al., 2018).
- Good enough practices in scientific computing (Wilson et al. ,2017).
- Publish your computer code: it is good enough, Nick Barnes.
- Making your code citable, GitHub Guides.
- FLOSS and FOSS, Richard Stallman.
- The Software Sustainability Institute and its Software Deposit Guidance for Researchers.
- The Science Code Manifesto.
- Software Carpentry.
- Github's Open Source Guide.
- Software Citation Principles.
- Open Source Initiative: Licenses and Standards.
- Arduino an open source electronics platform based on easy-to-use hardware and software.
- Set up a GitHub account, if you haven't already.
- Share some of your code in a new repo.
- Track changes as your research develops using version control.
- Document everything done by creating a README file.
- Make sure to select an appropriate license for your repo.
- Archive your versioned code in Zenodo.
- Integrate Git with RStudio