In K-12 computer science (CS) education, collaboration is a key practice for all grade levels in CS standards, but there are still significant gaps in understanding how students can be supported in collaborating. In addition to being a central workforce skill, collaboration also supports students' sense of agency, sustained engagement, and conceptual understanding of CS. This project advances the field's understanding of student collaboration in CS education, focusing on upper elementary students. The project explores how different models of collaborative programming can impact quality of collaboration, student engagement, learning outcomes, and attitudes toward CS. By investigating these models, the project is determining how varying the types of CS activities, number of computers, student roles, and pairing strategies can influence students' collaborative practices; and through these their conceptual understanding of CS, their interest in the subject, and their teachers' confidence in leading CS instruction. The findings will help educators better support students' sustained engagement in programming activities, conscious control over their learning, and understanding of CS concepts. Dissemination of these findings is through both reports of research results and through models of instruction that can be employed with different CS curricula. This study of fourth and fifth grade classroom work in computer science compares and examines student learning across different