ACM Transactions on Computing Education

Subscribe to ACM Transactions on Computing Education feed
Updated: 1 hour 34 min ago

Teaching Computer Vision: Bringing Research Benchmarks to the Classroom

Mon, 02/23/2015 - 19:00
Tal Hassner, Itzik Bayaz

This article concerns the design of effective computer vision programming exercises and presents a novel means of designing these assignments. We describe three recent case studies designed to evaluate the effectiveness of assigning graduate-level computer vision students with publicly available research benchmarks as competitive assignments. This was done rather than assigning more traditional exercises that require students to implement specific algorithms or applications. We allowed our students the freedom of designing or choosing their own methods, with the goal of obtaining the best performance on the benchmark chosen for each assignment. Students, therefore, competed against each other, as well as published state of the art.

From Scratch to “Real” Programming

Mon, 02/23/2015 - 19:00
Michal Armoni, Orni Meerbaum-Salant, Mordechai Ben-Ari

Computer science (CS) activities for young students are widely used, particularly visual programming environments. We investigated the use of the Scratch environment for teaching CS concepts to middle school students. In a previous article [Meerbaum-Salant et al. 2013], we reported on the extent to which the CS concepts were successfully learned. In this article, we look at the transition from studying CS with the visual Scratch environment in middle school to studying CS with a professional textual programming language (C# or Java) in secondary school. We found that the programming knowledge and experience of students who had learned Scratch greatly facilitated learning the more advanced material in secondary school: less time was needed to learn new topics, there were fewer learning difficulties, and they achieved higher cognitive levels of understanding of most concepts (although at the end of the teaching process, there were no significant differences in achievements compared to ...

Teaching Introductory Programming: A Quantitative Evaluation of Different Approaches

Sun, 12/28/2014 - 19:00
Theodora Koulouri, Stanislao Lauria, Robert D. Macredie

Teaching programming to beginners is a complex task. In this article, the effects of three factors—choice of programming language, problem-solving training, and the use of formative assessment—on learning to program were investigated. The study adopted an iterative methodological approach carried out across 4 consecutive years. To evaluate the effects of each factor (implemented as a single change in each iteration) on students’ learning performance, the study used quantitative, objective metrics. The findings revealed that using a syntactically simple language (Python) instead of a more complex one (Java) facilitated students’ learning of programming concepts. Moreover, teaching problem solving before programming yielded significant improvements in student performance.

Smartphones, Studio-Based Learning, and Scaffolding: Helping Novices Learn to Program

Mon, 12/22/2014 - 19:00
Susan Reardon, Brendan Tangney

This article describes how smartphones, studio-based learning, and extensive scaffolding were used in combination in the teaching of a freshman Introduction to Programming course. To reduce cognitive overload, a phased approach was followed in introducing programming concepts and development environments, beginning with the visual programming environment Scratch and culminating with Java development for Android smartphones. Studio-based learning, a pedagogical approach long established in the fields of architecture and design education, was used as the basis for a collaborative social constructivist—and constructionist—approach to learning. Smartphones offered students the potential to develop applications for a context that is both immediate and clearly relevant to the ways in which they utilize and interact with technology.

Children Programming Games: A Strategy for Measuring Computational Learning

Mon, 12/22/2014 - 19:00
Linda Werner, Jill Denner, Shannon Campe

This article reports the results of a study of the relationship of computer game programming to computational learning (CL). The results contribute to the growing body of knowledge about how to define and measure CL among children by proposing a new concept, Game Computational Sophistication (GCS). We analyzed 231 games programmed by 325 11 and 12 year olds with a range of prior computer experience who attended a voluntary technology class during or after school. Findings suggest that students’ games exhibited a range of GCS: programs composed of sequences of simple programming constructs; programs composed of programming constructs, some of which are used to implement higher-order patterns; and programs composed of game mechanics built from combinations of patterns “glued” together with simple programming constructs.

A Qualitative Study of Students' Computational Thinking Skills in a Data-Driven Computing Class

Thu, 12/11/2014 - 19:00
Timothy T. Yuen, Kay A. Robbins

Critical thinking, problem solving, the use of tools, and the ability to consume and analyze information are important skills for the 21st century workforce. This article presents a qualitative case study that follows five undergraduate biology majors in a computer science course (CS0). This CS0 course teaches programming within a data-driven context and is part of a university-wide initiative to improve students' quantitative scholarship. In this course, students learn computing concepts and computational thinking by writing programs in MATLAB that compute with data, by performing meaningful analyses, and by writing about the results. The goal of the study reported here is to better understand the thought processes students use in such a data-driven approach.