Rebecca Schreib

dblp:379/5672 · DBLP profile ↗
← Back
4ranked-venue papers
0as first author
4since 2021 · last 2026
0009-0008-6335-3811ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 4 · 4 since 2021
YearPublicationVenuePosition
2026 Quantifying Student Mistakes and Misconceptions of the Run-Time Memory Layout of Java Programs
abstract
Novice programmers often have flawed mental models of program execution, and knowing what misconceptions they are likely to hold can help instructors to prevent and correct these misconceptions. Recently, tools have emerged which task students with simulating a program's execution and constructing the run-time memory layout. Such tools create new opportunities to systematically log student errors and identify flaws in their mental models --- including low-level misconceptions that may not be visible when looking at other artifacts such as student-written programs. This paper analyzes log data that was collected by instrumenting one such tool. We identify the most common mistakes that students made, as well as mistakes that were particularly likely to persist even in the face of targeted feedback. We also present the results of a conceptual pretest-posttest designed to help contextualize these mistakes.
Michelle Le Pham, Rebecca Schreib
ITiCSE (1)2
2026 Learning to Assess Software Quality: A Metric-Guided Peer Code Review Tool for Large-Scale Software
abstract
Software engineers must be able to create software that is not only correct, but of high quality. Consequently, computer science educators must emphasize software design principles and give students timely, accurate feedback on code quality. Prior work has shown that peer code review can effectively reinforce software design principles while providing timely feedback at scale; however, most existing tools have been designed primarily for introductory courses. This paper presents the design and evaluation of EvOwl, a peer code review tool tailored to upper-level software engineering courses. EvOwl includes novel features that are designed with large-scale and long-term projects in mind, such as support for using code coverage to focus students' attention on specific features within a large code base and a metric-guided approach to help students compare software quality across different implementations.
Adam Tillou, Praise O. Mayor, Scott Rixner, Rebecca Schreib
ITiCSE (1)4
2025 An Interactive Visualization Tool for Teaching Garbage Collection
abstract
Foundational knowledge about programming language design, including knowledge about the varied ways in which different languages address common challenges, benefits computer science students in several ways. It equips students to make informed decisions about which language to use for a given task, and it also enables students to better reason about the execution of their programs. One common challenge across languages is memory management, with many modern languages adopting automated techniques such as garbage collection (GC). With the goal of helping students to understand GC generally, as well as the distinctions between different GC algorithms, this paper presents an interactive tool that enables students to step through the execution of a program using any of three different GC algorithms: reference counting, mark-sweep, and mark-compact. The tool was piloted in a second-year course and evaluated using a controlled experiment. The experimental group used the tool to walk through three exercises using the three GC algorithms, while the control group completed the same exercises manually. On a post-test given during the next class session, the experimental group outperformed the control group by a significant margin (p < 0.00001; Cohen's d = 0.88).
Michelle Le Pham, Joshua Stallings, Praise O. Mayor, Rebecca Schreib
ITiCSE (1)4
2024 MemStep: An Interactive Tool for Constructing and Visualizing the Run-Time Memory Layout of Java Programs
abstract
Novice programmers often struggle to build accurate mental models of computation, which hinders their ability to understand, debug, and optimize programs. This paper presents MemStep, an interactive visualization tool designed to help students develop robust and accurate mental models of computation. MemStep enables students to "step'' through the execution of Java programs and visualize the run-time layout of memory. It actively involves students in the process of constructing these visualizations by requiring that they identify each memory operation --- such as allocating an object on the heap, allocating a new stack frame, or adding a variable to the stack --- that occurs during the execution of each line of code. When a student correctly completes an operation, the stack or heap is visually updated to reflect the operation that was performed. If a student makes a mistake, they receive targeted feedback and can retry until they reach the correct answer. MemStep was piloted in a sophomore-level course on program design and evaluated using a controlled experiment, where it was found to be at least as effective and more engaging as compared to traditional learning activities.
Michelle Le Pham, Anna Nguyen, Rebecca Schreib
ITiCSE (1)3