Intelligent Programming Assistants


Figure of CrowdAssist system architecture. End-user developer (left) makes audio requests in the IDE, which will be sent to remote on-demand expert crowds. Once the request receiving response, it will be sent back to the IDE.

Figure of CrowdAssist system architecture. End-user developer (left) makes audio requests in the IDE, which will be sent to remote on-demand expert crowds. Once the request receiving response, it will be sent back to the IDE.



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].


Broad Challenges:
  • 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

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 [1], to software development to better support developers using expert crowd on demand.



Key Publications

[1]   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.
[2]  
  • Y. Chen, S. Oney, W.S. Lasecki. Towards Providing On-Demand Expert Support for Software Developers. In Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI 2016). San Jose, CA.
    [3]   Y. Chen, S.W. Lee, Y. Xie, Y. Yang, W.S. Lasecki, and S. Oney. Codeon: On-Demand Software Development Assistance. In Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI 2017). Denver, CO.