-A A +A

ACM Transactions on Computing Education

Subscribe to ACM Transactions on Computing Education feed
Updated: 48 min 51 sec ago

An Improved Grade Point Average, With Applications to CS Undergraduate Education Analytics

Wed, 09/12/2018 - 20:00
Jonathan H. Tomkin, Matthew West, Geoffrey L. Herman

We present a methodological improvement for calculating Grade Point Averages (GPAs). Heterogeneity in grading between courses systematically biases observed GPAs for individual students: the GPA observed depends on course selection. We show how a logistic model can account for course selection by simulating how every student in a sample would perform if they took all available courses, giving a new “modeled GPA.” We then use 10 years of grade data from a large university to demonstrate that this modeled GPA is a more accurate predictor of student performance in individual courses than the observed GPA. Using Computer Science (CS) as an example learning analytics application, it is found that required CS courses give significantly lower grades than average courses.

How do Gender, Learning Goals, and Forum Participation Predict Persistence in a Computer Science MOOC?

Wed, 09/12/2018 - 20:00
R. Wes Crues, Genevieve M. Henricks, Michelle Perry, Suma Bhat, Carolyn J. Anderson, Najmuddin Shaik, Lawrence Angrave

Massive Open Online Courses (MOOCs)—in part, because of their free, flexible, and relatively anonymous nature—may provide a means for helping overcome the large gender gap in Computer Science (CS). This study examines why women and men chose to enroll in a CS MOOC and how this is related to successful behavior in the course by (a) using k-means clustering to explore the reasons why women and men enrolled in this MOOC and then (b) analyzing if these reasons are related to forum participation and, ultimately, persistence in the course.

Peer Review in CS2: Conceptual Learning and High-Level Thinking

Wed, 09/05/2018 - 20:00
Scott Alexander Turner, Manuel A. Pérez-Quiñones, Stephen H. Edwards

In computer science, students could benefit from exposure to critical programming concepts from multiple perspectives. Peer review is one method to allow students to experience authentic uses of the concepts in an activity that is not itself programming. In this work, we examine how to implement the peer review process in early, object-oriented computer science courses as a way to increase the students’ knowledge of programming concepts, specifically Abstraction, Decomposition, and Encapsulation, and to develop their higher-level thinking skills. We are exploring the peer review process, the effects of the type of review on the reviewers, and the results this has on the students’ learning.

The Core Cyber-Defense Knowledge, Skills, and Abilities That Cybersecurity Students Should Learn in School: Results from Interviews with Cybersecurity Professionals

Wed, 08/08/2018 - 20:00
Keith S. Jones, Akbar Siami Namin, Miriam E. Armstrong

Our cybersecurity workforce needs surpass our ability to meet them. These needs could be mitigated by developing relevant curricula that prioritize the knowledge, skills, and abilities (KSAs) most important to cybersecurity jobs. To identify the KSAs needed for performing cybersecurity jobs, we administered survey interviews to 44 cyber professionals at the premier hacker conferences Black Hat 2016 and DEF CON 24. Questions concerned 32 KSAs related to cyber defense. Participants rated how important each KSA was to their job and indicated where they had learned that KSA. Fifteen of these KSAs were rated as being of higher-than-neutral importance. Participants also answered open-ended questions meant to uncover additional KSAs that are important to cyber-defense work.

A Controlled Experiment on Python vs C for an Introductory Programming Course: Students’ Outcomes

Wed, 08/08/2018 - 20:00
Jacques Wainer, Eduardo C. Xavier

We performed a controlled experiment comparing a C and a Python Introductory Programming course. Three faculty members at University of Campinas, Brazil, taught the same CS1 course for the same majors in two different semesters, one version in Python and one in C, with a total of 391 students involved in the experiment. We measured the dropout rate, the failure rate, the grades on the two exams, the proportion of completed lab assignments, and the number of submissions per completed assignment. There was no difference in the dropout rate. The failure rate for Python was 16.9% against 23.1% for C. The effect size (Cohen’s D) on the comparison of Python against C on the midterm exam was 0.27, and 0.38 for the final exam.

Classroom-Based Research Projects for Computing Teachers: Facilitating Professional Learning

Wed, 08/08/2018 - 20:00
Sue Sentance, Jane Sinclair, Carl Simmons, Andrew Csizmadia

The introduction of Computing to the national curriculum in England has led to a situation where in-service teachers need to develop subject knowledge and pedagogical expertise in computer science, which presents a significant challenge. Professional learning opportunities can support this; these may be most effective when situated in the teachers’ own working practices. This article describes a project to support Computing teachers in developing pedagogical skills by carrying out classroom-based research in their schools. A group of 22 primary (Grades K--5) and secondary (Grades 6--10) teachers from schools across England planned, designed, and implemented research projects either individually or in small groups, supported by a team of university colleagues.

Errors and Complications in SQL Query Formulation

Wed, 08/08/2018 - 20:00
Toni Taipalus, Mikko Siponen, Tero Vartiainen

SQL is taught in almost all university level database courses, yet SQL has received relatively little attention in educational research. In this study, we present a database management system independent categorization of SQL query errors that students make in an introductory database course. We base the categorization on previous literature, present a class of logical errors that has not been studied in detail, and review and complement these findings by analyzing over 33,000 SQL queries submitted by students. Our analysis verifies error findings presented in previous literature and reveals new types of errors, namely logical errors recurring in similar manners among different students.

Capstones and Large Projects in Computing Education

Tue, 07/10/2018 - 20:00
Mark Sherriff, Sarah Heckman

Capstone and large projects in computing education are used as a vehicle for giving students as close to a “real-world” experience in software development as possible within the constraints of a computing degree program. This special issue presents four articles that focus on empirical research on capstone or other large-scale projects. These articles discuss areas such as project selection, working with external stakeholders, choosing the appropriate development methodology, incorporating creative activities to support student engagement, and learning.

A Multi-Institutional Perspective on H/FOSS Projects in the Computing Curriculum

Tue, 07/10/2018 - 20:00
Grant Braught, John Maccormick, James Bowring, Quinn Burke, Barbara Cutler, David Goldschmidt, Mukkai Krishnamoorthy, Wesley Turner, Steven Huss-Lederman, Bonnie Mackellar, Allen Tucker

Many computer science programs have capstone experiences or project courses that allow students to integrate knowledge from the full breadth of their major. Such capstone projects may be student-designed, instructor-designed, designed in conjunction with outside companies, or integrated with ongoing free and open source (FOSS) projects. The literature shows that the FOSS approach has attracted a great deal of interest, in particular when implemented with projects that have humanitarian goals (HFOSS). In this article, we describe five unique models from five distinct types of institutions for incorporating sustained FOSS or HFOSS (alternatively H/FOSS) project work into capstone experiences or courses. The goal is to provide instructors wishing to integrate open source experiences into their curriculum with additional perspectives and resources to help in adapting this approach to the specific needs and goals of their institution and students.

Involving External Stakeholders in Project Courses

Tue, 07/10/2018 - 20:00
Jan-Philipp Steghöfer, Håkan Burden, Regina Hebig, Gul Calikli, Robert Feldt, Imed Hammouda, Jennifer Horkoff, Eric Knauss, Grischa Liebel

Problem: The involvement of external stakeholders in capstone projects and project courses is desirable due to its potential positive effects on the students. Capstone projects particularly profit from the inclusion of an industrial partner to make the project relevant and help students acquire professional skills. In addition, an increasing push towards education that is aligned with industry and incorporates industrial partners can be observed. However, the involvement of external stakeholders in teaching moments can create friction and could, in the worst case, lead to frustration of all involved parties. Contribution: We developed a model that allows analysing the involvement of external stakeholders in university courses both in a retrospective fashion, to gain insights from past course instances, and in a constructive fashion, to plan the involvement of external stakeholders.

A Scalable Methodology to Guide Student Teams Executing Computing Projects

Tue, 07/10/2018 - 20:00
Jeffrey S. Saltz, Robert R. Heckman

This article reports on a sequential mixed-methods research study, which compared different approaches on how to guide students through a semester-long data science project. Four different methodologies, ranging from a traditional “just assign some intermediate milestones” to other more Agile methodologies, were first compared via a controlled experiment. The results of this initial experiment showed that the project methodology used made a significant difference in student outcomes. Surprisingly, the Agile Kanban approach was found to be much more effective than the Agile Scrum methodology. Based on these initial results, in the second semester, we focused on use of the Kanban methodology.

Software Theater—Teaching Demo-Oriented Prototyping

Tue, 07/10/2018 - 20:00
Stephan Krusche, Dora Dzvonyar, Han Xu, Bernd Bruegge

Modern capstone courses use agile methods to deliver and demonstrate software early in the project. However, a simple demonstration of functional and static aspects does not provide real-world software usage context, although this is integral to understand software requirements. Software engineering involves capabilities such as creativity, imagination, and interaction, which are typically not emphasized in software engineering courses. A more engaging, dynamic way of presenting software prototypes is needed to demonstrate the context in which the software is used. We combine agile methods, scenario-based design, and theatrical aspects into software theater, an approach to present visionary scenarios using techniques borrowed from theater and film, including props and humor.