Experiences in Teaching Prospective Research Software Engineers at the University of Chicago
In comparison to traditional software engineers, research software engineers (RSEs) often come to software engineering from scientific domains and may lack formal training. As the field continues to develop, direct educational pathways and formal training are likely to expand. Questions about best practices for training students and early career RSEs must be answered to ensure new RSEs are able to contribute high quality code. How should we train students with minimal experience to work on real-world projects? How do we bridge the gap between classroom learning and the expectations of writing reproducible code? What assumptions can be made about what students can (and should) learn themselves, and what do they need to be explicitly taught? The University of Chicago’s Data Science Institute has been able to wrestle with these questions over the past three years by engaging with students via its experiential, project-based, Data Science Clinic course. The Data Science Clinic is a useful setting for asking these questions and testing related hypotheses. The clinic works with 3 cohorts of students each year and typically has more than 50 students per cohort. This provides a great environment for iterating on best practices. Preparing students who are interested in research software engineering careers is similar to training early-career RSEs who are coming from backgrounds with limited computer science education. Students in the clinic come from diverse backgrounds, with both master’s and undergraduate students well-represented, but most have one university computer science course. This level of formal computer science background is similar to many RSEs coming from non-computer science backgrounds. Additionally, code reproducibility and code quality are often lower priorities on both student projects and RSE projects. The Data Science Clinic has led to the important conclusion that relying on assumptions about student background knowledge leads to negative outcomes. When using experiential learning or project-based classes, it's easy to have a biased view of student understanding since only the most confident and engaged students are likely to volunteer to participate. These advanced students can shoulder most of the load of a project and make quite a bit of progress, while allowing the students who would gain the most from direct instruction to coast undetected. In reality, many students lack robust mental models of computer operation, familiarity with essential terms and concepts, and an appreciation for software engineering best practices. Overcoming these challenges requires significant investment from experienced mentors. The purpose of this talk is to share these lessons and conclusions, discuss why these problems are so difficult, and to consider next steps.
Institutions
- University of Chicago (US)
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2024-10-25
- DOI
- https://doi.org/10.5281/zenodo.13992486
- Primary Topic
- Scientific Computing and Data Management
- Type
- article
- Field-Weighted Citation Impact
- 0.00