Comparison of Traditional and ADRI Based Teaching Approaches in an Introductory Programming Course
This study introduced a new teaching and learning approach based on an ADRI (Approach, Deployment, Result, Improvement) model in an introductory programming (IP) course. The effectiveness of the new teaching and learning process was determined by collecting feedback from the IP instructors and by analyzing the final exam grades of the course.
Learning to program is considered a difficult and challenging task for a considerable number of novice programmers. As a result, high failure and dropout rates are often reported in IP courses. Different studies have been conducted to investigate the issue. One of the reasons for this challenge is the multiple skills that students have to master in order to be able to build programs. These skills include programming knowledge and problem-solving strategies and being able to pay equal attention to these required skills in the IP course.
A focus group was conducted to obtain feedback from the IP instructors about the ADRI approach. The performance of the students who had completed the IP course before ADRI was compared with those who used the ADRI approach by undertaking a comparative analysis of their final exam grades.
The study demonstrates that the new teaching and learning approach based on the ADRI model encourages students to pay equal attention to programming knowledge and problem-solving strategies, discouraging programming shortcuts and reducing high attrition rates (failure and dropout) in the IP course.
The results of the focus group show that the instructors preferred the ADRI approach compared to the traditional approach. The final exam grades show that the students performed better in semesters which offered the ADRI approach as compared to those semesters without this approach.
Future research will explore the ADRI approach in other fields of computer science studies, such as database and data structure, to determine if its impact has a wider application than just teaching introductory programming.