M. Tedeschi1, S.S. Arora1, S. Belich2, A. Shah1, C.P. Chauhan1, J.N. Munim1, D.A. Mengane1, D.M. Mehta1
Teaching introductory programming courses effectively remains a significant question, as students often struggle to connect theoretical concepts with practical applications. This study investigates the introduction of the iterator pattern—a key behavioral design pattern—early in undergraduate programming courses to enhance students’ comprehension and application of iterative solutions across various programming languages. The research leverages online coding platforms and integrated development environments to facilitate instruction and assessment. The study employs a pedagogical framework featuring structured lectures, coding examples, hands-on projects, and formative assessments. Students' understanding of the iterator pattern is evaluated at multiple points, utilizing both quantitative performance metrics and qualitative feedback. Frequent issues, such as syntactical misunderstandings and logical errors, are identified and addressed through targeted instructional strategies. These include hands-on practice, pair programming, visual aids, worked examples, and robust structured support. This research further highlights the importance of curriculum sequencing, demonstrating how early exposure to the iterator pattern supports iterative thinking and fosters foundational knowledge essential for efficient, optimized software development. Insights into effective teaching methods and targeted support techniques are provided to improve programming education outcomes for novice learners. Pre- and post-assessments were conducted with undergraduate students using Python and Java to explore the impact of language differences on comprehension. The study also served as a valuable learning experience for master’s students, who spent several months mastering the iterator pattern under the guidance of a professor. These graduate students contributed to both the research process and the documentation of findings, which were later utilized by the professor to teach undergraduates at two different institutions. The collaboration included perspectives from an inexperienced professor, enriching the research and its applications. By aligning instructional strategies with student needs and leveraging insights from diverse teaching experiences, this study provides actionable recommendations for curriculum design. It equips educators to prioritize and sequence programming concepts effectively, ensuring that novice programmers are prepared for future careers in software engineering, computer science or other majors.
Keywords: Pedagogy, technology, programming, iterator pattern.