ABSTRACT VIEW
INTEGRATING AI-ASSISTED LEARNING OF PROGRAMMING IN SOFTWARE DEVELOPMENT COURSES
B. Mihaljević1, A. Radovan2, D. Beronić1
1 RIT Croatia (CROATIA)
2 Algebra University College (CROATIA)
The omnipresence and wide availability of generative artificial intelligence (GAI) tools and services, commonly utilizing large language models (LLM), brought disruption in various industries, and the field of software development and programming has also been significantly affected. Notably, these tools and services present new AI-supported opportunities to offer programming-related assistance in source code completion, automate code generation, help in the creation of test cases, and provide more advanced features such as detailed source code explanation, automated code reviewing, reasoning and performance evaluation of used code and developed algorithms, as well as refactoring of entire projects.

Recently, many of these tools and services were integrated as extensions or plugins within the most popular development environments (IDEs) such as IntelliJ IDEA and Visual Studio Code, thus providing simpler and even more user-friendly assistance for software developers in comparison to using external standalone services when programming, such as ChatGPT. The result was not only an improvement of the entire software development process and a boost in productivity for all software developers but also an opportunity to help less experienced programmers in a more user-friendly manner when introducing new concepts and programming constructs they never encountered before with detailed explanations.

The idea behind this research was to utilize and incorporate many of these AI-supported features in teaching activities of introductory and intermediate-level software development courses in higher education, mostly related to common algorithms over data structures and typical database-related tasks. The primary goal was to facilitate more effective and quicker acquisition of knowledge and programming skills through the AI-assisted learning process while monitoring its usage by students and evaluating its benefits.

Students were encouraged to use these "AI assistants" in an ethical and legal way for both individual programming assignments and practical team projects, utilized as additional help provided by AI-supported assistance within IDEs and used beside guidance offered by instructors and tutors. We analyzed students' feedback on the usability of these tools for typical programming tasks students need to perform and compared their usefulness, correctness, and accuracy of the assistance they offered. The results present interesting findings and insights about how students used these tools and what they considered the most useful features.

Moreover, we discuss the challenges and risks associated with academic honesty, particularly related to the unauthorized use of automatic code generation, potential plagiarism when used in an uncontrolled environment, and the problems of relying too much on these tools in software development.

We summarized the findings of this preliminary analysis and discussed the possibilities of potential adaption of other undergraduate software development courses with such an AI-assisted learning approach in a safe and responsible way, thus transforming and enriching software development education.

Keywords: AI Assistants, Software Development, Programming Courses.