APPROACHES TO UTILIZING GENERATIVE ARTIFICIAL INTELLIGENCE IN PROGRAMMING AND SOFTWARE ENGINEERING EDUCATION
J. Cañadas, M. Mena, J.A. Llopis, R.M. Ayala, F. García, J. Criado, J. Barón
Emergent technologies, such as generative artificial intelligence (AI), are revolutionizing many aspects of both academia and society. The effective integration of these technologies in computer science education is a growing phenomenon that presents challenges for both educators and students.
This study aims to identify areas where generative AI has the potential to revolutionize the classroom experience along the informatics engineering bachelor’s degree, particularly in programming and software engineering subjects. By adopting this approach, we can improve the quality and effectiveness of the learning process and teaching materials.
Different approaches in the use of generative AI have been identified and applied depending on the features of the focused subject, such as the semester/year in the degree, the number of students, and student’s level and background.
A first example is the subject Introduction to Programming that runs the first semester of the bachelor's degree. Our primary objective has been to apply generative AI from the perspective of the teacher's role, creating and designing new programming exercises in Java that actively involve students. We adopted an iterative approach beginning by posing concrete problems and developing clear and challenging statements. Through AI assistance, we gradually refine both the problems and the proposed solutions. Subsequently, we implement the solutions in Java classes, along with creating JUnit test suites for comprehensive testing, generating Javadoc documentation for clear reference, and configuring the Maven pom.xml for seamless integration within the project ecosystem. This process offers us immediate feedback and saves time in identifying the challenges students may encounter when solving the proposed exercises.
In the Requirements Engineering subject, our research emphasizes the utilization of generative AI for the elicitation and analysis of requirements, to facilitate stakeholder identification, requirements extraction, and use cases generation. Additionally, AI is leveraged for the automatic generation of exercises, incorporating a degree of variability to the problems and practices assigned to students.
In the Planning and Management of I.T. subject, two approaches are being implemented to using generative AI as a support tool: for the teacher and for students. In one of the course activities, students select a project, identify the tasks and their complexity, and create the project schedule using project management software such as Microsoft Project. Generative AI is being used to assist the transfer of the tasks from the diagram to a file compatible with the project management software. In this way, the students have their workload reduced and can spend more time planning their project.
Similarly, efforts to evaluate generative AI are being carried out in subjects such as Software Engineering, where software modeling is the main focus, making it challenging to obtain useful results from AI-generated text. Additionally, in Rapid Application Development, where students work in small teams to quickly create application prototypes with usable user interfaces.
In conclusion, several approaches to using generative AI in the learning process within informatics engineering studies have been identified. This highlights the potential for widespread adoption of this technology, in which we, as educators, should be involved.
Keywords: Generative Artificial Intelligence, teaching software engineering, informatics engineering bachelor's degree.