Rishabh Singh

dblp:25/7056 · DBLP profile ↗
← Back
67ranked-venue papers
16as first author
17since 2021 · last 2026
—ORCID · conflict

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

Artificial intelligence and machine learning · 30 · 4 first-author · 11 since 2021Software engineering, systems software and programming languages · 24 · 7 first-author · 2 since 2021Theory of computation · 7 · 4 first-author · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 4 · 3 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 4Applied, interdisciplinary, general and emerging computing · 4 · 1 since 2021Systems, architecture and hardware · 3 · 1 since 2021Databases, data management, data science and information retrieval · 3 · 2 first-author
YearPublicationVenuePosition
2026 Enterprise Information Exchange via IE-BSE Framework: A Case Study on E-invoicing
Muhammad Raheel Raza, Fethi A. Rabhi, George Joukhadar, Rishabh Singh
WorldCIST (3)4
2025 SWE-RL: Advancing LLM Reasoning via Reinforcement Learning on Open Software Evolution
abstract
The recent DeepSeek-R1 release has demonstrated the immense potential of reinforcement learning (RL) in enhancing the general reasoning capabilities of large language models (LLMs). While DeepSeek-R1 and other follow-up work primarily focus on applying RL to competitive coding and math problems, this paper introduces SWE-RL, the first approach to scale RL-based LLM reasoning for real-world software engineering. Leveraging a lightweight rule-based reward (e.g., the similarity score between ground-truth and LLM-generated solutions), SWE-RL enables LLMs to autonomously recover a developer's reasoning processes and solutions by learning from extensive open-source software evolution data -- the record of a software's entire lifecycle, including its code snapshots, code changes, and events such as issues and pull requests. Trained on top of Llama 3, our resulting reasoning model, Llama3-SWE-RL-70B, achieves a 41.0% solve rate on SWE-bench Verified -- a human-verified collection of real-world GitHub issues. To our knowledge, this is the best performance reported for medium-sized (<100B) LLMs to date, even comparable to leading proprietary LLMs like GPT-4o. Surprisingly, despite performing RL solely on software evolution data, Llama3-SWE-RL has even emerged with generalized reasoning skills. For example, it shows improved results on five out-of-domain tasks, namely, function coding, library use, code reasoning, mathematics, and general language understanding, whereas a supervised-finetuning baseline even leads to performance degradation on average. Overall, SWE-RL opens up a new direction to improve the reasoning capabilities of LLMs through reinforcement learning on massive software engineering data.
Yuxiang Wei 0003, Olivier Duchenne, Jade Copet, Quentin Carbonneaux, Lingming Zhang 0001, Daniel Fried, Gabriel Synnaeve, Rishabh Singh, Sida I. Wang
NeurIPS8
2024 Finding Local Dependent Regions in PDFs using RKHS Uncertainty Moments and Optimal Transport
abstract
Reliable measurement of dependence between random variables is essential in many applications of statistics and machine learning. Current approaches for dependence estimation employ the full probability density function (PDF) and are unable to quantify local dependence, which is required to improve precision, robustness and/or interpretability. We propose a two-step approach for local dependence quantification between random variables: 1) First decompose the PDF of the variables involved in orthogonal regional moments; 2) Compute an optimal transport map to measure the similarity, in the space of the data, between the corresponding sets of local low density moments, which correspond to uncertainty. Statistical dependence is then determined by the degree of one-to-one correspondence between the respective uncertainty moments decomposition. The proposed approach is robust towards outliers and monotone transformations of data, while the multiple moments of uncertainty provide high resolution and interpretability of the type of dependence being quantified. We support these claims through preliminary results using simulated data.
Rishabh Singh, Yaxin Ma 0001, José C. Príncipe
IJCNN1
2023 Measuring the Impact of Programming Language Distribution
abstract
Current benchmarks for evaluating neural code models focus on only a small subset of programming languages, excluding many popular languages such as Go or Rust. To ameliorate this issue, we present the BabelCode framework for execution-based evaluation of any benchmark in any language. BabelCode enables new investigations into the qualitative performance of models' memory, runtime, and individual test case results. Additionally, we present a new code translation dataset called Translating Python Programming Puzzles (TP3) from the Python Programming Puzzles (Schuster et al., 2021) benchmark that involves translating expert-level python functions to any language. With both BabelCode and the TP3 benchmark, we investigate if balancing the distributions of 14 languages in a training dataset improves a large language model's performance on low-resource languages. Training a model on a balanced corpus results in, on average, 12.34% higher $pass@k$ across all tasks and languages compared to the baseline. We find that this strategy achieves 66.48% better $pass@k$ on low-resource languages at the cost of only a 12.94% decrease to high-resource languages. In our three translation tasks, this strategy yields, on average, 30.77% better low-resource $pass@k$ while having 19.58% worse high-resource $pass@k$.
Gabriel Orlanski, Kefan Xiao, Xavier Garcia, Jeffrey Hui, Joshua Howland, Jonathan Malmaud, Jacob Austin, Rishabh Singh, Michele Catasta
ICML8
2022 ECG Fiducial Point Localization Using a Deep Learning Model
abstract
ECG signals are essential in diagnosing cardiovascular diseases (CVD). Automatic localization of ECG fiducial points helps in the end-point detection and tracking of CVD. Nowadays, collecting ECG signals is more accessible because of the availability of wearable devices. We develop an algorithm to estimate the peaks of P and T waves and the onset and offset of the QRS complex. We evaluate it using ECG signals collected using a wearable device named HEMOTAG. The algorithm combines a rule-based method for heartbeat detection and a deep convolutional neural network (CNN) for fiducial points localization. Three datasets were used to train and evaluate the proposed algorithm. The first and second datasets are QT and Lobachevsky University Electrocardiography Database (LUDB), which are used in ten-fold cross-validation. The third dataset was collected using HEMOTAG, which is used as a held-out set. A percentage of error (PoE) less than 1.75% was achieved based on the cross-validation, and PoE less than 2.42% is achieved based on the held-out set.
Murtadha D. Hssayeni, Arash Andalib, Rishabh Singh, Diego Pava, Steven Borzak, Robert Chait, Kaustubh Kale
ICMLA3
2022 MoËT: Mixture of Expert Trees and its application to verifiable reinforcement learning
Marko Vasic, Andrija Petrovic, Mladen Nikolic, Rishabh Singh, Sarfraz Khurshid
Neural Networks5
2022 Solving Program Sketches with Large Integer Values
abstract
Program sketching is a program synthesis paradigm in which the programmer provides a partial program with holes and assertions. The goal of the synthesizer is to automatically find integer values for the holes so that the resulting program satisfies the assertions. The most popular sketching tool, Sketch , can efficiently solve complex program sketches but uses an integer encoding that often performs poorly if the sketched program manipulates large integer values. In this article, we propose a new solving technique that allows Sketch to handle large integer values while retaining its integer encoding. Our technique uses a result from number theory, the Chinese Remainder Theorem, to rewrite program sketches to only track the remainders of certain variable values with respect to several prime numbers. We prove that our transformation is sound and the encoding of the resulting programs are exponentially more succinct than existing Sketch encodings. We evaluate our technique on a variety of benchmarks manipulating large integer values. Our technique provides speedups against both existing Sketch solvers and can solve benchmarks that existing Sketch solvers cannot handle.
Qinheping Hu, Rishabh Singh, Loris D'Antoni
ACM Trans. Program. Lang. Syst.2
2022 TF-Coder: Program Synthesis for Tensor Manipulations
abstract
The success and popularity of deep learning is on the rise, partially due to powerful deep learning frameworks such as TensorFlow and PyTorch, which make it easier to develop deep learning models. However, these libraries also come with steep learning curves, since programming in these frameworks is quite different from traditional imperative programming with explicit loops and conditionals. In this work, we present a tool called TF-Coder for programming by example in TensorFlow. TF-Coder uses a bottom-up weighted enumerative search, with value-based pruning of equivalent expressions and flexible type- and value-based filtering to ensure that expressions adhere to various requirements imposed by the TensorFlow library. We train models to predict TensorFlow operations from features of the input and output tensors and natural language descriptions of tasks to prioritize relevant operations during search. TF-Coder solves 63 of 70 real-world tasks within 5 minutes, sometimes finding simpler solutions in less time compared to experienced human programmers.
Kensen Shi, David Bieber, Rishabh Singh
ACM Trans. Program. Lang. Syst.3
2021 Bias: Bijective Input And Surjectivity In Zero Shot Learning
abstract
Zero-shot learning suffers from the issue of generalisation due to domain shift across seen and unseen classes. In this paper, we propose a method that extends the usual approach of learning a mapping between semantic and visual embedding spaces by ensuring it to be surjective. This functional constraint along with triplet loss prevents the model from overfitting to seen classes. We also use a bijective feature extractor to complement our proposal. Experimental results on benchmark datasets depict that our method out-performs standard approaches in conventional and generalised scenarios.
Rishabh Singh
ICIP1
2021 BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration
Augustus Odena, Kensen Shi, David Bieber, Rishabh Singh, Charles Sutton, Hanjun Dai
ICLR4
2021 Scaling Symbolic Methods using Gradients for Neural Model Explanation
Subham Sekhar Sahoo, Subhashini Venugopalan, Li Li 0060, Rishabh Singh, Patrick F. Riley
ICLR4
2021 SpreadsheetCoder: Formula Prediction from Semi-structured Context
abstract
Spreadsheet formula prediction has been an important program synthesis problem with many real-world applications. Previous works typically utilize input-output examples as the specification for spreadsheet formula synthesis, where each input-output pair simulates a separate row in the spreadsheet. However, this formulation does not fully capture the rich context in real-world spreadsheets. First, spreadsheet data entries are organized as tables, thus rows and columns are not necessarily independent from each other. In addition, many spreadsheet tables include headers, which provide high-level descriptions of the cell data. However, previous synthesis approaches do not consider headers as part of the specification. In this work, we present the first approach for synthesizing spreadsheet formulas from tabular context, which includes both headers and semi-structured tabular data. In particular, we propose SpreadsheetCoder, a BERT-based model architecture to represent the tabular context in both row-based and column-based formats. We train our model on a large dataset of spreadsheets, and demonstrate that SpreadsheetCoder achieves top-1 prediction accuracy of 42.51%, which is a considerable improvement over baselines that do not employ rich tabular context. Compared to the rule-based system, SpreadsheetCoder assists 82% more users in composing formulas on Google Sheets.
Petros Maniatis, Rishabh Singh, Charles Sutton, Hanjun Dai, Max Lin, Denny Zhou
ICML3
2021 Latent Programmer: Discrete Latent Codes for Program Synthesis
abstract
A key problem in program synthesis is searching over the large space of possible programs. Human programmers might decide the high-level structure of the desired program before thinking about the details; motivated by this intuition, we consider two-level search for program synthesis, in which the synthesizer first generates a plan, a sequence of symbols that describes the desired program at a high level, before generating the program. We propose to learn representations of programs that can act as plans to organize such a two-level search. Discrete latent codes are appealing for this purpose, and can be learned by applying recent work on discrete autoencoders. Based on these insights, we introduce the Latent Programmer (LP), a program synthesis method that first predicts a discrete latent code from input/output examples, and then generates the program in the target language. We evaluate the LP on two domains, demonstrating that it yields an improvement in accuracy, especially on longer programs for which search is most difficult.
Joey Hong, David Dohan, Rishabh Singh, Charles Sutton, Manzil Zaheer
ICML3
2021 DAWSSM: A plug-and-play Drone Assisted Water Sampling and Sensing Module
abstract
Increasing water pollution necessitates frequent monitoring of water bodies, which is quite time-consuming and costly when done manually, especially for remote locations. Multi-rotor drones can be used for collecting water samples and transporting them to the laboratory for testing, since they are convenient for carrying small payloads and offer increased accessibility compared to aquatic vehicles. Most of the solutions proposed so far have focused on designing a specialized drone for this purpose, which makes the solution extremely difficult to replicate and use. In this paper, we abstract the sampling and water quality testing functionalities to a specialized module which can be attached to any drone. The attachment has its own power supply and does not consume power from the carrier drone. The practicality of the proposed approach is validated by performing a flight mission, including sample collection and water quality analysis using on board sensors. Temperature, pH and electrical conductivity values sensed from the water samples collected using DAWSSM and by manual collection are compared and found to have no difference. This demonstrates the efficacy of DAWSSM as a substitute for the conventional process.
Digvijay Singh, Rishabh Singh, Rahul Ajmeria, Manik Gupta, Ponnalagu Ramanathan Nagarajan
IECON2
2021 Learning Semantic Representations to Verify Hardware Designs
abstract
Verification is a serious bottleneck in the industrial hardware design cycle, routinely requiring person-years of effort. Practical verification relies on a "best effort" process that simulates the design on test inputs. This suggests a new research question: Can this simulation data be exploited to learn a continuous representation of a hardware design that allows us to predict its functionality? As a first approach to this new problem, we introduce Design2Vec, a deep architecture that learns semantic abstractions of hardware designs. The key idea is to work at a higher level of abstraction than the gate or the bit level, namely the Register Transfer Level (RTL), which is somewhat analogous to software source code, and can be represented by a graph that incorporates control and data flow. This allows us to learn representations of RTL syntax and semantics using a graph neural network. We apply these representations to several tasks within verification, including predicting what cover points of the design will be exercised by a test, and generating new tests that will exercise desired cover points. We evaluate Design2Vec on three real-world hardware designs, including an industrial chip used in commercial data centers. Our results demonstrate that Design2Vec dramatically outperforms baseline approaches that do not incorporate the RTL semantics, scales to industrial designs, and can generate tests that exercise design points that are currently hard to cover with manually written tests by design verification experts.
Shobha Vasudevan, Wenjie Jiang 0001, David Bieber, Rishabh Singh, Hamid Shojaei, Richard Ho 0001, Charles Sutton
NeurIPS4
2021 Special Issue on Syntax-Guided Synthesis Preface
Dana Fisman, Rishabh Singh, Armando Solar-Lezama
Formal Methods Syst. Des.2
2021 Toward a Kernel-Based Uncertainty Decomposition Framework for Data and Models
abstract
This letter introduces a new framework for quantifying predictive uncertainty for both data and models that relies on projecting the data into a gaussian reproducing kernel Hilbert space (RKHS) and transforming the data probability density function (PDF) in a way that quantifies the flow of its gradient as a topological potential field (quantified at all points in the sample space). This enables the decomposition of the PDF gradient flow by formulating it as a moment decomposition problem using operators from quantum physics, specifically Schrödinger's formulation. We experimentally show that the higher-order moments systematically cluster the different tail regions of the PDF, thereby providing unprecedented discriminative resolution of data regions having high epistemic uncertainty. In essence, this approach decomposes local realizations of the data PDF in terms of uncertainty moments. We apply this framework as a surrogate tool for predictive uncertainty quantification of point-prediction neural network models, overcoming various limitations of conventional Bayesian-based uncertainty quantification methods. Experimental comparisons with some established methods illustrate performance advantages that our framework exhibits.
Rishabh Singh, José C. Príncipe
Neural Comput.1
2020 Solving Program Sketches with Large Integer Values
abstract
Abstract Program sketching is a program synthesis paradigm in which the programmer provides a partial program with holes and assertions. The goal of the synthesizer is to automatically find integer values for the holes so that the resulting program satisfies the assertions. The most popular sketching tool, Sketch, can efficiently solve complex program sketches, but uses an integer encoding that often performs poorly if the sketched program manipulates large integer values. In this paper, we propose a new solving technique that allows Sketch to handle large integer values while retaining its integer encoding. Our technique uses a result from number theory, the Chinese Remainder Theorem, to rewrite program sketches to only track the remainders of certain variable values with respect to several prime numbers. We prove that our transformation is sound and the encoding of the resulting programs are exponentially more succinct than existing Sketch encodings. We evaluate our technique on a variety of benchmarks manipulating large integer values. Our technique provides speedups against both existing Sketch solvers and can solve benchmarks that existing Sketch solvers cannot handle.
Qinheping Hu, Rishabh Singh, Loris D'Antoni
ESOP3
2020 Composite Dynamic Texture Synthesis Using Hierarchical Linear Dynamical System
abstract
We demonstrate that a systematic inclusion of prior structural constraints on the states of a linear dynamical system significantly improves its ability to model complex multidimensional sequences. This constrained LDS, typically termed as the hierarchical linear dynamical system (HLDS), is a Kalman filter based topology that extracts relevant self-segmenting information from the input signal in an unsupervised manner by hierarchically constraining its information representing state subspaces thereby slowing down the signal dynamics. We highlight some of its practical advantages over the existing methods in real-world video applications. As a concrete application, we show that the HLDS, despite being a linear model trained in an unsupervised setting, is able to capture the dynamics of complex texture sequences consisting of multiple co-occurring textures. We compare its performance with a similarly trained LDS model in the reconstruction and synthesis of such signals.
Rishabh Singh, Shujian Yu, José C. Príncipe
ICASSP1
2020 Global Relational Models of Source Code
Vincent J. Hellendoorn, Charles Sutton, Rishabh Singh, Petros Maniatis, David Bieber
ICLR3
2020 Generating Programmatic Referring Expressions via Program Synthesis
abstract
Incorporating symbolic reasoning into machine learning algorithms is a promising approach to improve performance on learning tasks that require logical reasoning. We study the problem of generating a programmatic variant of referring expressions that we call referring relational programs. In particular, given a symbolic representation of an image and a target object in that image, the goal is to generate a relational program that uniquely identifies the target object in terms of its attributes and its relations to other objects in the image. We propose a neurosymbolic program synthesis algorithm that combines a policy neural network with enumerative search to generate such relational programs. The policy neural network employs a program interpreter that provides immediate feedback on the consequences of the decisions made by the policy, and also takes into account the uncertainty in the symbolic representation of the image. We evaluate our algorithm on challenging benchmarks based on the CLEVR dataset, and demonstrate that our approach significantly outperforms several baselines.
Calvin Smith, Osbert Bastani, Rishabh Singh, Aws Albarghouthi, Mayur Naik
ICML4
2020 Cyberbullying and Indian Society: Outcomes from Social Conclave Conference
abstract
“It is not technology but people's mindset that makes the world a scary place to live in.” India is one of the top 3 countries to report cyberbullying cases. One in 10 Indian adolescents faces cyberbullying, half of them don't even report it. Cyberbullying is one of the issues that are so common in India. There are so many social issues that are not openly discussed. With such increasing issues, it is very essential to address them. Technology affects us in all possible ways today. It is technological solutions that can help us fight such issues. This paper discusses - Social Conclave, a national social conference that discusses these pressing issues and comes up with solutions that are then implemented. Social Conclave is the social conference of NMIMS' School of Technology Management and Engineering. Social Conclave aims at discussing the pressing issues that are prevalent in India to come up with a solution that is the betterment of society. Delegates from all over the country meet up to discuss these different social issues. They are taken to various field visits to experience and see what India is dealing with. The debate among themselves to come up with the most sustainable solution for a particular issue. The solution given by the delegates is then implemented on the ground level by the students. This paper shares the idea and the experience of the conference.
Rishabh Reddy, Rishabh Singh, Vidhi Kapoor, Prathamesh P. Churi
ISTAS2
2020 Learning Discrete Energy-based Models via Auxiliary-variable Local Exploration
abstract
Discrete structures play an important role in applications like program language modeling and software engineering. Current approaches to predicting complex structures typically consider autoregressive models for their tractability, with some sacrifice in flexibility. Energy-based models (EBMs) on the other hand offer a more flexible and thus more powerful approach to modeling such distributions, but require partition function estimation. In this paper we propose \modelshort, a new algorithm for learning conditional and unconditional EBMs for discrete structured data, where parameter gradients are estimated using a learned sampler that mimics local search. We show that the energy function and sampler can be trained efficiently via a new variational form of power iteration, achieving a better trade-off between flexibility and tractability. Experimentally, we show that learning local search leads to significant improvements in challenging application domains. Most notably, we present an energy model guided fuzzer for software testing that achieves comparable performance to well engineered fuzzing engines like libfuzzer.
Hanjun Dai, Rishabh Singh, Bo Dai 0001, Charles Sutton, Dale Schuurmans
NeurIPS2
2020 Time Series Analysis using a Kernel based Multi-Modal Uncertainty Decomposition Framework
abstract
This paper proposes a kernel based information theoretic framework with quantum physical underpinnings for data characterization that is relevant to online time series applications such as unsupervised change point detection and whole sequence clustering. In this framework, we utilize the Gaussian kernel mean embedding metric for universal characterization of data PDF. We then utilize concepts of quantum physics to impart a local dynamical structure to characterized data PDF, resulting in a new energy based formulation. This facilitates a multi-modal physics based uncertainty representation of the signal PDF at each sample using Hermite polynomial projections. We demonstrate in this paper using synthesized datasets that such uncertainty features provide a better ability for online detection of statistical change points in time series data when compared to existing non-parametric and unsupervised methods. We also demonstrate a better ability of the framework in clustering time series sequences when compared to discrete wavelet transform features on a subset of VidTIMIT speaker recognition corpus.
Rishabh Singh, José C. Príncipe
UAI1
2020 Augmented example-based synthesis using relational perturbation properties
abstract
Example-based specifications for program synthesis are inherently ambiguous and may cause synthesizers to generate programs that do not exhibit intended behavior on unseen inputs. Existing synthesis techniques attempt to address this problem by either placing a domain-specific syntactic bias on the hypothesis space or heavily relying on user feedback to help resolve ambiguity. We present a new framework to address the ambiguity/generalizability problem in example-based synthesis. The key feature of our framework is that it places a semantic bias on the hypothesis space using "relational perturbation properties" that relate the perturbation/change in a program output to the perturbation/change in a program input. An example of such a property is permutation invariance: the program output does not change when the elements of the program input (array) are permuted. The framework is portable across multiple domains and synthesizers and is based on two core steps: (1) automatically augment the set of user-provided examples by "applying" relational perturbation properties and (2) use a generic example-based synthesizer to generate a program consistent with the augmented set of examples. Our framework can be instantiated with three different user interfaces, with varying degrees of user engagement to help infer relevant relational perturbation properties. This includes an interface in which the user only provides examples and our framework automatically infers relevant properties. We implement our framework in a tool SKETCHAX specialized to the SKETCH synthesizer and demonstrate that SKETCHAX is effective in significantly boosting the performance of SKETCH for all three user interfaces.
Shengwei An, Rishabh Singh, Sasa Misailovic, Roopsha Samanta
Proc. ACM Program. Lang.2
2019 VPDS: An AI-Based Automated Vehicle Occupancy and Violation Detection System
abstract
High Occupancy Vehicle/High Occupancy Tolling (HOV/HOT) lanes are operated based on voluntary HOV declarations by drivers. A majority of these declarations are wrong to leverage faster HOV lane speeds illegally. It is a herculean task to manually regulate HOV lanes and identify these violators. Therefore, an automated way of counting the number of people in a car is prudent for fair tolling and for violator detection.In this paper, we propose a Vehicle Passenger Detection System (VPDS) which works by capturing images through Near Infrared (NIR) cameras on the toll lanes and processing them using deep Convolutional Neural Networks (CNN) models. Our system has been deployed in 3 cities over a span of two years and has served roughly 30 million vehicles with an accuracy of 97% which is a remarkable improvement over manual review which is 37% accurate. Our system can generate an accurate report of HOV lane usage which helps policy makers pave the way towards de-congestion.
Abhinav Kumar 0004, Aishwarya Gupta 0001, Bishal Santra, Lalitha K. S., Manasa Kolla, Mayank Gupta 0002, Rishabh Singh
AAAI7
2019 Synthetic Datasets for Neural Program Synthesis
Richard Shin, Neel Kant, Kavi Gupta, Chris Bender, Brandon Trabucco, Rishabh Singh, Dawn Song
ICLR (Poster)6
2019 Neural Program Repair by Jointly Learning to Localize and Repair
Marko Vasic, Aditya Kanade 0001, Petros Maniatis, David Bieber, Rishabh Singh
ICLR (Poster)5
2019 Learning Transferable Graph Exploration
abstract
This paper considers the problem of efficient exploration of unseen environments, a key challenge in AI. We propose a learning to explore' framework where we learn a policy from a distribution of environments. At test time, presented with an unseen environment from the same distribution, the policy aims to generalize the exploration strategy to visit the maximum number of unique states in a limited number of steps. We particularly focus on environments with graph-structured state-spaces that are encountered in many important real-world applications like software testing and map building. We formulate this task as a reinforcement learning problem where theexploration' agent is rewarded for transitioning to previously unseen environment states and employ a graph-structured memory to encode the agent's past trajectory. Experimental results demonstrate that our approach is extremely effective for exploration of spatial maps; and when applied on the challenging problems of coverage-guided software-testing of domain-specific programs and real-world mobile applications, it outperforms methods that have been hand-engineered by human experts.
Hanjun Dai, Yujia Li 0001, Rishabh Singh, Po-Sen Huang, Pushmeet Kohli
NeurIPS4
2019 Direct Manipulation for Imperative Programs
Qinheping Hu, Roopsha Samanta, Rishabh Singh, Loris D'Antoni
SAS3
2018 gAR-age: A Feedback-Enabled Blended Ecosystem for Vehicle Health Monitoring
abstract
Standard vehicle maintenance activities can be challenging, time-consuming, error-prone, and expensive. While there is a lot of innovative work that has incorporated latest technologies to provide newer forms of interaction between users and vehicles, there has been less inclination towards utilizing these technologies to enhance activities like vehicle maintenance. The ability to draw parallels simultaneously from physical interaction with vehicles and analysis of recorded data is vital to support prompt and effective decision-making. To blur the disparity between these real and virtual worlds, we present "gAR-age"- an ecosystem that enables maintenance personnel to interact with both worlds in a common setting. By learning from historical changes in vehicular components, user behavior, and feedback, this blended ecosystem allows multi-channel communication among users, featuring personalized contextual insights, thereby enabling users to make data-driven decision on the fly.
Sitara Shah, Snigdha Petluru, Rishabh Singh
AutomotiveUI3
2018 Nearest-Instance-Centroid-Estimation Linear Discriminant Analysis (Nice Lda)
abstract
We propose a novel cascaded classification technique called the Nearest Instance Centroid Estimation (NICE) LDA algorithm. Our algorithm (inspired from NICE KLMS) performs a cascade combination of two weak classifiers - threshold based class-wise clustering and linear discriminant classification to achieve state-of-the-art results on various high dimensional UCI datasets. We show how our method is more robust towards skewed data and computationally more efficient than previous methods of combining clustering with classification techniques. We also develop an efficient aggregation method based on instance based learning that implements this cascade combination of classifiers in a much simpler manner computationally. We demonstrate that our method of data clustering and LDA implementation, while introducing only one free parameter, leads to results that are similar and often better than those achieved by the state-of-the-art kernel RBF SVMs.
Rishabh Singh, Kan Li 0002, José C. Príncipe
ICASSP1
2018 Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis
Rudy Bunel, Matthew J. Hausknecht, Jacob Devlin, Rishabh Singh, Pushmeet Kohli
ICLR (Poster)4
2018 Dynamic Neural Program Embeddings for Program Repair
Ke Wang 0022, Rishabh Singh, Zhendong Su 0001
ICLR (Poster)2
2018 Programmatically Interpretable Reinforcement Learning
abstract
We present a reinforcement learning framework, called Programmatically Interpretable Reinforcement Learning (PIRL), that is designed to generate interpretable and verifiable agent policies. Unlike the popular Deep Reinforcement Learning (DRL) paradigm, which represents policies by neural networks, PIRL represents policies using a high-level, domain-specific programming language. Such programmatic policies have the benefits of being more easily interpreted than neural networks, and being amenable to verification by symbolic methods. We propose a new method, called Neurally Directed Program Search (NDPS), for solving the challenging nonsmooth optimization problem of finding a programmatic policy with maximal reward. NDPS works by first learning a neural policy network using DRL, and then performing a local search over programmatic policies that seeks to minimize a distance from this neural “oracle”. We evaluate NDPS on the task of learning to drive a simulated car in the TORCS car-racing environment. We demonstrate that NDPS is able to discover human-readable policies that pass some significant performance bars. We also show that PIRL policies can have smoother trajectories, and can be more easily transferred to environments not encountered during training, than corresponding policies discovered by DRL.
Abhinav Verma 0001, Vijayaraghavan Murali, Rishabh Singh, Pushmeet Kohli, Swarat Chaudhuri
ICML3
2018 Neuro-symbolic program corrector for introductory programming assignments
abstract
Automatic correction of programs is a challenging problem with numerous real world applications in security, verification, and education. One application that is becoming increasingly important is the correction of student submissions in online courses for providing feedback. Most existing program repair techniques analyze Abstract Syntax Trees (ASTs) of programs, which are unfortunately unavailable for programs with syntax errors. In this paper, we propose a novel Neuro-symbolic approach that combines neural networks with constraint-based reasoning. Specifically, our method first uses a Recurrent Neural Network (RNN) to perform syntax repairs for the buggy programs; subsequently, the resulting syntactically-fixed programs are repaired using constraint-based techniques to ensure functional correctness. The RNNs are trained using a corpus of syntactically correct submissions for a given programming assignment, and are then queried to fix syntax errors in an incorrect programming submission by replacing or inserting the predicted tokens at the error location. We evaluate our technique on a dataset comprising of over 14,500 student submissions with syntax errors. Our method is able to repair syntax errors in 60% (8689) of submissions, and finds functionally correct repairs for 23.8% (3455) submissions.
Sahil Bhatia, Pushmeet Kohli, Rishabh Singh
ICSE3
2018 Correntropy Based Hierarchical Linear Dynamical System For Speech Recognition
abstract
Hierarchical Linear Dynamical System (HLDS) is a recently introduced Kalman filter based generative state model that extracts relevant self-segmenting information from input time series signal by hierarchically constraining the information representing subspaces of its states thus slowing down the dynamics of the input signal. Despite the simplicity of its nested architecture and its dependance on linear Kalman update rules, the HLDS has been shown to have state-of-the-art performance in the classification of musical notes. However, it was observed that the application scope of this state based model was only limited to linearly separable signals since the representations of non-linear and non-stationary signals (such as speech) in the state space of the HLDS was highly intermingled and hence, non-discriminative. This paper proposes a kernel based extension of the HLDS that shows promising results in the sparse and discriminative representation of speech phonemes in its information representing state spaces. Specifically, we use correntropy as an additional non-linear constraint on top of the linear constraints already provided by the nested architecture of the states. We show that by using correntropy as the cost function in the Kalman update equations, we are able to adaptively restrict the different phonemes of a speech signal into localized areas of the top state space. Our training results, along with their authentication through top-down inference of the states, provide valid credibility to the use of HLDS as a promising speech recognition model.
Rishabh Singh, José C. Príncipe
IJCNN1
2018 Interpreting Neural Network Judgments via Minimal, Stable, and Symbolic Corrections
abstract
We present a new algorithm to generate minimal, stable, and symbolic corrections to an input that will cause a neural network with ReLU activations to change its output. We argue that such a correction is a useful way to provide feedback to a user when the network's output is different from a desired output. Our algorithm generates such a correction by solving a series of linear constraint satisfaction problems. The technique is evaluated on three neural network models: one predicting whether an applicant will pay a mortgage, one predicting whether a first-order theorem can be proved efficiently by a solver using certain heuristics, and the final one judging whether a drawing is an accurate rendition of a canonical drawing of a cat.
Xin Zhang 0035, Armando Solar-Lezama, Rishabh Singh
NeurIPS3
2018 Search, align, and repair: data-driven feedback generation for introductory programming exercises
abstract
This paper introduces the “Search, Align, and Repair” data-driven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submissions in such settings and develop new algorithms for identifying similar programs, aligning correct and incorrect programs, and repairing incorrect programs by finding minimal fixes. We have implemented our technique in the Sarfgen system and evaluated it on thousands of real student attempts from the Microsoft-DEV204.1x edX course and the Microsoft CodeHunt platform. Our results show that Sarfgen can, within two seconds on average, generate concise, useful feedback for 89.7% of the incorrect student submissions. It has been integrated with the Microsoft-DEV204.1X edX class and deployed for production use.
Ke Wang 0022, Rishabh Singh, Zhendong Su 0001
PLDI2
2018 WebRelate: integrating web data with spreadsheets using examples
abstract
Data integration between web sources and relational data is a key challenge faced by data scientists and spreadsheet users. There are two main challenges in programmatically joining web data with relational data. First, most websites do not expose a direct interface to obtain tabular data, so the user needs to formulate a logic to get to different webpages for each input row in the relational table. Second, after reaching the desired webpage, the user needs to write complex scripts to extract the relevant data, which is often conditioned on the input data. Since many data scientists and end-users come from diverse backgrounds, writing such complex regular-expression based logical scripts to perform data integration tasks is unfortunately often beyond their programming expertise. We present WebRelate, a system that allows users to join semi-structured web data with relational data in spreadsheets using input-output examples. WebRelate decomposes the web data integration task into two sub-tasks of i) URL learning and ii) input-dependent web extraction. We introduce a novel synthesis paradigm called "Output-constrained Programming By Examples", which allows us to use the finite set of possible outputs for the new inputs to efficiently constrain the search in the synthesis algorithm. We instantiate this paradigm for the two sub-tasks in WebRelate. The first sub-task generates the URLs for the webpages containing the desired data for all rows in the relational table. WebRelate achieves this by learning a string transformation program using a few example URLs. The second sub-task uses examples of desired data to be extracted from the corresponding webpages and learns a program to extract the data for the other rows. We design expressive domain-specific languages for URL generation and web data extraction, and present efficient synthesis algorithms for learning programs in these DSLs from few input-output examples. We evaluate WebRelate on 88 real-world web data integration tasks taken from online help forums and Excel product team, and show that WebRelate can learn the desired programs within few seconds using only 1 example for the majority of the tasks.
Jeevana Priya Inala, Rishabh Singh
Proc. ACM Program. Lang.2
2018 Program synthesis using abstraction refinement
abstract
We present a new approach to example-guided program synthesis based on counterexample-guided abstraction refinement . Our method uses the abstract semantics of the underlying DSL to find a program P whose abstract behavior satisfies the examples. However, since program P may be spurious with respect to the concrete semantics, our approach iteratively refines the abstraction until we either find a program that satisfies the examples or prove that no such DSL program exists. Because many programs have the same input-output behavior in terms of their abstract semantics , this synthesis methodology significantly reduces the search space compared to existing techniques that use purely concrete semantics. While synthesis using abstraction refinement (SYNGAR) could be implemented in different settings, we propose a refinement-based synthesis algorithm that uses abstract finite tree automata (AFTA) . Our technique uses a coarse initial program abstraction to construct an initial AFTA, which is iteratively refined by constructing a proof of incorrectness of any spurious program. In addition to ruling out the spurious program accepted by the previous AFTA, proofs of incorrectness are also useful for ruling out many other spurious programs. We implement these ideas in a framework called Blaze, which can be instantiated in different domains by providing a suitable DSL and its corresponding concrete and abstract semantics. We have used the Blaze framework to build synthesizers for string and matrix transformations, and we compare Blaze with existing techniques. Our results for the string domain show that Blaze compares favorably with FlashFill, a domain-specific synthesizer that is now deployed in Microsoft PowerShell. In the context of matrix manipulations, we compare Blaze against Prose, a state-of-the-art general-purpose VSA-based synthesizer, and show that Blaze results in a 90x speed-up over Prose. In both application domains, Blaze also consistently improves upon the performance of two other existing techniques by at least an order of magnitude.
Xinyu Wang 0006, Isil Dillig, Rishabh Singh
Proc. ACM Program. Lang.3
2017 A Vector Quantization Based Feature Descriptor for Online Signature Verification
abstract
This work proposes a scheme to authenticate the veracity of an individual through his / her online handwritten signature. The main contribution is in deriving a set of descriptors for verification based on a pre-generated codebook. The codebook, as such, comprises a set of codevectors that are obtained from a Vector Quantization based scheme applied on feature vectors of enrolled signatures of the user in question. The descriptors take into consideration, the score of each of the attributes in a feature vector, that are computed with regards of the proximity to their corresponding value in the assigned codevector. A second contribution of the paper deals with the idea of matching the signatures by associating a consistency factor to the descriptor of each of the codevectors. The consistency factors are pre-learnt by using the set of reference signatures enrolled to the system. In addition, we empirically demonstrate that the traditional dynamic time warping system used in conjunction to that built from the codebook descriptors can help improve the error rates. Experiments conducted on the MCYT-100 echo the efficacy of our proposal.
Vivek Venugopal, Abhishek Sharma 0006, Rishabh Singh, Suresh Sundaram 0001
ICDAR3
2017 Neuro-Symbolic Program Synthesis
Emilio Parisotto, Abdel-rahman Mohamed, Rishabh Singh, Lihong Li 0001, Dengyong Zhou, Pushmeet Kohli
ICLR (Poster)3
2017 RobustFill: Neural Program Learning under Noisy I/O
abstract
The problem of automatically generating a computer program from some specification has been studied since the early days of AI. Recently, two competing approaches for `automatic program learning’ have received significant attention: (1) `neural program synthesis’, where a neural network is conditioned on input/output (I/O) examples and learns to generate a program, and (2) `neural program induction’, where a neural network generates new outputs directly using a latent program representation. Here, for the first time, we directly compare both approaches on a large-scale, real-world learning task and we additionally contrast to rule-based program synthesis, which uses hand-crafted semantics to guide the program generation. Our neural models use a modified attention RNN to allow encoding of variable-sized sets of I/O pairs, which achieve 92\% accuracy on a real-world test set, compared to the 34\% accuracy of the previous best neural synthesis approach. The synthesis model also outperforms a comparable induction model on this task, but we more importantly demonstrate that the strength of each approach is highly dependent on the evaluation metric and end-user application. Finally, we show that we can train our neural models to remain very robust to the type of noise expected in real-world data (e.g., typos), while a highly-engineered rule-based system fails entirely.
Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, Pushmeet Kohli
ICML4
2017 Learn&Fuzz: machine learning for input fuzzing
abstract
Fuzzing consists of repeatedly testing an application with modified, or fuzzed, inputs with the goal of finding security vulnerabilities in input-parsing code. In this paper, we show how to automate the generation of an input grammar suitable for input fuzzing using sample inputs and neural-network-based statistical machine-learning techniques. We present a detailed case study with a complex input format, namely PDF, and a large complex security-critical parser for this format, namely, the PDF parser embedded in Microsoft's new Edge browser. We discuss and measure the tension between conflicting learning and fuzzing goals: learning wants to capture the structure of well-formed inputs, while fuzzing wants to break that structure in order to cover unexpected code paths and find bugs. We also present a new algorithm for this learn&fuzz challenge which uses a learnt input probability distribution to intelligently guide where to fuzz inputs.
Patrice Godefroid, Hila Peleg, Rishabh Singh
ASE3
2017 Data-Driven Feedback Generator for Online Programing Courses
abstract
Manually providing feedback for programming assignments is a tedious task in traditional classroom education. The challenge increases drastically in Massive open online courses (MOOCs), where the student-teacher ratio can reach thousands to one or even millions to one. Despite the necessity, the current automated feedback approaches suffer from significant weaknesses: inability to scale to larger programs, manual involvement of teacher effort, and lack of precision for pin-pointing errors. We present a technique to tackle these challenges by developing a data-driven automated grader, iGrader, capable of generating instant and precise feedback for programming assignments.
Ke Wang 0022, Benjamin Lin, Bjorn Rettig, Paul Pardi, Rishabh Singh
L@S5
2017 Neural Program Meta-Induction
abstract
Most recently proposed methods for Neural Program induction work under the assumption of having a large set of input/output (I/O) examples for learning any given input-output mapping. This paper aims to address the problem of data and computation efficiency of program induction by leveraging information from related tasks. Specifically, we propose two novel approaches for cross-task knowledge transfer to improve program induction in limited-data scenarios. In our first proposal, portfolio adaptation, a set of induction models is pretrained on a set of related tasks, and the best model is adapted towards the new task using transfer learning. In our second approach, meta program induction, a $k$-shot learning approach is used to make a model generalize to new tasks without additional training. To test the efficacy of our methods, we constructed a new benchmark of programs written in the Karel programming language. Using an extensive experimental evaluation on the Karel benchmark, we demonstrate that our proposals dramatically outperform the baseline induction method that does not use knowledge transfer. We also analyze the relative performance of the two approaches and study conditions in which they perform best. In particular, meta induction outperforms all existing approaches under extreme data sparsity (when a very small number of examples are available), i.e., fewer than ten. As the number of available I/O examples increase (i.e. a thousand or more), portfolio adapted program induction becomes the best approach. For intermediate data sizes, we demonstrate that the combined method of adapted meta program induction has the strongest performance.
Jacob Devlin, Rudy Bunel, Rishabh Singh, Matthew J. Hausknecht, Pushmeet Kohli
NIPS3
2017 NoFAQ: synthesizing command repairs from examples
abstract
Command-line tools are confusing and hard to use due to their cryptic error messages and lack of documentation. Novice users often resort to online help-forums for finding corrections to their buggy commands, but have a hard time in searching precisely for posts that are relevant to their problem and then applying the suggested solutions to their buggy command. We present NoFAQ, a tool that uses a set of rules to suggest possible fixes when users write buggy commands that trigger commonly occurring errors. The rules are expressed in a language called FIXIT and each rule pattern-matches against the user's buggy command and corresponding error message, and uses these inputs to produce a possible fixed command. NoFAQ automatically learns FIXIT rules from examples of buggy and repaired commands. We evaluate NoFAQ on two fronts. First, we use 92 benchmark problems drawn from an existing tool and show that NoFAQ is able to synthesize rules for 81 benchmark problems in real time using just 2 to 5 input-output examples for each rule. Second, we run our learning algorithm on the examples obtained through a crowd-sourcing interface and show that the learning algorithm scales to large sets of examples.
Loris D'Antoni, Rishabh Singh, Michael Vaughn
ESEC/SIGSOFT FSE2
2017 Synthesis of data completion scripts using finite tree automata
abstract
In application domains that store data in a tabular format, a common task is to fill the values of some cells using values stored in other cells. For instance, such data completion tasks arise in the context of missing value imputation in data science and derived data computation in spreadsheets and relational databases. Unfortunately, end-users and data scientists typically struggle with many data completion tasks that require non-trivial programming expertise. This paper presents a synthesis technique for automating data completion tasks using programming-by-example (PBE) and a very lightweight sketching approach. Given a formula sketch (e.g., AVG(? 1 , ? 2 )) and a few input-output examples for each hole, our technique synthesizes a program to automate the desired data completion task. Towards this goal, we propose a domain-specific language (DSL) that combines spatial and relational reasoning over tabular data and a novel synthesis algorithm that can generate DSL programs that are consistent with the input-output examples. The key technical novelty of our approach is a new version space learning algorithm that is based on finite tree automata (FTA). The use of FTAs in the learning algorithm leads to a more compact representation that allows more sharing between programs that are consistent with the examples. We have implemented the proposed approach in a tool called DACE and evaluate it on 84 benchmarks taken from online help forums. We also illustrate the advantages of our approach by comparing our technique against two existing synthesizers, namely Prose and Sketch.
Xinyu Wang 0006, Isil Dillig, Rishabh Singh
Proc. ACM Program. Lang.3
2016 Qlose: Program Repair with Quantitative Objectives
Loris D'Antoni, Roopsha Samanta, Rishabh Singh
CAV (2)3
2016 Understanding Conversational Programmers: A Perspective from the Software Industry
abstract
Recent research suggests that some students learn to program with the goal of becoming conversational programmers: they want to develop programming literacy skills not to write code in the future but mainly to develop conversational skills and communicate better with developers and to improve their marketability. To investigate the existence of such a population of conversational programmers in practice, we surveyed professionals at a large multinational technology company who were not in software development roles. Based on 3151 survey responses from professionals who never or rarely wrote code, we found that a significant number of them (42.6%) had invested in learning programming on the job. While many of these respondents wanted to perform traditional end-user programming tasks (e.g., data analysis), we discovered that two top motivations for learning programming were to improve the efficacy of technical conversations and to acquire marketable skillsets. The main contribution of this work is in empirically establishing the existence and characteristics of conversational programmers in a large software development context.
Parmit K. Chilana, Rishabh Singh, Philip J. Guo
CHI2
2016 FIDEX: filtering spreadsheet data using examples
abstract
Data filtering in spreadsheets is a common problem faced by millions of end-users. The task of data filtering requires a computational model that can separate intended positive and negative string instances. We present a system, FIDEX, that can efficiently learn desired data filtering expressions from a small set of positive and negative string examples.
Xinyu Wang 0006, Sumit Gulwani, Rishabh Singh
OOPSLA3
2016 Transforming spreadsheet data types using examples
abstract
Cleaning spreadsheet data types is a common problem faced by millions of spreadsheet users. Data types such as date, time, name, and units are ubiquitous in spreadsheets, and cleaning transformations on these data types involve parsing and pretty printing their string representations. This presents many challenges to users because cleaning such data requires some background knowledge about the data itself and moreover this data is typically non-uniform, unstructured, and ambiguous. Spreadsheet systems and Programming Languages provide some UI-based and programmatic solutions for this problem but they are either insufficient for the user's needs or are beyond their expertise. In this paper, we present a programming by example methodology of cleaning data types that learns the desired transformation from a few input-output examples. We propose a domain specific language with probabilistic semantics that is parameterized with declarative data type definitions. The probabilistic semantics is based on three key aspects: (i) approximate predicate matching, (ii) joint learning of data type interpretation, and (iii) weighted branches. This probabilistic semantics enables the language to handle non-uniform, unstructured, and ambiguous data. We then present a synthesis algorithm that learns the desired program in this language from a set of input-output examples. We have implemented our algorithm as an Excel add-in and present its successful evaluation on 55 benchmark problems obtained from online help forums and Excel product team.
Rishabh Singh, Sumit Gulwani
POPL1
2016 BlinkFill: Semi-supervised Programming By Example for Syntactic String Transformations
abstract
The recent Programming By Example (PBE) techniques such as FlashFill have shown great promise for enabling end-users to perform data transformation tasks using input-output examples. Since examples are inherently an under-specification, there are typically a large number of hypotheses conforming to the examples, and the PBE techniques suffer from scalability issues for finding the intended program amongst the large space. We present a semi-supervised learning technique to significantly reduce this ambiguity by using the logical information present in the input data to guide the synthesis algorithm. We develop a data structure InputDataGraph to succinctly represent a large set of logical patterns that are shared across the input data, and use this graph to efficiently learn substring expressions in a new PBE system B link F ill . We evaluate B link F ill on 207 real-world benchmarks and show that B link F ill is significantly faster (on average 41x) and requires fewer input-output examples (1.27 vs 1.53) to learn the desired transformations in comparison to F lash F ill .
Rishabh Singh
Proc. VLDB Endow.1
2015 Predicting a Correct Program in Programming by Example
Rishabh Singh, Sumit Gulwani
CAV (1)1
2015 User Interaction Models for Disambiguation in Programming by Example
abstract
Programming by Examples (PBE) has the potential to revolutionize end-user programming by enabling end users, most of whom are non-programmers, to create small scripts for automating repetitive tasks. However, examples, though often easy to provide, are an ambiguous specification of the user's intent. Because of that, a key impedance in adoption of PBE systems is the lack of user confidence in the correctness of the program that was synthesized by the system. We present two novel user interaction models that communicate actionable information to the user to help resolve ambiguity in the examples. One of these models allows the user to effectively navigate between the huge set of programs that are consistent with the examples provided by the user. The other model uses active learning to ask directed example-based questions to the user on the test input data over which the user intends to run the synthesized program. Our user studies show that each of these models significantly reduces the number of errors in the performed task without any difference in completion time. Moreover, both models are perceived as useful, and the proactive active-learning based model has a slightly higher preference regarding the users' confidence in the result.
Mikaël Mayer, Gustavo Soares, Maxim Grechkin, Vu Le 0002, Mark Marron, Oleksandr Polozov, Rishabh Singh, Benjamin G. Zorn, Sumit Gulwani
UIST7
2015 OverCode: Visualizing Variation in Student Solutions to Programming Problems at Scale
abstract
In MOOCs, a single programming exercise may produce thousands of solutions from learners. Understanding solution variation is important for providing appropriate feedback to students at scale. The wide variation among these solutions can be a source of pedagogically valuable examples and can be used to refine the autograder for the exercise by exposing corner cases. We present OverCode, a system for visualizing and exploring thousands of programming solutions. OverCode uses both static and dynamic analysis to cluster similar solutions, and lets teachers further filter and cluster solutions based on different criteria. We evaluated OverCode against a nonclustering baseline in a within-subjects study with 24 teaching assistants and found that the OverCode interface allows teachers to more quickly develop a high-level view of students' understanding and misconceptions, and to provide feedback that is relevant to more students' solutions.
Elena L. Glassman, Jeremy Scott, Rishabh Singh, Philip J. Guo, Rob Miller 0001
ACM Trans. Comput. Hum. Interact.3
2014 Feature engineering for clustering student solutions
abstract
Open-ended homework problems such as coding assignments give students a broad range of freedom for the design of solutions. We aim to use the diversity in correct solutions to enhance student learning by automatically suggesting alternate solutions. Our approach is to perform a two-level hierarchical clustering of student solutions to first partition them based on the choice of algorithm and then partition solutions implementing the same algorithm based on low-level implementation details. Our initial investigations in domains of introductory programming and computer architecture demonstrate that we need two different classes of features to perform effective clustering at the two levels, namely abstract features and concrete features.
Elena L. Glassman, Rishabh Singh, Rob Miller 0001
L@S2
2014 Modular Synthesis of Sketches Using Models
Rohit Singh 0002, Rishabh Singh, Zhilei Xu, Rebecca Krosnick, Armando Solar-Lezama
VMCAI2
2013 Syntax-guided synthesis
Rajeev Alur, Rastislav Bodík, Garvit Juniwal, Milo M. K. Martin, Mukund Raghothaman, Sanjit A. Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, Abhishek Udupa
FMCAD7
2013 Automated feedback generation for introductory programming assignments
abstract
We present a new method for automatically providing feedback for introductory programming problems. In order to use this method, we need a reference implementation of the assignment, and an error model consisting of potential corrections to errors that students might make. Using this information, the system automatically derives minimal corrections to student's incorrect solutions, providing them with a measure of exactly how incorrect a given solution was, as well as feedback about what they did wrong.
Rishabh Singh, Sumit Gulwani, Armando Solar-Lezama
PLDI1
2012 Synthesizing Number Transformations from Input-Output Examples
Rishabh Singh, Sumit Gulwani
CAV1
2012 SPT: Storyboard Programming Tool
Rishabh Singh, Armando Solar-Lezama
CAV1
2012 Learning Semantic String Transformations from Examples
abstract
We address the problem of performing semantic transformations on strings, which may represent a variety of data types (or their combination) such as a column in a relational table, time, date, currency, etc. Unlike syntactic transformations, which are based on regular expressions and which interpret a string as a sequence of characters, semantic transformations additionally require exploiting the semantics of the data type represented by the string, which may be encoded as a database of relational tables. Manually performing such transformations on a large collection of strings is error prone and cumbersome, while programmatic solutions are beyond the skill-set of end-users. We present a programming by example technology that allows end-users to automate such repetitive tasks. We describe an expressive transformation language for semantic manipulation that combines table lookup operations and syntactic manipulations. We then present a synthesis algorithm that can learn all transformations in the language that are consistent with the user-provided set of input-output examples. We have implemented this technology as an add-in for the Microsoft Excel Spreadsheet system and have evaluated it successfully over several benchmarks picked from various Excel help-forums.
Rishabh Singh, Sumit Gulwani
Proc. VLDB Endow.1
2011 Synthesizing data structure manipulations from storyboards
abstract
We present the Storyboard Programming framework, a new synthesis system designed to help programmers write imperative low-level data-structure manipulations. The goal of this system is to bridge the gap between the "boxes-and-arrows" diagrams that programmers often use to think about data-structure manipulation algorithms and the low-level imperative code that implements them. The system takes as input a set of partial input-output examples, as well as a description of the high-level structure of the desired solution. From this information, it is able to synthesize low-level imperative implementations in a matter of minutes.
Rishabh Singh, Armando Solar-Lezama
SIGSOFT FSE1
2010 Learning Component Interfaces with May and Must Abstractions
Rishabh Singh, Dimitra Giannakopoulou, Corina Pasareanu
CAV1
2009 Equality and hashing for (almost) free: Generating implementations from abstraction functions
abstract
In an object-oriented language such as Java, every class requires implementations of two special methods, one for determining equality and one for computing hash codes. Although the specification of these methods is usually straightforward, they can be hard to code (due to subclassing, delegation, cyclic references, and other factors) and often harbor subtle faults. A technique is presented that simplifies this task. Instead of writing code for the methods, the programmer gives, as a brief annotation, an abstraction function that defines an abstract view of an object's representation, and sometimes an additional observer in the form of an iterator method. Equality and hash codes are then computed in library code that uses reflection to read the annotations. Experiments on a variety of programs suggest that, in comparison to writing the methods by hand, our technique requires less text from the programmer and results in methods that are more often correct.
Derek Rayside, Zev Benjamin, Rishabh Singh, Joseph P. Near, Aleksandar Milicevic, Daniel Jackson 0001
ICSE3