VLDB 2026 Research / reviewers in the wild / expert
Amey Karkare
dblp:93/511
· DBLP profile ↗
20ranked-venue papers
1as first author
4since 2021 · last 2025
0000-0002-3664-6490ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 1 since 2021Human-computer interaction and ubiquitous computing · 7 · 1 first-author · 2 since 2021Systems, architecture and hardware · 4 · 1 since 2021Artificial intelligence and machine learning · 2 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1
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.
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
GPUs and heterogeneous computing · 74% Distributed systems · 13% Processor architecture and microarchitecture · 13% | |
| Software engineering, system software, and programming languages
5 papers |
Debugging and program repair · 35% Program synthesis and code generation · 22% Compilers and program optimization · 18% | |
| Interdisciplinary, comprehensive, and emerging computing
3 papers |
Computing education · 100% | |
| Theoretical computer science
1 paper |
Automated reasoning and model checking · 50% Logic in computer science · 50% |
Topics — the 25 heaviest of 25, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Computing education › programming education
automated feedback |
0.7 | 2 | 2019 | Targeted Example Generation for Compilation Errors · ASE 2019 A feasibility study of using automated program repair for introductory programming assignments · ESEC/SIGSOFT FSE 2017 |
Computing education
programming education |
0.4 | 1 | 2019 | Targeted Example Generation for Compilation Errors · ASE 2019 |
Computing education
intelligent tutoring systems |
0.3 | 1 | 2017 | A feasibility study of using automated program repair for introductory programming assignments · ESEC/SIGSOFT FSE 2017 |
Debugging and program repair
automated program repair |
0.3 | 1 | 2017 | A feasibility study of using automated program repair for introductory programming assignments · ESEC/SIGSOFT FSE 2017 |
Compilers and program optimization › accelerator compilation
GPU compiler optimization |
0.3 | 1 | 2017 | Scratchpad Sharing in GPUs · ACM Trans. Archit. Code Optim. 2017 |
Debugging and program repair › automated program repair
repair of introductory programming assignments |
0.3 | 1 | 2017 | A feasibility study of using automated program repair for introductory programming assignments · ESEC/SIGSOFT FSE 2017 |
GPUs and heterogeneous computing
GPU memory management |
0.3 | 1 | 2017 | Scratchpad Sharing in GPUs · ACM Trans. Archit. Code Optim. 2017 |
GPUs and heterogeneous computing › GPU scheduling
GPU thread scheduling |
0.3 | 1 | 2017 | Scratchpad Sharing in GPUs · ACM Trans. Archit. Code Optim. 2017 |
GPUs and heterogeneous computing › GPU scheduling
warp scheduling |
0.3 | 1 | 2017 | Scratchpad Sharing in GPUs · ACM Trans. Archit. Code Optim. 2017 |
Program synthesis and code generation
code generation from natural language |
0.2 | 1 | 2016 | Program synthesis using natural language · ICSE 2016 |
GPUs and heterogeneous computing
GPU performance optimization |
0.2 | 1 | 2016 | Improving GPU Performance Through Resource Sharing · HPDC 2016 |
Distributed systems
resource sharing |
0.2 | 1 | 2016 | Improving GPU Performance Through Resource Sharing · HPDC 2016 |
Processor architecture and microarchitecture › many-core architecture
streaming multiprocessor |
0.2 | 1 | 2016 | Improving GPU Performance Through Resource Sharing · HPDC 2016 |
GPUs and heterogeneous computing › GPU scheduling
thread block scheduling |
0.2 | 1 | 2016 | Improving GPU Performance Through Resource Sharing · HPDC 2016 |
Logic in computer science › proof theory
natural deduction |
0.2 | 1 | 2013 | Automatically Generating Problems and Solutions for Natural Deduction · IJCAI 2013 |
Automated reasoning and model checking › theorem proving
proof generation |
0.2 | 1 | 2013 | Automatically Generating Problems and Solutions for Natural Deduction · IJCAI 2013 |
Program synthesis and code generation
example generation |
0.1 | 1 | 2019 | Targeted Example Generation for Compilation Errors · ASE 2019 |
Software testing
test generation |
0.1 | 1 | 2019 | Targeted Example Generation for Compilation Errors · ASE 2019 |
GPUs and heterogeneous computing › GPU performance analysis
GPU utilization |
0.1 | 1 | 2016 | Improving GPU Performance Through Resource Sharing · HPDC 2016 |
Program analysis
data flow analysis |
0.1 | 1 | 2007 | Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007 |
Runtime systems and virtual machines
garbage collection |
0.1 | 1 | 2007 | Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007 |
Program analysis
heap analysis |
0.1 | 1 | 2007 | Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007 |
Program analysis › data flow analysis
liveness analysis |
0.1 | 1 | 2007 | Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007 |
Computing education
educational technology |
0.0 | 1 | 2013 | Automatically Generating Problems and Solutions for Natural Deduction · IJCAI 2013 |
Computing education
problem generation |
0.0 | 1 | 2013 | Automatically Generating Problems and Solutions for Natural Deduction · IJCAI 2013 |
Methods — techniques the papers use, named apart from their topics
supervised classification · 0.8dense neural network · 0.8simulation · 0.6prophet · 0.6hint generation · 0.6genprog · 0.6angelix · 0.6AE · 0.6shared memory allocation · 0.2register allocation · 0.2natural language processing · 0.2access graphs · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | SCRUBD: Smart Contracts Reentrancy and Unhandled Exceptions Vulnerability DatasetabstractSmart Contracts (SCs) handle transactions in the Ethereum blockchain worth millions of United States dollars, making them a lucrative target for attackers seeking to exploit vulnerabilities and steal funds. The Ethereum community has developed a rich set of tools to detect vulnerabilities in SCs, including reentrancy (RE) and unhandled exceptions (UX). A dataset of SCs labeled with vulnerabilities is needed to evaluate the tools’ efficacy. Existing SC datasets with labeled vulnerabilities have limitations, such as covering only a limited range of vulnerability scenarios and containing incorrect labels. As a result, there is a lack of a standardized dataset to compare the performances of these tools. Our dataset, SCRUBD, aims to fill this gap. SCRUBD is a dataset of real-world SCs and synthesized SCs labeled with RE and UX vulnerabilities. The real-world SC dataset is labeled through crowdsourcing, followed by manual inspection by an experienced SC programmer, and covers both RE and UX vulnerabilities. On the other hand, the synthesized dataset is carefully crafted to cover various RE scenarios only. Using SCRUBD, we compared the performance of six popular vulnerability detection tools. Based on our study, we found that Slither outperforms other tools on a crowdsourced dataset in detecting RE vulnerabilities, while Sailfish outperforms other tools on a manually synthesized dataset for detecting RE. For UX vulnerabilities, Slither outperforms all other tools. Chavhan Sujeet Yashavant, MitrajSinh Chavda, Saurabh Kumar 0007, Amey Karkare, Angshuman Karmakar |
MSR | 4 |
| 2025 | Feasibility Study of Augmenting Teaching Assistants with AI for CS1 Programming FeedbackabstractWith the increasing adoption of Large Language Models (LLMs), there are proposals to replace human Teaching Assistants (TAs) with LLM-based AI agents for providing feedback to students. In this paper, we explore a new hybrid model where human TAs receive AI-generated feedback for CS1 programming exercises, which they can then review and modify as needed. We conducted a large-scale randomized intervention with 185 CS1 undergraduate students, comparing the efficacy of this hybrid approach against manual feedback and direct AI-generated feedback. Umair Z. Ahmed, Shubham Sahai, Ben Leong, Amey Karkare |
SIGCSE (1) | 4 |
| 2022 | LEGenT: Localizing Errors and Generating Testcases for CS1abstractIn a CS1 course, testcases are the most common way of providing feedback. However, manually designed testcases, even if carefully crafted, may miss out on certain crucial corner cases. These testcases are only generated once for the whole class and do not take into account errors generated by specific students. This paper presents LEGenT, an automated tool that generates personalized testcases for student submission. LEGenT first localizes a statement in the program that causes deviation from the expected behaviour. Then it generates testcases that expose the deviation to the student. Our premise is that such a targeted test would help students identify one of the early reasons for the deviation. Nimisha Agarwal, Amey Karkare |
L@S | 2 |
| 2021 | Instructor Performance on Progressively Complex Programming Tasks: A Multi-Institutional Study from IndiaabstractMost of the 2.5 million undergraduates in CS and related programs in India are enrolled in institutions outside the top tier. While official policies broadly acknowledge that many instructors at these institutions lack the requisite domain competence, there is no precise understanding of their limitations. In this study, we analyse the ability of CS instructors from 10 mid-tier institutions in Karnataka (India) to perform CS1-level programming tasks. While instructors can perform simple code tracing tasks with reasonable accuracy, we find a sharp fall in their ability to reason about code abstractly, to modify given code, and to write code. Our findings have immediate implications for faculty training initiatives, which must initially focus on these foundational skills. Viraj Kumar, Amey Karkare |
ITiCSE (1) | 2 |
| 2020 | Selection of Code Segments for Exclusion from Code Similarity DetectionabstractWhen student programs are compared for similarity, certain segments of code are always sure to be similar. Some of these segments are boilerplate code -- public static void main String [] args and the like -- and some will be code that was provided to students as part of the assessment specification. The purpose of this working group is to explore what other code is expected to be reasonably common in student assessments, and should therefore be excluded from similarity checking. The answers will clearly vary with programming language, and perhaps with level of assessment item. Working group members will collect assessment submissions from their own or their colleagues' students, and it is hoped that these submissions will together encompass a wide variety of assessment tasks in a wide variety of programming languages. The working group aims to deliver clear guidelines as to what code can reasonably be excluded from automatic code similarity detection in various circumstances. It also aims to deliver a summary of what sort of code lecturers tend to provide for students when setting an assigned task, and why they provide that code. Simon, Oscar Karnalim, Judithe Sheard, Ilir Dema, Amey Karkare, Juho Leinonen 0001, Michael Liut, Renée A. McCauley |
ITiCSE | 5 |
| 2019 | A static slicing method for functional programs and its incremental versionabstractAn effective static slicing technique for functional programs must have two features. Its handling of function calls must be context sensitive without being inefficient, and, because of the widespread use of algebraic datatypes, it must take into account structure transmitted dependences. It has been shown that any analysis that combines these two characteristics is undecidable, and existing slicing methods drop one or the other. We propose a slicing method that only weakens (and not entirely drop) the requirement of context-sensitivity and that too for some and not all programs. Prasanna Kumar K., Amitabha Sanyal, Amey Karkare, Saswat Padhi |
CC | 3 |
| 2019 | Unexpected Tokens: A Review of Programming Error Messages and Design Guidelines for the FutureabstractDiagnostic messages generated by compilers and interpreters such as syntax error messages have been researched for decades. Unfortunately these messages which include error, warning, and runtime messages, present substantial difficulty and could be more effective, particularly for novices. Recent years have seen increased number of papers in the area including studies on the effectiveness of these messages, improving or enhancing them, and their usefulness as a part of programming process data that can be used to predict student performance. Despite this increased interest, the long history of literature is quite scattered and has not been brought together in any digestible form. We argue that in order to help the community proceed with more work on diagnostic messages, the literature needs to be presented in a state-of-the-art report. In addition we will synthesize and present the existing evidence for these messages including the difficulties they present and their effectiveness. We will also formulate a set of guidelines based on this evidence that can be used when designing or enhancing diagnostic messages. This work can serve as a starting point for those who wish to conduct research on such messages, those who wish to design better messages or those that aim to measure their effectiveness, more effectively. Brett A. Becker, Paul Denny 0001, Raymond Pettit, Durell Bouchard, Dennis J. Bouvier, Brian Harrington 0001, Amir Kamil, Amey Karkare, Chris McDonald, Peter-Michael Osera, Janice L. Pearce, James Prather |
ITiCSE | 8 |
| 2019 | Targeted Example Generation for Compilation ErrorsabstractWe present TEGCER, an automated feedback tool for novice programmers. TEGCER uses supervised classification to match compilation errors in new code submissions with relevant pre-existing errors, submitted by other students before. The dense neural network used to perform this classification task is trained on 15000+ error-repair code examples. The proposed model yields a test set classification Pred@3 accuracy of 97.7% across 212 error category labels. Using this model as its base, TEGCER presents students with the closest relevant examples of solutions for their specific error on demand. A large scale (N>230) usability study shows that students who use TEGCER are able to resolve errors more than 25% faster on average than students being assisted by human tutors. Umair Z. Ahmed, Renuka Sindhgatta, Nisheeth Srivastava, Amey Karkare |
ASE | 4 |
| 2018 | TipsC: Tips and Corrections for programming MOOCs
Saksham Sharma, Pallav Agarwal, Parv Mor, Amey Karkare |
AIED (2) | 4 |
| 2018 | Reducing GPU Register File Energy
Vishwesh Jatala, Jayvant Anantpur, Amey Karkare |
Euro-Par | 3 |
| 2017 | Automatic Grading and Feedback using Program Repair for Introductory Programming CoursesabstractWe present GradeIT, a system that combines the dual objectives of automated grading and program repairing for introductory programming courses (CS1). Syntax errors pose a significant challenge for testcase-based grading as it is difficult to differentiate between a submission that is almost correct and has some minor syntax errors and another submission that is completely off-the-mark. GradeIT also uses program repair to help in grading submissions that do not compile. This enables running testcases on submissions containing minor syntax errors, thereby awarding partial marks for these submissions (which, without repair, do not compile successfully and, hence, do not pass any testcase). Our experiments on 15613 submissions show that GradeIT results are comparable to manual grading by teaching assistants (TAs), and do not suffer from unintentional variability that happens when multiple TAs grade the same assignment. The repairs performed by GradeIT enabled successful compilation of 56% of the submissions having compilation errors, and resulted in an improvement in marks for 11% of these submissions. Sagar Parihar, Ziyaan Dadachanji, Praveen Kumar Singh, Rajdeep Das, Amey Karkare, Arnab Bhattacharya 0001 |
ITiCSE | 5 |
| 2017 | A feasibility study of using automated program repair for introductory programming assignmentsabstractDespite the fact an intelligent tutoring system for programming (ITSP) education has long attracted interest, its widespread use has been hindered by the difficulty of generating personalized feedback automatically. Meanwhile, automated program repair (APR) is an emerging new technology that automatically fixes software bugs, and it has been shown that APR can fix the bugs of large real-world software. In this paper, we study the feasibility of marrying intelligent programming tutoring and APR. We perform our feasibility study with four state-of-the-art APR tools (GenProg, AE, Angelix, and Prophet), and 661 programs written by the students taking an introductory programming course. We found that when APR tools are used out of the box, only about 30% of the programs in our dataset are repaired. This low repair rate is largely due to the student programs often being significantly incorrect - in contrast, professional software for which APR was successfully applied typically fails only a small portion of tests. To bridge this gap, we adopt in APR a new repair policy akin to the hint generation policy employed in the existing ITSP. This new repair policy admits partial repairs that address part of failing tests, which results in 84% improvement of repair rate. We also performed a user study with 263 novice students and 37 graders, and identified an understudied problem; while novice students do not seem to know how to effectively make use of generated repairs as hints, the graders do seem to gain benefits from repairs. Jooyong Yi, Umair Z. Ahmed, Amey Karkare, Shin Hwei Tan, Abhik Roychoudhury |
ESEC/SIGSOFT FSE | 3 |
| 2017 | Scratchpad Sharing in GPUsabstractGeneral-Purpose Graphics Processing Unit (GPGPU) applications exploit on-chip scratchpad memory available in the Graphics Processing Units (GPUs) to improve performance. The amount of thread level parallelism (TLP) present in the GPU is limited by the number of resident threads, which in turn depends on the availability of scratchpad memory in its streaming multiprocessor (SM). Since the scratchpad memory is allocated at thread block granularity, part of the memory may remain unutilized. In this article, we propose architectural and compiler optimizations to improve the scratchpad memory utilization. Our approach, called Scratchpad Sharing , addresses scratchpad under-utilization by launching additional thread blocks in each SM. These thread blocks use unutilized scratchpad memory and also share scratchpad memory with other resident blocks. To improve the performance of scratchpad sharing, we propose Owner Warp First (OWF) scheduling that schedules warps from the additional thread blocks effectively. The performance of this approach, however, is limited by the availability of the part of scratchpad memory that is shared among thread blocks. We propose compiler optimizations to improve the availability of shared scratchpad memory. We describe an allocation scheme that helps in allocating scratchpad variables such that shared scratchpad is accessed for short duration. We introduce a new hardware instruction, relssp , that when executed releases the shared scratchpad memory. Finally, we describe an analysis for optimal placement of relssp instructions, such that shared scratchpad memory is released as early as possible, but only after its last use, along every execution path. We implemented the hardware changes required for scratchpad sharing and the relssp instruction using the GPGPU-Sim simulator and implemented the compiler optimizations in Ocelot framework. We evaluated the effectiveness of our approach on 19 kernels from 3 benchmarks suites: CUDA-SDK, GPGPU-Sim, and Rodinia. The kernels that under-utilize scratchpad memory show an average improvement of 19% and maximum improvement of 92.17% in terms of the number of instruction executed per cycle when compared to the baseline approach, without affecting the performance of the kernels that are not limited by scratchpad memory. Vishwesh Jatala, Jayvant Anantpur, Amey Karkare |
ACM Trans. Archit. Code Optim. | 3 |
| 2016 | Improving GPU Performance Through Resource SharingabstractGraphics Processing Units (GPUs) consisting of Streaming Multiprocessors (SMs) achieve high throughput by running a large number of threads and context switching among them to hide execution latencies. The number of thread blocks, and hence the number of threads that can be launched on an SM, depends on the resource usage--e.g. number of registers, amount of shared memory--of the thread blocks. Since the allocation of threads to an SM is at the thread block granularity, some of the resources may not be used up completely and hence will be wasted. Vishwesh Jatala, Jayvant Anantpur, Amey Karkare |
HPDC | 3 |
| 2016 | Program synthesis using natural languageabstractInteracting with computers is a ubiquitous activity for millions of people. Repetitive or specialized tasks often require creation of small, often one-off, programs. End-users struggle with learning and using the myriad of domain-specific languages (DSLs) to effectively accomplish these tasks. Aditya Desai, Sumit Gulwani, Vineet Hingorani, Nidhi Jain, Amey Karkare, Mark Marron, Sailesh R, Subhajit Roy 0001 |
ICSE | 5 |
| 2016 | Liveness-based garbage collection for lazy languagesabstractWe consider the problem of reducing the memory required to run lazy first-order functional programs. Our approach is to analyze programs for liveness of heap-allocated data. The result of the analysis is used to preserve only live data—a subset of reachable data—during garbage collection. The result is an increase in the garbage reclaimed and a reduction in the peak memory requirement of programs. Whereas this technique has already been shown to yield benefits for eager first-order languages, the lack of a statically determinable execution order and the presence of closures pose new challenges for lazy languages. These require changes both in the liveness analysis itself and in the design of the garbage collector. To show the effectiveness of our method, we implemented a copying collector that uses the results of the liveness analysis to preserve live objects, both evaluated and closures. Our experiments confirm that for programs running with a liveness-based garbage collector, there is a significant decrease in peak memory requirements. In addition, a sizable reduction in the number of collections ensures that in spite of using a more complex garbage collector, the execution times of programs running with liveness and reachability-based collectors remain comparable. Prasanna Kumar K., Amitabha Sanyal, Amey Karkare |
ISMM | 3 |
| 2016 | ParseIT: A Tool for Teaching Parsing TechniquesabstractCompiler design is an important subject in the computer science curriculum for undergraduates. In a typical Compiler's course, about 15%-22% of the total time is spent on syntax analysis phase (also called parsing techniques). A number of concepts are introduced to explain the internals of parsers, for example first set, follow set, item set, goto and closure set, parse tables and the parsing algorithms, making the understanding difficult. While parser generators (YACC and its variants) allow the students to experiment with grammars, the working of the parser generated by the tools is still opaque. Amey Karkare, Nimisha Agarwal |
SIGCSE | 1 |
| 2014 | Liveness-Based Garbage Collection
Rahul Asati, Amitabha Sanyal, Amey Karkare, Alan Mycroft |
CC | 3 |
| 2013 | Automatically Generating Problems and Solutions for Natural Deduction
Umair Z. Ahmed, Sumit Gulwani, Amey Karkare |
IJCAI | 3 |
| 2007 | Heap reference analysis using access graphsabstractDespite significant progress in the theory and practice of program analysis, analyzing properties of heap data has not reached the same level of maturity as the analysis of static and stack data. The spatial and temporal structure of stack and static data is well understood while that of heap data seems arbitrary and is unbounded. We devise bounded representations that summarize properties of the heap data. This summarization is based on the structure of the program that manipulates the heap. The resulting summary representations are certain kinds of graphs called access graphs . The boundedness of these representations and the monotonicity of the operations to manipulate them make it possible to compute them through data flow analysis. An important application that benefits from heap reference analysis is garbage collection, where currently liveness is conservatively approximated by reachability from program variables. As a consequence, current garbage collectors leave a lot of garbage uncollected, a fact that has been confirmed by several empirical studies. We propose the first ever end-to-end static analysis to distinguish live objects from reachable objects. We use this information to make dead objects unreachable by modifying the program. This application is interesting because it requires discovering data flow information representing complex semantics. In particular, we formulate the following new analyses for heap data: liveness, availability, and anticipability and propose solution methods for them. Together, they cover various combinations of directions of analysis (i.e., forward and backward) and confluence of information (i.e. union and intersection). Our analysis can also be used for plugging memory leaks in C/C++ languages. Uday P. Khedker, Amitabha Sanyal, Amey Karkare |
ACM Trans. Program. Lang. Syst. | 3 |