Enhancing the Learning of Database Access Programming using Continuous Integration and Aspect Oriented Programming
Beatriz Pérez · 2021
Database access programming is a noteworthy component of Software Engineering (SE) education on databases that students are expected to acquire during training for their careers. In our university, we cover such an education in a course that emphasizes the use of the JDBC API to access databases. This paper presents our experiences in developing and running a framework to enhance the learning experience of database access programming, which is motivated by several factors. First, our students face great demands on acquiring JDBC acknowledge, and providing them with constructive feedback serves a critical role. Second, the increasing number of students leads to high efforts in managing and grading their assignments. Finally, we consider of strategic importance to bring modern industrial SE techniques into the classroom, so that students obtain a better experience with industry practices. Our framework draws upon constructive alignment and automated formative assessment, combining Continuous Integration (CI) and Aspect Oriented Programming (AOP). We include an innovative application of AOP, a programming technique that aims to modularize inherently scattered functionality into single functional units, to help students adopt well-established JDBC best practices. We also use well-known industrial software tools (Travis CI and GitHub) to manage and grade students' assignments and support automated integration testing with databases. The findings of this study, applied to a class of 53 students, suggest positive effects, such as motivate students to implement JDBC best practices, streamline the management and grading of their assignments, help them get familiar with industrial tools, or improve their grades.