-A A +A

ACM Transactions on Computing Education

Subscribe to ACM Transactions on Computing Education feed
Updated: 27 min 17 sec ago

Design and Evaluation of an “Athletic” Approach to Software Engineering Education

Fri, 08/16/2019 - 20:00
Philip Johnson

Modern web application development provides an attractive application area for introductory software engineering education, as students have direct experience with the domain and it provides them with the potential to gain practical, real-world skills. Achieving this potential requires the development of competency with a multiple component tech stack for web application development, which is challenging to acquire within a single semester. In this research, we designed, implemented, and evaluated a new pedagogy called “athletic software engineering” which is intended to help students efficiently and effectively acquire competency with a multiple component tech stack as a precursor to a web application development project.

A Systematic Investigation of Replications in Computing Education Research

Fri, 08/16/2019 - 20:00
Qiang Hao, David H. Smith IV, Naitra Iriumi, Michail Tsikerdekis, Andrew J. Ko

As the societal demands for application and knowledge in computer science (CS) increase, CS student enrollment keeps growing rapidly around the world. By continuously improving the efficacy of computing education and providing guidelines for learning and teaching practice, computing education research plays a vital role in addressing both educational and societal challenges that emerge from the growth of CS students. Given the significant role of computing education research, it is important to ensure the reliability of studies in this field. The extent to which studies can be replicated in a field is one of the most important standards for reliability. Different fields have paid increasing attention to the replication rates of their studies, but the replication rate of computing education was never systematically studied.

Integrating Ethics within Machine-learning Courses

Thu, 08/01/2019 - 20:00
Jeffrey Saltz, Michael Skirpan, Casey Fiesler, Micha Gorelick, Tom Yeh, Robert Heckman, Neil Dewar, Nathan Beard

This article establishes and addresses opportunities for ethics integration into Machine-learning (ML) courses. Following a survey of the history of computing ethics and the current need for ethical consideration within ML, we consider the current state of ML ethics education via an exploratory analysis of course syllabi in computing programs. The results reveal that though ethics is part of the overall educational landscape in these programs, it is not frequently a part of core technical ML courses. To help address this gap, we offer a preliminary framework, developed via a systematic literature review, of relevant ethics questions that should be addressed within an ML project.

Social Genesis in Computing Education

Thu, 08/01/2019 - 20:00
Josh Tenenberg, Donald Chinn

It is common to think of learning as the acquisition of knowledge by an individual learner. Starting a century ago, Lev Vygotsky developed a different perspective on learning, initiating a tradition of educational research whose momentum and influence continue to grow. One of Vygotsky's key principles is the general genetic law of cultural development that states that whatever skilled cognition that individuals carry out within their own minds is preceded by homologous activity carried out by a social group of which this individual was a part. In linking the individual and society through this law, learning is not simply a matter of the acquisition of domain knowledge.

Using Informed Design in Informal Computer Science Programs to Increase Youths’ Interest, Self-efficacy, and Perceptions of Parental Support

Thu, 08/01/2019 - 20:00
Jody Clarke-Midura, Chongning Sun, Katarina Pantic, Frederick Poole, Vicki Allan

Our work is situated in research on Computer Science (CS) learning in informal learning environments and literature on the factors that influence girls to enter CS. In this article, we outline design choices around the creation of a summer programming camp for middle school youth. In addition, we describe a near-peer mentoring model we used that was influenced by Bandura's self-efficacy theory. The purpose of this article, apart from promoting transparency of program design, was to evaluate the effectiveness of our camp design in terms of increasing youths’ interest, self-efficacy beliefs, and perceptions of parental support. We found significant gains for all three of these concepts.

What Is Hard about Teaching Machine Learning to Non-Majors? Insights from Classifying Instructors’ Learning Goals

Fri, 07/19/2019 - 20:00
Elisabeth Sulmont, Elizabeth Patitsas, Jeremy R. Cooperstock

Given its societal impacts and applications to numerous fields, machine learning (ML) is an important topic to understand for many students outside of computer science and statistics. However, machine-learning education research is nascent, and research on this subject for non-majors thus far has only focused on curricula and courseware. We interviewed 10 instructors of ML courses for non-majors, inquiring as to what their students find both easy and difficult about machine learning. While ML has a reputation for having algorithms that are difficult to understand, in practice our participating instructors reported that it was not the algorithms that were difficult to teach, but the higher-level design decisions.

State Case Study of Computing Education Governance

Mon, 07/15/2019 - 20:00
Megean Garvin, Michael Neary, Marie Desjardins

High school computing education reform efforts have been ongoing across the United States, particularly in the past decade. Although national Computer Science (CS) for All initiatives are promising, states retain control over education policies. Recent computing education reform efforts in the state of Maryland (U.S.A.) focused on providing every public high school student with access to high-quality high school computing courses. Such access provides exposure to computing careers and better prepares a diverse pool of students for computing majors in college and the workforce. This comprehensive embedded multi-level case study examines the state’s computing education reform efforts from 2010 through 2016.

Pedagogy that Supports Computer Science for

Mon, 07/15/2019 - 20:00
Jean J. Ryoo

The Computer Science (CS) for All movement has taken hold of the United States and CS education is rapidly expanding across nations throughout the world. Yet, as curricula and professional development opportunities are developed, key questions remain about what “works” for engaging youth in CS education, especially those who are historically underrepresented in the field (including young women, students of color, low-income students). In response, this study answers the questions: What teaching practices do students—who are historically underrepresented in CS—believe are most effective for engaging their interest in CS learning? What pedagogical actions do CS teachers identify as most effective for engaging students? And what do these engaging teaching practices look like in the classroom? Through a qualitative study following three different urban high school Exploring Computer Science classrooms over an entire school year (n = 70 students, 3 teachers; >105h of observation data; >50 interviews with students and teachers), ...

Brains and Blocks: Introducing Novice Programmers to Brain-Computer Interface Application Development

Mon, 07/15/2019 - 20:00
Chris S. Crawford, Juan E. Gilbert

Brain-Computer Interface (BCI) hardware is becoming more affordable and accessible. However, there is limited work investigating ways to design software that broadens participation with BCI technology. In this article, we present a block-based programming environment designed to assist novice programmers with creating BCI applications. We also discuss learning barriers encountered by novice programmers developing neurofeedback applications. Our findings suggest that visual programming assists novice programmers with building basic BCI applications; however, students may experience understanding and learning barriers initially.

Programming Embodied Interactions with a Remotely Controlled Educational Robot

Mon, 07/15/2019 - 20:00
Alexandros Merkouris, Konstantinos Chorianopoulos

Contemporary research has explored educational robotics, but it has not examined the development of computational thinking in the context of programming embodied interactions. Apart from the goal of the robot and how the robot will interact with its environment, another important aspect that should be taken into consideration is whether and how the user will physically interact with the robot. We recruited 36 middle school students to participate in a six-session robotics curriculum in an attempt to expand their learning in computational thinking. Participants were asked to develop interfaces for the remote control of a robot using diverse interaction styles from low-level to high-level embodiment, such as touch, speech, and hand and full-body gestures.

A New Look at Novice Programmer Errors

Wed, 07/10/2019 - 20:00
Davin McCall, Michael Kölling

The types of programming errors that novice programmers make and struggle to resolve have long been of interest to researchers. Various past studies have analyzed the frequency of compiler diagnostic messages. This information, however, does not have a direct correlation to the types of errors students make, due to the inaccuracy and imprecision of diagnostic messages. Furthermore, few attempts have been made to determine the severity of different kinds of errors in terms other than frequency of occurrence. Previously, we developed a method for meaningful categorization of errors, and produced a frequency distribution of these error categories; in this article, we extend the previous method to also make a determination of error difficulty, in order to give a better measurement of the overall severity of different kinds of errors.

Learning to Get Literal: Investigating Reference-Point Difficulties in Novice Programming

Tue, 05/28/2019 - 20:00
Craig S. Miller, Amber Settle

We investigate conditions in which novices make some reference errors when programming. We asked students from introductory programming courses to perform a simple code-writing task that required constructing references to objects and their attributes. By experimentally manipulating the nature of the attributes in the tasks, from identifying attributes (e.g., title or label) to descriptive attributes (e.g., calories or texture), the study revealed the relative frequencies with which students mistakenly omit the name of an identifying attribute while attempting to reference its value. We explain how these reference-point shifts are consistent with the use of metonymy, a form of figurative expression in human communication.

Incorporating Computing Professionals’ Know-how: Differences between Assessment by Students, Academics, and Professional Experts

Mon, 05/20/2019 - 20:00
Ana Sánchez, César Domínguez, Jose Miguel Blanco, Arturo Jaime

It is important for both computer science academics and students to clearly comprehend the differences between academic and professional perspectives in terms of assessing a deliverable. It is especially interesting to determine whether the aspects deemed important to evaluate by a computer science expert are the same as those established by academics and students. Such potential discrepancies are indicative of the unexpected challenges students may encounter once they graduate and begin working. In this article, we propose a learning activity in which computer science students made a video about their future profession after hearing an expert in the field who discussed about the characteristics and difficulties of his or her work.

Source-code Similarity Detection and Detection Tools Used in Academia: A Systematic Review

Mon, 05/20/2019 - 20:00
Matija Novak, Mike Joy, Dragutin Kermek

Teachers deal with plagiarism on a regular basis, so they try to prevent and detect plagiarism, a task that is complicated by the large size of some classes. Students who cheat often try to hide their plagiarism (obfuscate), and many different similarity detection engines (often called plagiarism detection tools) have been built to help teachers. This article focuses only on plagiarism detection and presents a detailed systematic review of the field of source-code plagiarism detection in academia. This review gives an overview of definitions of plagiarism, plagiarism detection tools, comparison metrics, obfuscation methods, datasets used for comparison, and algorithm types. Perspectives on the meaning of source-code plagiarism detection in academia are presented, together with categorisations of the available detection tools and analyses of their effectiveness.

Computer Science Pedagogical Content Knowledge: Characterizing Teacher Performance

Mon, 05/20/2019 - 20:00
Aman Yadav, Marc Berges

Computer science education efforts are expanding across the globe to equip students with the necessary computing skills for today’s digital world. However, preparing students to become literate in computing activities requires the training of tens of thousands of teachers in computer science. The discrepancy between student needs and teacher preparation in computer science has raised questions of quality teachers, particularly for teachers who do not possess adequate content or pedagogical knowledge to teach computer science efficiently. To address this issue, we designed an instrument to measure knowledge needed to teach computer science (i.e., computer science pedagogical content knowledge). Results exhibited that our instrument measured aspects of teachers’ computer science pedagogical content knowledge; however, teachers’ prior background in teaching did not influence their performance.