Ascertaining reproducibility of scientific experiments is receiving increased attention across disciplines. We argue that the necessary skills are important beyond pure scientific utility, and that they should be taught as part of software engineering (SWE) education. They serve a dual purpose: Apart from acquiring the coveted badges assigned to reproducible research, reproducibility engineering is a lifetime skill for a professional industrial career in computer science. SWE curricula seem an ideal fit for conveying such capabilities, yet they require some extensions, especially given that even at flagship conferences like ICSE, only slightly more than one-third of the technical papers (at the 2021 edition) receive recognition for artefact reusability. Knowledge and capabilities in setting up engineering environments that allow for reproducing artefacts and results over decades (a standard requirement in many traditional engineering disciplines), writing semi-literate commit messages that document crucial steps of a decision-making process and that are tightly coupled with code, or sustainably taming dynamic, quickly changing software dependencies, to name a few: They all contribute to solving the scientific reproducibility crisis, and enable software engineers to build sustainable, long-term maintainable, software-intensive, industrial systems. We propose to teach these skills at the undergraduate level, on par with traditional SWE topics.
翻译:确保科学实验的再生正在各学科中受到越来越多的注意。我们争辩说,必要的技能非常重要,超出了纯科学效用的范围,应当作为软件工程(SWE)教育的一部分来教授这些技能。它们具有双重目的:除了获得用于再生研究的令人羡慕的徽章之外,再生工程是计算机科学专业工业生涯的终身技能。 SWE课程似乎非常适合传播这种能力,但是它们需要一些扩展,特别是在象ICSE这样的旗舰会议上,只有略多于三分之一的技术文件(2021年版)获得对人工退化再生的承认。在建立工程环境方面知识和能力,这种环境允许复制艺术品和结果长达数十年(许多传统工程学科的标准要求),写半文盲承诺信息,记录决策过程的关键步骤,并且与守则或可持续调控动态、迅速变化的软件依赖性紧密结合,它们需要一些扩展。 它们都有助于解决科学再生危机,并且使软件工程师能够以可持续、长期的工业技术水平来培养可持续、长期的工业技术。