Several experiments on the effects of pair programming versus solo programming in the context of education have been reported in the research literature. We present a meta-analysis of these studies that accounted for 18 manuscripts with 49 separate effect sizes in the domains of programming assignments, exams, retention, and affective measures. In total, our sample accounts for N=3308 students either using pair programming as a treatment variable or using traditional solo programming in the context of a computing course. Our findings suggest positive results in favor of pair programming across all four of the domains. We provide a comprehensive review of our results, and discuss our findings.
Systematic endeavors to take computer science and computational thinking (CT) to scale in K-12 classrooms are underway with curricula that emphasize core disciplinary ideas of CS, creativity in computing, and enactment of authentic CT skills especially in the context of programming in block-based programming environments. There is therefore a growing need to measure students learning of CT in the context of programming and also support all learners through this process of learning computational problem solving. The goal of the research presented in this paper is to explore hypothesis-driven approaches that can be combined with data driven approaches to better interpret student actions and process in log data captured from block-based programming environments with the goal of measuring and assessing students CT skills. Informed by past literature and our initial experiences with examining a dataset from the Fairy Assessment in the Alice programming environment, we adopt a more principled approach to assessment design and use the Evidence Centered Design framework to design tasks that will elicit evidence of specific CT skills. We piloted two tasks in two high school Exploring Computer Science classrooms, and conducted an in-depth analysis of student programs as well as video-recordings of a limited number of students as they built their programs to derive possible features and a priori patterns that we can then detect in log data, in addition to interpreting patterns found in log data through bottom-up data-driven approaches. Based on our empirical work and experiences, we present a preliminary framework that formalizes a process where a hypothesis-driven approach effectively complements data-driven learning analytics in interpreting students programming process and assessing CT in block-based programming environments.
In recent years, learning process data have become increasingly easy to collect through computer-based learning environments. This has led to increased interest in the field of learning analytics, which is concerned with leveraging learning process data in order to better understand, and ultimately to improve, teaching and learning. In computing education, the logical place to collect learning process data is through integrated programming environments (IDEs), where computing students typically spend large amounts of time working on programming assignments. While the primary purpose of IDEs is to support computer programming, the IDE might also be used as a mechanism for delivering learning interventions designed to enhance students learning processes and outcomes. The possibility of using the IDE both to collect learning process data, and to strategically intervene in the learning process, suggests an exciting design space for computing education researchers to explore: that of IDE-based learning analytics. In order to facilitate the systematic exploration of this design space, we present an IDE-based data analytics process model with four primary activities: (1) Collect data, (2) Analyze data, (3) Design intervention, and (4) Deliver intervention. For each activity, we identify key design dimensions, and review relevant computing education literature. To provide guidance on designing effective interventions, we then describe four relevant learning theories, and consider their implications for design. Based on our review of research and theory, we present a call-to-action for future research into IDE-based learning analytics.
Computational Thinking describes key principles from computer science that are broadly generalizable. Robotics programs can be engaging learning environments for acquiring core computational thinking competencies. However, few empirical studies evaluate the effectiveness of a robotics programming curriculum for developing broader computational thinking practices and skills. This study measures pre-post gains with new computational thinking assessments given to middle-school students who participated in a virtual robotics programming curriculum. Overall, participation in the virtual robotics curriculum was related to significant gains in pre- to post-test scores, with larger gains in students who made further progress through the curriculum. The success of this intervention suggests that participation in a scaffolded programming curriculum, within the concrete context of virtual robotics, supports the development of generalizable computational thinking skills that are associated with increased problem solving performance on non-robotics computing tasks. However, rate of progress through such a curriculum is a challenge for many teachers.
The number of students taking high school computer science classes is growing. Increasingly, these students are receiving instruction using graphical, blocks-based programming environments either in place of, or prior to, traditional text-based programming languages. Despite their growing use in formal settings, relatively little empirical work has been done to understand the impacts of using blocks-based programming environments in high school classrooms. In this paper, we present the results of a 5-week, quasi-experimental study comparing isomorphic blocks-based and text-based programming environments in an introductory high school programming class. The findings from this study show students in both conditions improved their scores between pre and post assessments, however, students in the blocks condition showed greater learning gains and a higher level of interest in future computing courses. Students in the text condition viewed their programming experience as more similar to what professional programmers do and as more effective at improving their programming ability. No difference was found between students in the two conditions with respect to confidence or enjoyment. The implications of these findings with respect to pedagogy and design are discussed, along with directions for future work.