WIP: Code Insight: Combining Code Reading and Debugging Practices for Active Learning in Entry-Level Computer Science Courses
Keerti Banweer, Deborah Trytten · 2024
This work-in-progress innovative practice paper describes an active learning in-class activity to be used in introductory programming courses. In the software development industry, critical thinking, problem-solving, code review, and debugging are vital skill sets software engineers require to build software that meets requirements. Commercial software companies often have extensive code review processes to make sure that developed code is of high quality. Many new developers work in quality assurance and maintenance of software products. For these jobs, learning to understand code written by peers is an essential skill. Code review skills are rarely explicitly taught in required programming classes in CS, especially at the entry-level. In beginning programming classes, students are usually thrilled if they can find one way to make a program work. They rarely see, let alone generate, multiple approaches to solving a single problem. In this research, we propose an active learning approach that provides students with experience reviewing and analyzing existing code. In our activities, students practice code review skills by exploring multiple approaches to solve a single problem. We have developed an in-class active learning approach, called Code Insight, for entry-level programming courses. Code Insight activities are designed based on student-created answers to previous homework and midterm problems. Students are given the code to upload into their development environment, so they have the tools available that a typical software developer would have. Students use a classroom response system to report the correctness of these solutions by responding to multiple-choice questions. Preliminary results show that students prefer doing this activity to listening to lectures. In addition, students report that they learn more programming from this structure of the exercise. The degree to which Code Insight can improve student learning in beginning programming will be assessed using performance on other learning assignments, particularly those on programming questions in the midterm and final examinations.