Intelligent Programming Assistants
Programming is a challenging, time-consuming task that requires people recall broad sets of information. While modern development heavily relies on web resources for assistance, it leaves the end user to search for information sources, recognize an answer, and integrate it. This research direction aims to create mixed-initiative intelligent assistants to help programmers create software faster and more efficiently than ever before [2,3].
- How do we create tools to better support one (many) remote helper(s) to one end user (developer)?
- How do we route the questions to the best fit helpers so that the cost and time are optimized?
- How do we recruit and manage expert crowds efficiently?
- How do we leverage crowd workers at once to improve performance (speed, accuracy, etc) on developer help tasks? [2,3]
- How do we automate the help to create mixed-initiative intelligent assistants?
CrowdAssist is an on-going project that aims to develop intelligent system that helps end-user developers build software with multiple remote helpers support them on demand. The current system consists of 1) an IDE plugin that allows end-users to make requests and receive responses without going to other third-party applications, and 2) a site that allows remote helpers to view the requests and provide their responses. CrowdAssist introduces a collective-response based interaction, similar to Chorus , to software development to better support developers using expert crowd on demand.
Key Publications W.S. Lasecki, R. Wesley, J. Nichols, A. Kulkarni, J.F. Allen, J.P. Bigham. Chorus: A Crowd-Powered Conversational Assistant. In Proceedings of the ACM Symposium on User Interface Software and Technology (UIST 2013). St Andrews, UK. p151-162.