Canada Spends Logo

Explorez notre analyse du budget 2026

Grant: Collaborative Research and Development Grants

University of Waterloo

$76,924.00

IDE-assisted learning (IDEAL): helping developers to solve their ""now problems"" now

EF 2018-19

Résumé
Software developers often have problems in making effective use of new and changing technologies. When they reach a point when the use of a new technology, such as a library or framework, is required in their development task, they often must pause what they are doing, and learn about both the abstract concepts and the detailed API usage from external sources. This context switch can be a significant productivity drain to a developer doing creative design work. With strongly-typed languages such as Java, tools such as autocompletion can be built into the integrated development environment (IDE) to help developers recall API details with little disruption. For dynamically-typed languages such as Javascript, it is much harder to anticipate the likely usage scenario, since the type information of the variables can be hard to infer. In this work, we look to exploit history, by mining both previous usage of the APIs in question from existing code bases, and by processing curated API documentation to search for hints for usage patterns. Using machine learning, natural language processing, and data mining techniques, we will build recommendation engines that can be integrated into the IDE to provide help to developers working with dynamic programming languages, libraries, and frameworks. In this way, developers will encounter fewer interruptions in their work flow, and spend less time reading through API documentation, allowing them to better focus on their development task at hand.*
Programme
Collaborative Research and Development Grants
Emplacement
Ontario, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data

Tel que publié

Application id
521667-2017
Name nom
Godfrey, Michael
Department département
Computer Science, David R. Cheriton School of
Organization id
33
Institution établissement
University of Waterloo
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2018
Competition year année de concours
2017
Award amount
76924
Program id
CRDPJ
Program name en
Collaborative Research and Development Grants
Program name fr
Subventions de recherche et développement coopérative
Group en
Research partnerships programs
Group fr
Programmes de partenariat
Committee code
96
Committee name en
RPP Internal Decision Cttee
Committee name fr
Cté de décision interne - PPR
Area of application code
802
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Information systems and technology
Area of application fr
Systèmes d'information et technologie de l'information
Research subject code
2706
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Software engineering
Research subject fr
Génie logiciel
Partie
1
Nb partie
1
Application title
IDE-assisted learning (IDEAL): helping developers to solve their ""now problems"" now
Keyword
NSERC
Application summary
Software developers often have problems in making effective use of new and changing technologies. When they reach a point when the use of a new technology, such as a library or framework, is required in their development task, they often must pause what they are doing, and learn about both the abstract concepts and the detailed API usage from external sources. This context switch can be a significant productivity drain to a developer doing creative design work. With strongly-typed languages such as Java, tools such as autocompletion can be built into the integrated development environment (IDE) to help developers recall API details with little disruption. For dynamically-typed languages such as Javascript, it is much harder to anticipate the likely usage scenario, since the type information of the variables can be hard to infer. In this work, we look to exploit history, by mining both previous usage of the APIs in question from existing code bases, and by processing curated API documentation to search for hints for usage patterns. Using machine learning, natural language processing, and data mining techniques, we will build recommendation engines that can be integrated into the IDE to provide help to developers working with dynamic programming languages, libraries, and frameworks. In this way, developers will encounter fewer interruptions in their work flow, and spend less time reading through API documentation, allowing them to better focus on their development task at hand.*