Software Engineering concepts such as version control, continuous integration, and unit testing are often not presented in college computer science curriculums until the third year of study, after completing several semesters of programming courses. Throughout the summer of 2023, two high school students volunteered in our lab at Wayne State University where I'm a graduate research assistant and Ph.D. student in computer science. The students had taken AP Computer Science but had no prior experience with software engineering or software testing. This paper documents our experience devising a group project to teach the requisite software engineering skills to implement automated tests that meaningfully contribute to open-source scientific computing projects developed in connection with our lab. We describe the concepts covered, tools used, and software tests written in this early introduction to software engineering while maintaining shared emphases on education and the deployment of our work.
翻译:软件工程概念(如版本控制、持续集成和单元测试)通常在大学计算机科学课程中直至第三学年(即完成多个学期的编程课程后)才会被引入。2023年夏季,两名高中志愿者在我们韦恩州立大学的实验室参与实践——我作为计算机科学专业的博士研究生兼研究助理在此工作。这些学生已修读过AP计算机科学课程,但此前并无软件工程或软件测试经验。本文记录了我们设计小组项目的实践经验,旨在教授实现自动化测试所需的软件工程技能,使其能够为实验室参与开发的开源科学计算项目做出实质性贡献。我们阐述了此早期软件工程入门课程中涵盖的概念、使用的工具及编写的软件测试,同时始终坚持教育与成果部署并重的核心理念。