A team of experts from the Software Sustainability Institute, including Steve Crouch, James Graham and Aleksandra Nenadic, have been developing this course since April 2020. The course is aimed at learners who develop code in academic research settings but now require more intermediate software engineering skills as their projects are facing new challenges, such as:
software is becoming more complex and more team development effort is needed to keep the software running.
software is going further than just the group developing the code - there are more stakeholders and an increasing need to add new features and support collaborations with others.
increased demands to add new functionality while ensuring previous development efforts remain functional and maintainable.
The course covers topics such as:
using various tools and techniques for software development in a typical collaborative code development cycle.
setting up a test framework and writing tests to verify the correct behaviour of the code, and automating and scaling up testing with Continuous Integration (CI).
different software design paradigms to understand different ways of thinking about and structuring the code.
preparing and releasing software for reuse by others.
managing software improvements through feedback using agile techniques.