Previous research has identified numerous challenges in teaching computer programming in the classroom, including students’ varying prior knowledge and experiences (Qian and Lehman, 2017; Lewis et al., 2017). These challenges have drawn attention to various pedagogical strategies and curricular materials (Mayfield et al., 2022; Soep et al., 2021; Raj et al., 2018). The problem has also prompted a number of technological advances and design solutions (Weintrop and Wilensky, 2019; Mayfield et al., 2022). As a field, we have moved forward. However, there remains a significant gap in making introductory programming courses accessible to all students.
Students in introductory programming classes come from diverse backgrounds and have a wide range of interests. Some have completed comprehensive introductory computing courses in high schools, while others have not. Some students have access to a rich ecosystem of computing resources, whilst others do not. These characteristics are heavily influenced by larger historical, social, and economic challenges. Individual abilities and interests also differ. Some students are less comfortable exploring computing systems, while others are more at ease exploring uncertain technological problems.
Furthermore, because the content of introductory programming is deemed “simple enough”, many institutions with limited resources, including ours, rely on graduate students to teach courses. Graduate students frequently teach for a semester or two before they graduate. As a result, many introductory programming instructors do not have the time or resources to iterate and enhance their pedagogical practice. As student interest in computing grows, introductory programming class sizes are expanding, requiring institutions to provide several sections of the same course, resulting in variations in instruction quality and student learning gains.
Our ANON project is situated within these pedagogical and institutional complexities. The project aims to support low-income students in their early computing journey. A cohort of freshmen students participates in a year-long co-curricular program supported by a network of educators and peer mentors. The project places a strong emphasis on fostering student retention in introductory programming classes by providing academic and community support.
In this paper, we focus on a week-long workshop conducted between the two academic terms of the program, where we implemented three evidence-based foundational practices for supporting students with diverse backgrounds and interests in introductory programming. These three practices are: (1) enabling multiple encounters with programming constructs, (2) facilitating collaborative learning, and (3) implementing pedagogical strategies for differentiation. These three practices are not novel; in fact, they are supported by extensive research in computing education and cognitive science (Kendal and Stacey, 2001; Van Gorp and Grissom, 2001; McDowell et al., 2002; Gautam et al., 2020). We provide reflections on strategies to adapt these practices to support instructors in resource-constrained settings in enabling computing for all.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.