Ten simple rules for teaching sustainable software engineering
- URL: http://arxiv.org/abs/2402.04722v1
- Date: Wed, 7 Feb 2024 10:16:20 GMT
- Title: Ten simple rules for teaching sustainable software engineering
- Authors: Kit Gallagher, Richard Creswell, Ben Lambert, Martin Robinson, Chon
Lok Lei, Gary R. Mirams, David J. Gavaghan
- Abstract summary: Developing high-quality research software requires scientists to develop a host of software development skills.
There has been a growing importance placed on ensuring foundational and good development practices in computational research.
Recent articles in the Ten Simple Rules collection have discussed the teaching of computer science and coding techniques to biology students.
We advance this discussion by describing the specific steps for effectively teaching the necessary skills scientists need to develop sustainable software packages.
- Score: 0.0
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Computational methods and associated software implementations are central to
every field of scientific investigation. Modern biological research,
particularly within systems biology, has relied heavily on the development of
software tools to process and organize increasingly large datasets, simulate
complex mechanistic models, provide tools for the analysis and management of
data, and visualize and organize outputs. However, developing high-quality
research software requires scientists to develop a host of software development
skills, and teaching these skills to students is challenging. There has been a
growing importance placed on ensuring reproducibility and good development
practices in computational research. However, less attention has been devoted
to informing the specific teaching strategies which are effective at nurturing
in researchers the complex skillset required to produce high-quality software
that, increasingly, is required to underpin both academic and industrial
biomedical research. Recent articles in the Ten Simple Rules collection have
discussed the teaching of foundational computer science and coding techniques
to biology students. We advance this discussion by describing the specific
steps for effectively teaching the necessary skills scientists need to develop
sustainable software packages which are fit for (re-)use in academic research
or more widely. Although our advice is likely to be applicable to all students
and researchers hoping to improve their software development skills, our
guidelines are directed towards an audience of students that have some
programming literacy but little formal training in software development or
engineering, typical of early doctoral students. These practices are also
applicable outside of doctoral training environments, and we believe they
should form a key part of postgraduate training schemes more generally in the
life sciences.
Related papers
- Requirements Engineering for Research Software: A Vision [2.2217676348694213]
Most researchers creating software for scientific purposes are not trained in Software Engineering.
Research software is often developed ad hoc without following stringent processes.
We describe how researchers elicit, document, and analyze requirements for research software.
arXiv Detail & Related papers (2024-05-13T14:25:01Z) - Bridging Gaps, Building Futures: Advancing Software Developer Diversity and Inclusion Through Future-Oriented Research [50.545824691484796]
We present insights from SE researchers and practitioners on challenges and solutions regarding diversity and inclusion in SE.
We share potential utopian and dystopian visions of the future and provide future research directions and implications for academia and industry.
arXiv Detail & Related papers (2024-04-10T16:18:11Z) - Charting a Path to Efficient Onboarding: The Role of Software
Visualization [49.1574468325115]
The present study aims to explore the familiarity of managers, leaders, and developers with software visualization tools.
This approach incorporated quantitative and qualitative analyses of data collected from practitioners using questionnaires and semi-structured interviews.
arXiv Detail & Related papers (2024-01-17T21:30:45Z) - SciOps: Achieving Productivity and Reliability in Data-Intensive Research [0.8414742293641504]
Scientists are increasingly leveraging advances in instruments, automation, and collaborative tools to scale up their experiments and research goals.
Various scientific disciplines, including neuroscience, have adopted key technologies to enhance collaboration, inspiration and automation.
We introduce a five-level Capability Maturity Model describing the principles of rigorous scientific operations.
arXiv Detail & Related papers (2023-12-29T21:37:22Z) - Managing Software Provenance to Enhance Reproducibility in Computational
Research [1.1421942894219899]
Management of computation-based scientific studies is often left to individual researchers who design their experiments based on personal preferences and the nature of the study.
We believe that the quality, efficiency, and of computation-based scientific research can be improved by explicitly creating an execution environment that allows researchers to provide a clear record of traceability.
arXiv Detail & Related papers (2023-08-29T21:13:18Z) - Using Machine Learning To Identify Software Weaknesses From Software
Requirement Specifications [49.1574468325115]
This research focuses on finding an efficient machine learning algorithm to identify software weaknesses from requirement specifications.
Keywords extracted using latent semantic analysis help map the CWE categories to PROMISE_exp. Naive Bayes, support vector machine (SVM), decision trees, neural network, and convolutional neural network (CNN) algorithms were tested.
arXiv Detail & Related papers (2023-08-10T13:19:10Z) - Ten Quick Tips for Deep Learning in Biology [116.78436313026478]
Machine learning is concerned with the development and applications of algorithms that can recognize patterns in data and use them for predictive modeling.
Deep learning has become its own subfield of machine learning.
In the context of biological research, deep learning has been increasingly used to derive novel insights from high-dimensional biological data.
arXiv Detail & Related papers (2021-05-29T21:02:44Z) - Enhancement Programming Skills and Transforming Knowledge of Programming
through Neuroeducation Approaches [0.0]
programming digital devices and developing software is an important professional qualification, which contributes to employment opportunities.
Recent development of brain imaging techniques have provided additional opportunity for neuroscientists to explore the functional organization of the human brain.
This research is an approach to supporting learning in the field of learning and teaching computer programming.
arXiv Detail & Related papers (2021-05-19T06:26:30Z) - Technology Readiness Levels for Machine Learning Systems [107.56979560568232]
Development and deployment of machine learning systems can be executed easily with modern tools, but the process is typically rushed and means-to-an-end.
We have developed a proven systems engineering approach for machine learning development and deployment.
Our "Machine Learning Technology Readiness Levels" framework defines a principled process to ensure robust, reliable, and responsible systems.
arXiv Detail & Related papers (2021-01-11T15:54:48Z) - Using game simulator Software Inc in the Software Engineering education [0.0]
The article presents the possibilities of using game simulator Sotware Inc in the training of future software engineers.
The use of modern ICT, including game simulators, in the educational process allows to improve the quality of educational material.
arXiv Detail & Related papers (2020-11-26T13:26:55Z) - Machine Learning for Software Engineering: A Systematic Mapping [73.30245214374027]
The software development industry is rapidly adopting machine learning for transitioning modern day software systems towards highly intelligent and self-learning systems.
No comprehensive study exists that explores the current state-of-the-art on the adoption of machine learning across software engineering life cycle stages.
This study introduces a machine learning for software engineering (MLSE) taxonomy classifying the state-of-the-art machine learning techniques according to their applicability to various software engineering life cycle stages.
arXiv Detail & Related papers (2020-05-27T11:56:56Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.