Weitere Kapitel dieses Buchs durch Wischen aufrufen
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.
Bitte loggen Sie sich ein, um Zugang zu diesem Inhalt zu erhalten
Sie möchten Zugang zu diesem Inhalt erhalten? Dann informieren Sie sich jetzt über unsere Produkte:
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).
Begel, A., & Simon, B. (2008). Novice software developers, all over again. In International Computing Education Research Workshop.
Carter, J. (2014). Automatic difficulty detection. Ph.D., Chapel Hill: University of North Carolina.
Carter, J., & Dewan, P. (2010a). Are you having difficulty. In Proceedings of CSCW. Atlanta: ACM.
Carter, J., & Dewan P. (2010b). Design, implementation, and evaluation of an approach for determining when programmers are having difficulty. In Proceedings Group 2010, ACM.
Carter, J., Dewan P., & Pichilinani M. (2015). Towards incremental separation of surmountable and insurmountable programming difficulties. In Proceedings SIGCSE, ACM.
Cockburn, A., & Williams L. (2001). The costs and benefits of pair programming. Boston: Addison Wesley.
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.
Dewan, P. (1998). Architectures for collaborative applications. Trends in Software: Computer Supported Co-operative Work, 7, 165–194.
Dewan, P. (2015). Towards emotion-based collaborative software engineering. In Proceedings of ICSE CHASE Workshop, IEEE.
Ellwanger, D., Dillon, N., Wu, T., Carter J., & Dewan, P. (2015). Scalable mixed-focus collaborative difficulty resolution: A demonstration. In CSCW Companion Proceedings ACM.
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.
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.
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.
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.
Herbsleb, J. D., Mockus, A., Finholt, T. A., & Grinter, R. E. (2000). Distance, dependencies, and delay in a global collaboration. In Proceedings of CSCW.
Humphrey, W. (1997). A discipline for software engineering. Boston: Addison Wesley.
Iqbal, S., & Bailey, B. (2007). Understanding and developing models for detecting and differentiating breakpoints during interactive tasks. In Proceedings of CHI, ACM.
Kapoor, A., Burlesonc, W., & Picard, R. W. (2007). Automatic prediction of frustration. International Journal of Human-Computer Studies 65(8).
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.
LaToza, T. D., Venolia, G., & Deline, R. (2006). Maintaining mental models: A study of developer work habits. In Proceedings of ICSE, IEEE.
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.
McDuff, D., Karlson, A., Kapoor, A., Roseway, A., & Czerwinski, M. (2012). AffectAura: An intelligent system for emotional memory. In Proceedings of CHI.
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.
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.
Smith, M., & Shumar, W. (2004). Using netscan to study identity and interaction in a virtual community. In Proceedings of ASA.
Teasley, S., Covi, L., Krishnan, M. S., & Olson, J. S. (2000). How does radical collocation help a team succeed? In Proceedings of CSCW.
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).
Witten, I. H., & Frank, E. (1999). Data mining: Practical machine learning tools and techniques with java implementations. Burlington: Morgan Kaufmann.
- Mining Programming Activity to Promote Help
Neuer Inhalt/© Filograph | Getty Images | iStock