-A A +A

ACM Transactions on Computing Education

Subscribe to ACM Transactions on Computing Education feed
Updated: 39 min 35 sec ago

Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review

Thu, 10/26/2017 - 20:00
Yizhou Qian, James Lehman

Efforts to improve computer science education are underway, and teachers of computer science are challenged in introductory programming courses to help learners develop their understanding of programming and computer science. Identifying and addressing students’ misconceptions is a key part of a computer science teacher's competence. However, relevant research on this topic is not as fully developed in the computer science education field as it is in mathematics and science education. In this article, we first review relevant literature on general definitions of misconceptions and studies about students’ misconceptions and other difficulties in introductory programming. Next, we investigate the factors that contribute to the difficulties.

Teaching Software Product Lines: A Snapshot of Current Practices and Challenges

Thu, 10/26/2017 - 20:00
Mathieu Acher, Roberto E. Lopez-Herrejon, Rick Rabiser

Software Product Line (SPL) engineering has emerged to provide the means to efficiently model, produce, and maintain multiple similar software variants, exploiting their common properties, and managing their variabilities (differences). With over two decades of existence, the community of SPL researchers and practitioners is thriving, as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of practitioners to build highly complex, variability-intensive systems. Yet, it is unclear how the concepts of variability and SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, and what is the material available.

Comparing Block-Based and Text-Based Programming in High School Computer Science Classrooms

Thu, 10/26/2017 - 20:00
David Weintrop, Uri Wilensky

The number of students taking high school computer science classes is growing. Increasingly, these students are learning with graphical, block-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 block-based programming environments in high school classrooms. In this article, we present the results of a 5-week, quasi-experimental study comparing isomorphic block-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 postassessments; however, students in the blocks condition showed greater learning gains and a higher level of interest in future computing courses.

Developing Computational Thinking through a Virtual Robotics Programming Curriculum

Thu, 10/26/2017 - 20:00
Eben B. Witherspoon, Ross M. Higashi, Christian D. Schunn, Emily C. Baehr, Robin Shoop

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 computational thinking knowledge 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 posttest scores, with larger gains for students who made further progress through the curriculum. The success of this intervention suggests that participation in a scaffolded programming curriculum, within the context of virtual robotics, supports the development of generalizable computational thinking knowledge and skills that are associated with increased problem-solving performance on nonrobotics computing tasks.

Unlocking the Potential of Learning Analytics in Computing Education

Sun, 08/27/2017 - 20:00
Shuchi Grover, Ari Korhonen

Blending Measures of Programming and Social Behavior into Predictive Models of Student Achievement in Early Computing Courses

Sun, 08/27/2017 - 20:00
Adam S. Carter, Christopher D. Hundhausen, Olusola Adesope

Analyzing the process data of students as they complete programming assignments has the potential to provide computing educators with insights into both their students and the processes by which they learn to program. In prior research, we explored the relationship between (a) students’ programming behaviors and course outcomes, and (b) students’ participation within an online social learning environment and course outcomes. In both studies, we developed statistical measures derived from our data that significantly correlate with students’ course grades. Encouraged both by social theories of learning and a desire to improve the accuracy of our statistical models, we explore here the impact of incorporating our predictive measure derived from social behavior into three separate predictive measures derived from programming behaviors.

A Contingency Table Derived Method for Analyzing Course Data

Sun, 08/27/2017 - 20:00
Alireza Ahadi, Arto Hellas, Raymond Lister

We describe a method for analyzing student data from online programming exercises. Our approach uses contingency tables that combine whether or not a student answered an online exercise correctly with the number of attempts that the student made on that exercise. We use this method to explore the relationship between student performance on online exercises done during semester with subsequent performance on questions in a paper-based exam at the end of semester. We found that it is useful to include data about the number of attempts a student makes on an online exercise.

A Framework for Using Hypothesis-Driven Approaches to Support Data-Driven Learning Analytics in Measuring Computational Thinking in Block-Based Programming Environments

Sun, 08/27/2017 - 20:00
Shuchi Grover, Satabdi Basu, Marie Bienkowski, Michael Eagle, Nicholas Diana, John Stamper

Systematic endeavors to take computer science (CS) and computational thinking (CT) to scale in middle and high school classrooms are underway with curricula that emphasize the 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 this research is to explore hypothesis-driven approaches that can be combined with data-driven ones to better interpret student actions and processes in log data captured from block-based programming environments with the goal of measuring and assessing students’ CT skills.

Youth Computational Participation in the Wild: Understanding Experience and Equity in Participating and Programming in the Online Scratch Community

Sun, 08/27/2017 - 20:00
Deborah A. Fields, Yasmin B. Kafai, Michael T. Giang

Most research in primary and secondary computing education has focused on understanding learners within formal classroom communities, leaving aside the growing number of promising informal online programming communities where young users contribute, comment, and collaborate on programs to facilitate learning. In this article, we examined trends in computational participation in Scratch, an online community with over 1 million registered youth designers. Drawing on a random sample of 5,004 youth programmers and their activities over 3 months in early 2012, we examined programming concepts used in projects in relation to level of participation, gender, and length of membership of Scratch programmers. Latent class analysis results identified the same four groups of programmers in each month based on the usage of different programming concepts and showed how membership in these groups shifted in different ways across time.

A Meta-Analysis of Pair-Programming in Computer Programming Courses: Implications for Educational Practice

Wed, 08/23/2017 - 20:00
Karthikeyan Umapathy, Albert D. Ritzhaupt

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 28 independent effect sizes in the domains of programming assignments, exams, passing rates, and affective measures. In total, our sample accounts for N = 3,308 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 in three of four domains with exception to affective measures.

Writing In-Code Comments to Self-Explain in Computational Science and Engineering Education

Wed, 08/23/2017 - 20:00
Camilo Vieira, Alejandra J. Magana, Michael L. Falk, R. Edwin Garcia

This article presents two case studies aimed at exploring the use of self-explanations in the context of computational science and engineering (CSE) education. The self-explanations were elicited as students’ in-code comments of a set of worked-examples, and the cases involved two different approaches to CSE education: glass box and black box. The glass-box approach corresponds to a programming course for materials science and engineering students that focuses on introducing programming concepts while solving disciplinary problems. The black-box approach involves the introduction of Python-based computational tools within a thermodynamics course to represent disciplinary phenomena. Two semesters of data collection for each case study allowed us to identify the effect of using in-code comments as a self-explanation strategy on students’ engagement with the worked-examples and students’ perceptions of these activities within each context.

Teaching Computational Thinking Using Agile Software Engineering Methods: A Framework for Middle Schools

Wed, 08/23/2017 - 20:00
Ilenia Fronza, Nabil El Ioini, Luis Corral

Computational Thinking (CT) has been recognized as one of the fundamental skills that all graduates should acquire. For this reason, motivational concerns need to be addressed at an early age of a child, and reaching students who do not consider themselves candidates for science, technology, engineering, and mathematics disciplines is important as well if the broadest audience possible is to be engaged. This article describes a framework for teaching and assessing CT in the context of K-12 education. The framework is based on Agile software engineering methods, which rely on a set of principles and practices that can be mapped to the activities of CT.

Getting IT Together: A Longitudinal Look at Linking Girls' Interest in IT Careers to Lessons Taught in Middle School Camps

Wed, 08/23/2017 - 20:00
Christina N. Outlay, Alana J. Platt, Kacie Conroy

The dearth of women choosing information technology (IT) careers has been identified as a national problem in the United States. Efforts have been made to combat this by educating girls at a young age about technology. Recent research demonstrates that exposure to technology is insufficient to change young girls’ attitudes towards IT careers and that interventions must explicitly tie technology activities to careers. Faculty and staff of a Midwestern university modified an IT summer camp for middle school girls to include career specific programming. The camp deployed the Girls Educating Themselves about Information Technology (GET IT) program to garner interest among middle school girls in IT careers.