Software Engineering Educational Experience in Building an Intelligent Tutoring System
The growing number of students enrolling in Computer Science (CS) programmes is pushing CS educators to their limits. This poses significant challenges to computing education, particularly the teaching of introductory programming and advanced software engineering (SE) levels. First-year programming courses often face overwhelming enrollments, including interdisciplinary students who are not CS majors. The high teacher-to-student ratio makes it challenging to provide timely and high-quality feedback. Meanwhile, software engineering education comes with inherent difficulties like acquiring industry partners and the dilemma that such software projects are often under or over-specified and one-time efforts within one team or one course. To address these challenges, we propose a dual solution: first, an Intelligent Tutoring System (ITS) of Programming Assignment to provide automated, real-time feedback in programming courses, and second, a long-term software engineering course project where students contribute to the ITS’s development. More specifically, we designed a novel foundational SE course. This SE course envisions building a full-fledged ITS over multiple years as a long-running software project. Each year, SE students contribute to specific short-running SE projects that improve the existing ITS implementation, while at the same time, we can deploy the ITS for usage by students for learning programming. This project setup builds awareness among SE students about their contribution to a “to–be–deployed” software project. This approach benefits all stakeholders — novice students using the ITS for learning, senior students gaining practical experience through project contributions, and CS educators receiving scalable support. In this multi-year teaching effort, we have incrementally built an ITS that is now deployed in various programming courses. This paper discusses our view of future computing education, our teaching concept, the Intelligent Tutoring System architecture, and our experience with various stakeholders.