摘要:
Software engineering is a growing field, with ever-increasing demand for capable engineers who can design, implement, and test the software that is needed for the modern world. With this increasing demand for software engineers, there is a corresponding increase in the demand placed on computer science programs that graduate these engineers. However, the increase in undergraduate enrollment in computer science programs has generally outpaced the increase in instructors. Unfortunately, this can have negative educational impacts by reducing the support that instructors can offer each student. Automation has resulted in significant benefits, allowing developers to work more efficiently and deliver higher-quality software, but automation is not as prevalent within computer science education as it is within industry. To help promote better educational outcomes, particularly by improving the feedback that students receive on their work, I adopt software engineering automation techniques into computer science education and evaluate their efficacy. With ever more students enrolled in computer science programs comes a more widespread use of team-based learning (TBL) and larger teams. While TBL has numerous educational benefits, it is not an educational panacea. Larger teams increases the risk of team challenges, including ineffective communication and non-participation, which has the potential to hamper educational outcomes. To address this, I propose and evaluate using survey techniques to gain insights into how teams work and the challenges that students face in this environment, and enable just-in-time support for struggling teams. This approach can provide instructors with feedback on team challenges, and also encourages self-reflection on the part of students. Together, these approaches support my thesis: Using software engineering automation and survey techniques in computer science education results in improved student learning outcomes, early prediction of struggling