Summary
Instructor note
Summary 10 min
You now have acquainted yourself with the tools you will use in this course. These are also helpful in your development work.
The development cycle
Typical workflow:
Requirements
Analysis and design
Development
Test
Development and maintenance
Iteration!
Important to identify problem in beginning and add for flexibility
Planning phase with pseudocode and UML
UML is good in several conditions
The most important diagrams for software development are:
Class
Sequence
Activity
There are plenty of tools out there
Pseudocode gives a more detailed description what you want the program to do.
Can be highly personal or very language-like
Git and Github
share your code
open source
Reproducibility
Preserve the steps for re-generating published results.
Hundreds of workflow management tools exist.
Snakemake is a comparatively simple and lightweight option to create transferable and scalable data analyses.
Sometimes a script is enough.
Share your code! Eventually others will probably use it anyway.
Licence your software and do it early. Default is “no one can make copies or derivative works”.
Get DOI or at least state how to cite your software
Documentation
Document in code, answering why, not how.
Make a README.txt for an overview of the software.
Documentation should be tracked with the corresponding code in the same repository
Full documentation or tutorial
Deploy at GH-pages or ReadTheDocs
Coming days
Programming paradigms
Testing and test-driven design
Algorithms
Data structures
Modular programming
Optimization
Nordic Research Software Engineer
A Research Software Engineer (RSE) is someone in between research and technology (software, computing, data). Perhaps they work as a expert within a research group, or perhaps they work as a specialist in a service that supports other researchers. Does this sound like you? Read on… https://nordic-rse.org/
Menti
What have you learnt
What will you do differently?