Introducing High School Students to Version Control, Continuous Integration, and Quality Assurance
Joseph Latessa, Aadi Huria, Deepak Raju

TL;DR
This paper describes an educational approach to introduce high school students to essential software engineering practices like version control, continuous integration, and testing through a practical project involving open-source scientific computing.
Contribution
It presents a novel, hands-on curriculum for teaching advanced software engineering concepts to high school students with minimal prior experience.
Findings
High school students successfully learned and applied software engineering tools.
The project enhanced students' understanding of collaborative software development.
The approach facilitated early exposure to professional software practices.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Model-Driven Software Engineering Techniques · Scientific Computing and Data Management
