Skip to main content

Abstract

We have investigated techniques for mining programming activity to offer help to programmers in difficulty. We have developed a (a) difficulty-detection mechanism based on the notion of command ratios; (b) difficulty-classification mechanism that uses both command ratios and rates; and (c) collaboration mechanism that provides both workspace and difficulty awareness. Our studies involve interviews and lab and field experiments, and indicate that (a) it is possible to mine programming activity to reliably detect and classify difficulties, (b) it is possible to build a collaborative environment to offer opportunistic help, (c) programmers are not unnerved by and find it useful to receive unsolicited help arriving in response to automatically detected difficulties, (d) the acceptable level of privacy in a help-promotion tool depends on whether the developers in difficulty are student or industrial programmers, and whether they have been exposed earlier to a help promotion tool, and (e) difficulty detection can filter out spurious help requests and reduce the need for meetings required to poll for rare difficulty events.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  • Anderson, J. R., & Reiser, B. J. (1985). The LISP tutor: It approaches the effectiveness of a human tutor. Lecture Notes in Computer Science 10(4).

    Google Scholar 

  • Begel, A., & Simon, B. (2008). Novice software developers, all over again. In International Computing Education Research Workshop.

    Google Scholar 

  • Carter, J. (2014). Automatic difficulty detection. Ph.D., Chapel Hill: University of North Carolina.

    Google Scholar 

  • Carter, J., & Dewan, P. (2010a). Are you having difficulty. In Proceedings of CSCW. Atlanta: ACM.

    Google Scholar 

  • Carter, J., & Dewan P. (2010b). Design, implementation, and evaluation of an approach for determining when programmers are having difficulty. In Proceedings Group 2010, ACM.

    Google Scholar 

  • Carter, J., Dewan P., & Pichilinani M. (2015). Towards incremental separation of surmountable and insurmountable programming difficulties. In Proceedings SIGCSE, ACM.

    Google Scholar 

  • Cockburn, A., & Williams L. (2001). The costs and benefits of pair programming. Boston: Addison Wesley.

    Google Scholar 

  • Dabbish, L., & Kraut R. E. (2004). Controlling interruptions: awareness displays and social motivation for coordination. In Proceedings of CSCW (pp. 182–191), New York: ACM Press.

    Google Scholar 

  • Dewan, P. (1998). Architectures for collaborative applications. Trends in Software: Computer Supported Co-operative Work, 7, 165–194.

    Google Scholar 

  • Dewan, P. (2015). Towards emotion-based collaborative software engineering. In Proceedings of ICSE CHASE Workshop, IEEE.

    Google Scholar 

  • Ellwanger, D., Dillon, N., Wu, T., Carter J., & Dewan, P. (2015). Scalable mixed-focus collaborative difficulty resolution: A demonstration. In CSCW Companion Proceedings ACM.

    Google Scholar 

  • Fitzpatrick, G., Marshall, P., & Phillips, A. (2006). CVS integration with notification and chat: Lightweight software team collaboration. In Proceedings of CSCW (pp. 49–58). New York: ACM Press.

    Google Scholar 

  • Fogarty, J., Hudson, S. E., Atkeson, C. G., Avrahami, D., Forlizzi, J., Kiesler, S., Lee, J. C., & Yang, J. (2005). Predicting human interruptibility with sensors. ACM Transactions on Computer-Human Interaction 12(1), 119–146.

    Google Scholar 

  • Hegde, R., & Dewan, P. (2008). Connecting programming environments to support Ad-Hoc collaboration. In Proceedings of 23rd IEEE/ACM Conference on Automated Software Engineering, L’Aquila Italy, IEEE/ACM.

    Google Scholar 

  • Herbsleb, J., & Grinter, R. E. (1999). Splitting the organization and integrating the code: Conway’s law revisited. In Proceedings of International Conference on Software Engineering.

    Google Scholar 

  • Herbsleb, J. D., Mockus, A., Finholt, T. A., & Grinter, R. E. (2000). Distance, dependencies, and delay in a global collaboration. In Proceedings of CSCW.

    Google Scholar 

  • Humphrey, W. (1997). A discipline for software engineering. Boston: Addison Wesley.

    Google Scholar 

  • Iqbal, S., & Bailey, B. (2007). Understanding and developing models for detecting and differentiating breakpoints during interactive tasks. In Proceedings of CHI, ACM.

    Google Scholar 

  • Kapoor, A., Burlesonc, W., & Picard, R. W. (2007). Automatic prediction of frustration. International Journal of Human-Computer Studies 65(8).

    Google Scholar 

  • Ko, A., Myers, B. A., & Aung, H. H. (2004). Six learning barriers in end-user programming systems. In Proceedings of IEEE Symposium on Visual Languages—Human Centric Computing.

    Google Scholar 

  • LaToza, T. D., Venolia, G., & Deline, R. (2006). Maintaining mental models: A study of developer work habits. In Proceedings of ICSE, IEEE.

    Google Scholar 

  • Long, D., Dillon, N., Wang, K., Carter, J., & Dewan, P. (2015). Interactive control and visualization of difficulty inferences from user-interface commands. In IUI Companion Proceedings (pp. 25–28), Atlanta: ACM.

    Google Scholar 

  • McDuff, D., Karlson, A., Kapoor, A., Roseway, A., & Czerwinski, M. (2012). AffectAura: An intelligent system for emotional memory. In Proceedings of CHI.

    Google Scholar 

  • Murphy, C., Kaiser, G. E., Loveland, K., & Hasan, S. (2009). Retina: Helping students and instructors based on observed programming activities. In Proceedings of ACM SIGCSE.

    Google Scholar 

  • Piech, C., Sahami, M., Koller, D., Cooper, S., & Blikstein, P. A. (2012). Modeling how students learn to program. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education.

    Google Scholar 

  • Smith, M., & Shumar, W. (2004). Using netscan to study identity and interaction in a virtual community. In Proceedings of ASA.

    Google Scholar 

  • Teasley, S., Covi, L., Krishnan, M. S., & Olson, J. S. (2000). How does radical collocation help a team succeed? In Proceedings of CSCW.

    Google Scholar 

  • Tee, K., Greenberg, S., & Gutwin, C. (2006). Providing artifact awareness to a distributed group through screen sharing. In Proceedings of ACM CSCW (Computer Supported Cooperative Work).

    Google Scholar 

  • Witten, I. H., & Frank, E. (1999). Data mining: Practical machine learning tools and techniques with java implementations. Burlington: Morgan Kaufmann.

    Google Scholar 

Download references

Acknowledgment

This research was supported in part by the NSF IIS 1250702 award.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Prasun Dewan .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Carter, J., Dewan, P. (2015). Mining Programming Activity to Promote Help. In: Boulus-Rødje, N., Ellingsen, G., Bratteteig, T., Aanestad, M., Bjørn, P. (eds) ECSCW 2015: Proceedings of the 14th European Conference on Computer Supported Cooperative Work, 19-23 September 2015, Oslo, Norway. Springer, Cham. https://doi.org/10.1007/978-3-319-20499-4_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-20499-4_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-20498-7

  • Online ISBN: 978-3-319-20499-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics