Demo Data from VLDB 2026 / reviewers in the wild / expert
Maria Jump
dblp:47/1416
· DBLP profile ↗
8ranked-venue papers
5as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 4 first-authorHuman-computer interaction and ubiquitous computing · 3 · 1 first-author · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
2 papers |
Program analysis · 56% Runtime systems and virtual machines · 35% Software maintenance and evolution · 8% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 91% Memory systems · 9% |
Topics — the 6 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
dynamic analysis |
0.1 | 1 | 2007 | Cork: dynamic memory leak detection for garbage-collected languages · POPL 2007 |
Runtime systems and virtual machines
garbage collection |
0.1 | 1 | 2007 | Cork: dynamic memory leak detection for garbage-collected languages · POPL 2007 |
Program analysis › error detection
memory leak detection |
0.1 | 1 | 2007 | Cork: dynamic memory leak detection for garbage-collected languages · POPL 2007 |
Performance modeling and evaluation
benchmarking |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Performance modeling and evaluation › benchmarking › benchmark design
benchmark suite design |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Performance modeling and evaluation
workload characterization |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Methods — techniques the papers use, named apart from their topics
time-series metrics · 0.1statistical metrics · 0.1type points-from graph · 0.1heap differencing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Designing Autograders for Novice ProgrammersabstractAutograders have become an invaluable tool for instructors of computer programming courses. They not only ease the burden of manually grading many assignments, but more importantly provide students with a way to receive immediate feedback about their work giving them opportunities to revise and resubmit. However, autograder messages suffer from the same problem as compiler messages; they are often confusing and unhelpful to the students they are trying to help. This is particularly true for novice programmers. Chad Hogg, Maria Jump |
SIGCSE (2) | 2 |
| 2020 | Effective Practices for Online TeachingabstractHave you been asked to teach online and don't know how to get started? Have you delivered your course online to mixed reviews? Have you been teaching online for years? As more and more courses are begin offered online in an effort to deliver a quality education to a larger, more diverse group of students, one things is clear -- many of the pedagogical practices that we have come to rely on in our on ground courses do not translate to an online course. How do the on best practices in online education adapt to CS? This BOF will provide a platform for discussion of what it means to teach an instructor-led, asynchronous online course in CS. We will discuss methodologies used by online faculty that were particularly successful in helping students learn. Topics may include designing courses for distance learning, using media and technology tools effectively, engaging the online learner, building community among students, motivating student persistence and success, and/or building an online presence. Maria Jump, Martin Schedlbauer |
SIGCSE | 1 |
| 2013 | Trace-based teaching in early programming coursesabstractStudents in introductory programming courses struggle with building the mental models that correctly describe concepts such as variables, subroutine calls, and dynamic memory usage. This struggle leads to lowered student learning outcomes and, it has been argued, the high failure and dropout rates commonly seen in these courses. We will show that accurately modeling what is occurring in memory and requiring students to trace code using this model improves student performance and increases retention. This paper presents the results of an experiment in which introductory programming courses were organized around code tracing. We present program memory traces, a new approach for tracing code that models what occurs in memory as a program executes. We use these traces to drive our lectures and to act as key pieces of our active learning activities. We report the results of student surveys showing that instructor tracing was rated as the most valuable piece of the course and students' overwhelming agreement on the importance of the tracing activities for their learning. Finally, we demonstrate that trace-based teaching led to statistically significant improvements student grades, decreased drop and failure rates, and an improvement in students' programming abilities. Matthew Hertz, Maria Jump |
SIGCSE | 2 |
| 2010 | Detecting memory leaks in managed languages with CorkabstractAbstract A memory leak in a managed language occurs when the program inadvertently maintains references to objects that it no longer needs. Memory leaks cause systematic heap growth that degrade performance and can result in program crashes after perhaps days or weeks of execution. Prior approaches for detecting memory leaks rely on heap differencing or detailed object statistics which store state proportional to the number of objects in the heap. These overheads preclude their use on the same processor for deployed long‐running applications. This paper introduces Cork as a tool that accurately identifies heap growth caused by leaks. It is space efficient (adding less than 1% to the heap) and time efficient (adding 2.3% on average to total execution time). We implement this approach of examining and summarizing the class of live objects during garbage collection in a class points‐from graph (CPFG). Each node in the CPFG represents a class and edges between nodes represent references between objects of the specific classes. Cork annotates nodes and edges with the corresponding volume of live objects. Cork identifies growing data structures across multiple collections and computes a class slice to identify leaks for the user. We experiment with two functions for identifying growth and show that Cork is accurate: it identifies systematic heap growth with no false positives in 4 of 15 benchmarks we tested. Cork's slice report enabled us to quickly identify and eliminate growing data structures in large and unfamiliar programs, something their developers had not previously done. Copyright © 2009 John Wiley & Sons, Ltd. Maria Jump, Kathryn S. McKinley |
Softw. Pract. Exp. | 1 |
| 2009 | Dynamic shape analysis via degree metricsabstractApplications continue to increase in size and complexity which makes debugging and program understanding more challenging. Programs written in managed languages, such as Java, C#, and Ruby, further exacerbate this challenge because they tend to encode much of their state in the heap. This paper introduces dynamic shape analysis, which seeks to characterize data structures in the heap by dynamically summarizing the object pointer relationships and detecting dynamic degree metrics based on class. The analysis identifies recursive data structures, automatically discovers dynamic degree metrics, and reports errors when degree metrics are violated. Uses of dynamic shape analysis include helping programmers find data structure errors during development, generating assertions for verification with static or dynamic analysis, and detecting subtle errors in deployment. We implement dynamic shape analysis in a Java Virtual Machine (JVM). Using SpecJVM and DaCapo benchmarks, we show that most objects in the heap are part of recursive data structures that maintain strong dynamic degree metrics. We show that once dynamic shape analysis establishes degree metrics from correct executions, it can find automatically inserted errors on subsequent executions in microbenchmarks. These suggests it can be used in deployment for improving software reliability. Maria Jump, Kathryn S. McKinley |
ISMM | 1 |
| 2007 | Cork: dynamic memory leak detection for garbage-collected languagesabstractA memory leak in a garbage-collected program occurs when the program inadvertently maintains references to objects that it no longer needs. Memory leaks cause systematic heap growth, degrading performance and resulting in program crashes after perhaps days or weeks of execution. Prior approaches for detecting memory leaks rely on heap differencing or detailed object statistics which store state proportional to the number of objects in the heap. These overheads preclude their use on the same processor for deployed long-running applications.This paper introduces a dynamic heap-summarization technique based on type that accurately identifies leaks, is space efficient (adding less than 1% to the heap), and is time efficient (adding 2.3% on average to total execution time). We implement this approach in Cork which utilizes dynamic type information and garbage collection to summarize the live objects in a type points-from graph (TPFG) whose nodes (types) and edges (references between types) are annotated with volume. Cork compares TPFGs across multiple collections, identifies growing data structures, and computes a type slice for the user. Cork is accurate: it identifies systematic heap growth with no false positives in 4 of 15 benchmarks we tested. Cork's slice report enabled us (non-experts) to quickly eliminate growing data structures in SPECjbb2000 and Elipse, something their developers had not previously done. Cork is accurate, scalable, and efficient enough to consider using online. Maria Jump, Kathryn S. McKinley |
POPL | 1 |
| 2006 | The DaCapo benchmarks: java benchmarking development and analysisabstractSince benchmarks drive computer science research and industry product development, which ones we use and how we evaluate them are key questions for the community. Despite complex runtime tradeoffs due to dynamic compilation and garbage collection required for Java programs, many evaluations still use methodologies developed for C, C++, and Fortran. SPEC, the dominant purveyor of benchmarks, compounded this problem by institutionalizing these methodologies for their Java benchmark suite. This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks. We demonstrate that the complex interactions of (1) architecture, (2) compiler, (3) virtual machine, (4) memory management, and (5) application require more extensive evaluation than C, C++, and Fortran which stress (4) much less, and do not require (3). We use and introduce new value, time-series, and statistical metrics for static and dynamic properties such as code complexity, code size, heap composition, and pointer mutations. No benchmark suite is definitive, but these metrics show that DaCapo improves over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements. This paper takes a step towards improving methodologies for choosing and evaluating benchmarks to foster innovation in system design and implementation for Java and other managed languages. Steve Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khan, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony L. Hosking, Maria Jump, Han Bok Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, Ben Wiedermann |
OOPSLA | 13 |
| 2004 | Dynamic object sampling for pretenuringabstractMany state-of-the-art garbage collectors are generational, collecting the young nursery objects more frequently than old objects. These collectors perform well because young objects tend to die at a higher rate than old ones. However, these collectors do not examine object lifetimes with respect to any particular program or allocation site. This paper introduces low-cost object sampling to dynamically determine lifetimes. The sampler marks an object and records its allocation site every n bytes of allocation. The collector then computes per-site nursery survival rates. Sampling degrades total performance by only 3 on average for sample rates of 256 bytes in jikes, a rate at which overall lifetime accuracy compares well with sampling every object. An adaptive collector can use this information to tune itself. For example, pretenuring decreases nursery collection work by allocating new, but long-lived, objects directly into the mature space. We introduce a dynamic pretenuring mechanism that detects long lived allocation sites and pretenures them, given sufficient samples. To react to phase changes, it occasionally backsamples. As with previous online pretenuring, consistent performance improvements on SPECjvm98 benchmarks are difficult to attain since only two combine sufficient allocation load with high nursery survival. Our pretenuring system consistently improves one of these, javac, by 2% to 9% of total time by decreasing collection time by over a factor of two. Sampling and pretenuring overheads slow down all the others. This paper thus provides an efficient sampling mechanism that accurately predicts lifetimes, but leaves open optimization policies that can exploit this information. Maria Jump, Steve Blackburn, Kathryn S. McKinley |
ISMM | 1 |