Code Recommender Systems

Helping Developers use APIs

Do you often spend time searching for how to use a specific library to accomplish your programming task? Do you wish there was a concise code example that you can just integrate into your project? You are not alone. Many developers spend considerable time searching for APIs to use, known issues with a code snippet, or for examples to help them learn a new technology or library. Different types of recommender systems save developers some of this time and pain. In this line of work, we investigate various support tools and recommender systems (Code search, code completion, code generation, etc.) to help developers navigation API information more easily and write better code faster.

To build code recommender systems, we curate and build data sets, build support techniques (e.g., code completion, code search, documentation navigation), and evaluate these techniques through quantitative empirical methods or qualitative methods (e.g., surveys or user studies). This line of work involves static code analysis, data mining, and natural language processing.

Related Resources

Related Publications

2022

  1. MSR
    Does This Apply to Me? An Empirical Study of Technical Context in Stack Overflow
    Akalanka Galappaththi, Sarah Nadi, and Christoph Treude
    In Proceedings of the 19th ACM International Conference on Mining Software Repositories (MSR) , 2022

2021

  1. EMSE
    FACER: An API Usage-based Code-example Recommender for Opportunistic Reuse
    Shamsa Abid, Shafay Shamail, Hamid Abdul Basit, and Sarah Nadi
    Empirical Software Engineering, 2021
  2. EMSE
    On Using Stack Overflow Comment-Edit Pairs to Recommend Code Maintenance Changes
    Henry Tang, and Sarah Nadi
    Empirical Software Engineering, 2021

2020

  1. SANER
    Essential Sentences for Navigating Stack Overflow
    Sarah Nadi, and Christoph Treude
    In Proceedings of the IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER ’20), 2020

2019

  1. MSR
    A Dataset of Non-Functional Bugs
    Aida Radu, and Sarah Nadi
    In Proceedings of the 16th International Conference on Mining Software Repositories (MSR ’19) – Data Showcase Track, 2019

2017

  1. SANER
    Enriching In-IDE Process Information with Fine-grained Source Code History
    Sebastian Proksch, Sarah Nadi, Sven Amann, and Mira Mezini
    In Proceedings of the 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER ’17), 2017

2016

  1. ASE
    Evaluating the Evaluations of Code Recommender Systems: A Reality Check
    Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini
    In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE ’16), 2016
  2. Addressing Scalability in API Method Call Analytics
    Ervina Cergani, Sebastian Proksch, Sarah Nadi, and Mira Mezini
    In 2nd International Workshop on Software Analytics (SWAN ’16), 2016
  3. MSR
    A Dataset of Simplified Syntax Trees for C#
    Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini
    In Proceedings of the 13th International Conference on Mining Software Repositories – Data Showcase Track (MSR ’16), 2016