[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1518701.1518944acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
research-article

Two studies of opportunistic programming: interleaving web foraging, learning, and writing code

Published: 04 April 2009 Publication History

Abstract

This paper investigates the role of online resources in problem solving. We look specifically at how programmers - an exemplar form of knowledge workers - opportunistically interleave Web foraging, learning, and writing code. We describe two studies of how programmers use online resources. The first, conducted in the lab, observed participants' Web use while building an online chat room. We found that programmers leverage online resources with a range of intentions: They engage in just-in-time learning of new skills and approaches, clarify and extend their existing knowledge, and remind themselves of details deemed not worth remembering. The results also suggest that queries for different purposes have different styles and durations. Do programmers' queries "in the wild" have the same range of intentions, or is this result an artifact of the particular lab setting? We analyzed a month of queries to an online programming portal, examining the lexical structure, refinements made, and result pages visited. Here we also saw traits that suggest the Web is being used for learning and reminding. These results contribute to a theory of online resource usage in programming, and suggest opportunities for tools to facilitate online knowledge work.

References

[1]
Adobe Flex Developer Center, 2008. http://www.adobe.com/devnet/flex/.
[2]
S. Bajracharya, T. Ngo, E. Linstead, Y. Dou, P. Rigor, P. Baldi, and C. Lopes. Sourcerer: A Search Engine for Open Source Code Supporting Structure-Based Search. In Companion to OOPSLA 2006: ACM Symposium on Object-oriented Programming Systems, Languages, and Applications, pages 681--682, Portland, Oregon, 2006.
[3]
I. D. Baxter, A. Yahin, L. Moura, M. Sant'Anna, and L. Bier. Clone Detection Using Abstract Syntax Trees. In Proceedings of ICSM 1998: IEEE International Conference on Software Maintenance, page 368, Washington, D.C., USA, 1998.
[4]
J. Brandt, P. J. Guo, J. Lewenstein, and S. R. Klemmer. Opportunistic Programming: How Rapid Ideation and Prototyping Occur in Practice. In WEUSE 2008: International Workshop on End-User Software Engineering, pages 1--5, Leipzig, Germany, 2008.
[5]
S. Carter, J. Mankoff, S. R. Klemmer, and T. Matthews. Exiting the Cleanroom: On Ecological Validity and Ubiquitous Computing. Human-Computer Interaction, 23(1):47--99, 2008.
[6]
J. Chong and R. Siino. Interruptions on Software Teams: A Comparison of Paired and Solo Programmers. In Proceedings of CSCW 2006: ACM Conference on Computer Supported Cooperative Work, 2006.
[7]
C. W. Choo, B. Detlor, and D. Turnbull. Web Work: Information Seeking and Knowledge Work on the World Wide Web. Kluwer Academic Publishers, 2000.
[8]
S. Clarke. What is an End-User Software Engineer? In End-User Software Engineering Dagstuhl Seminar, Dagstuhl, Germany, 2007.
[9]
A. L. Cox and R. M. Young. Device-Oriented and Task-Oriented Exploratory Learning of Interactive Devices. Proceedings of ICCM 2000: International Conference on Cognitive Modeling, pages 70--77, 2000.
[10]
S. Ducasse, M. Rieger, and S. Demeyer. A Language Independent Approach for Detecting Duplicated Code. In Proceedings of ICSM 1999: IEEE International Conference on Software Maintenance, page 109, Oxford, England, 1999.
[11]
Francoise Detienne. Software Design: Cognitive Aspects. Springer, 2001.
[12]
C. Grimes, D. Tang, and D. M. Russell. Query Logs Alone are Not Enough. In Workshop on Query Log Analysis at WWW 2007: International World Wide Web Conference, Banff, Alberta, Canada, 2007.
[13]
B. Hartmann, S. Doorley, and S. R. Klemmer. Hacking, Mashing, Gluing: Understanding Opportunistic Design. IEEE Pervasive Computing, September 2008.
[14]
B. Hartmann, L. Wu, K. Collins, and S. R. Klemmer. Programming by a Sample: Rapidly Creating Web Applications with d.mix. In Proceedings of UIST 2007: ACM Symposium on User Interface Software and Technology, pages 241--250, Newport, Rhode Island, 2007.
[15]
R. Hoffmann, J. Fogarty, and D. S. Weld. Assieme: Finding and Leveraging Implicit References in a Web Search Interface for Programmers. In Proceedings of UIST 2007: ACM Symposium on User Interface Software and Technology, pages 13--22, Newport, Rhode Island, 2007.
[16]
J. Hollan, E. Hutchins, and D. Kirsh. Distributed Cognition: Toward a New Foundation for Human-Computer Interaction Research. ACM Transactions on Computer-Human Interaction, 7(2):174--196, 2000.
[17]
A. Hunt and D. Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Professional, October 1999.
[18]
M. Kim, L. Bergman, T. Lau, and D. Notkin. An Ethnographic Study of Copy and Paste Programming Practices in OOPL. In Proceedings of ISESE 2004: IEEE International Symposium on Empirical Software Engineering, pages 83--92, Redondo Beach, California, 2004.
[19]
A. J. Ko, B. A. Myers, and H. H. Aung. Six Learning Barriers in End-User Programming Systems. In Proceedings of VL/HCC 2004: IEEE Symposium on Visual Languages and Human-Centric Computing, pages 199--206, Rome, Italy, 2004.
[20]
T. Lau and E. Horvitz. Patterns of Search: Analyzing and Modeling Web Query Refinement. In Proceedings of UM 1999: International Conference on User Modeling, pages 119--128, Banff, Alberta, Canada, 1999.
[21]
H. Lieberman, F. Paterno, and V. Wulf. End-User Development. Springer, October 2006.
[22]
G. Little and R. C. Miller. Translating Keyword Commands into Executable Code. In Proceedings of UIST 2006: ACM Symposium on User Interface Software and Technology, pages 135--144, Montreux, Switzerland, 2006.
[23]
A. MacLean, K. Carter, L. Lovstrand, and T. Moran. User-Tailorable Systems: Pressing the Issues with Buttons. In Proceedings of CHI 1990: ACM Conference on Human Factors in Computing Systems, pages 175--182, Seattle, Washington, 1990. ACM.
[24]
D. Mandelin, L. Xu, R. Bodik, and D. Kimelman. Jungloid Mining: Helping to Navigate the API jungle. In Proceedings of PLDI 2005: ACM Conference on Programming Language Design and Implementation, pages 48--61, Chicago, Illinois, 2005.
[25]
R. C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 1st edition, 2002.
[26]
R. E. Mayer. The Psychology of How Novices Learn Computer Programming. ACM Computing Surveys, 13(1):121--141, 1981.
[27]
B. Myers, S. Y. Park, Y. Nakano, G. Mueller, and A. Ko. How Designers Design and Program Interactive Behaviors. In Proceedings of VL/HCC 2008: IEEE Symposium on Visual Languages and Human-Centric Computing, pages 177--184, 2008.
[28]
P. L. T. Pirolli. Information Foraging Theory. Oxford University Press, Oxford, England, 2007.
[29]
N. Sahavechaphan and K. Claypool. XSnippet: Mining for Sample Code. ACM SIGPLAN Notices, 41(10):413--430, 2006.
[30]
C. Scaffidi, M. Shaw, and B. A. Myers. Estimating the Numbers of End Users and End User Programmers. pages 207--214, Dallas, Texas, 2005.
[31]
C. Silverstein, H. Marais, M. Henzinger, and M. Moricz. Analysis of a Very Large Web Search Engine Query Log. ACM SIGIR Forum, 33(1):6--12, 1999.
[32]
J. Stylos and B. A. Myers. Mica: A Web-Search Tool for Finding API Components and Examples. In Proceedings of VL/HCC 2006: IEEE Symposium on Visual Languages and Human-Centric Computing, pages 195--202, Brighton, United Kingdom, 2006.
[33]
S. Turkle and S. Papert. Epistemological Pluralism: Styles and Voices within the Computer Culture. Signs: Journal of Women in Culture and Society, 16(1), 1990.
[34]
J. Wong and J. I. Hong. Marmite: Towards End-User Programming for the Web. In Proceedings of VL/HCC 2007: IEEE Symposium on Visual Languages and Human-Centric Computing, pages 270--271, 2007.
[35]
R. B. Yeh, A. Paepcke, and S. R. Klemmer. Iterative Design and Evaluation of an Event Architecture for Pen-and-Paper Interfaces. In Proceedings of UIST 2008: ACM Symposium on User Interface Software and Technology, Monterey, California, 2008.

Cited By

View all
  • (2024)An API Recommendation Method for Querying Mobile Computing ProblemsInternational Journal of Cognitive Informatics and Natural Intelligence10.4018/IJCINI.34442218:1(1-16)Online publication date: 30-May-2024
  • (2024)How New Developers Approach Augmented Reality Development Using Simplified Creation Tools: An Observational StudyMultimodal Technologies and Interaction10.3390/mti80400358:4(35)Online publication date: 22-Apr-2024
  • (2024)Optimizing OCR Performance for Programming Videos: The Role of Image Super-Resolution and Large Language ModelsMathematics10.3390/math1207103612:7(1036)Online publication date: 30-Mar-2024
  • Show More Cited By

Index Terms

  1. Two studies of opportunistic programming: interleaving web foraging, learning, and writing code

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      CHI '09: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
      April 2009
      2426 pages
      ISBN:9781605582467
      DOI:10.1145/1518701
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 04 April 2009

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. copy-and-paste
      2. opportunistic programming
      3. prototyping

      Qualifiers

      • Research-article

      Conference

      CHI '09
      Sponsor:

      Acceptance Rates

      CHI '09 Paper Acceptance Rate 277 of 1,130 submissions, 25%;
      Overall Acceptance Rate 6,199 of 26,314 submissions, 24%

      Upcoming Conference

      CHI 2025
      ACM CHI Conference on Human Factors in Computing Systems
      April 26 - May 1, 2025
      Yokohama , Japan

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)115
      • Downloads (Last 6 weeks)5
      Reflects downloads up to 12 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)An API Recommendation Method for Querying Mobile Computing ProblemsInternational Journal of Cognitive Informatics and Natural Intelligence10.4018/IJCINI.34442218:1(1-16)Online publication date: 30-May-2024
      • (2024)How New Developers Approach Augmented Reality Development Using Simplified Creation Tools: An Observational StudyMultimodal Technologies and Interaction10.3390/mti80400358:4(35)Online publication date: 22-Apr-2024
      • (2024)Optimizing OCR Performance for Programming Videos: The Role of Image Super-Resolution and Large Language ModelsMathematics10.3390/math1207103612:7(1036)Online publication date: 30-Mar-2024
      • (2024)Cognitive Patterns for Developer ExperienceProceedings of the 29th European Conference on Pattern Languages of Programs, People, and Practices10.1145/3698322.3698345(1-10)Online publication date: 3-Jul-2024
      • (2024)A Survey of Source Code Search: A 3-Dimensional PerspectiveACM Transactions on Software Engineering and Methodology10.1145/365634133:6(1-51)Online publication date: 28-Jun-2024
      • (2024)How Example-Based Authoring of Motion Graphics Impacts Creative Expression: Differences in Perceptions of Professional and Casual Motion DesignersProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3656197(347-357)Online publication date: 23-Jun-2024
      • (2024)An Investigation of the Drivers of Novice Programmers' Intentions to Use Web Search and GenAIProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671112(487-501)Online publication date: 12-Aug-2024
      • (2024)Debugging with an AI Tutor: Investigating Novice Help-seeking Behaviors and Perceived LearningProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671092(84-94)Online publication date: 12-Aug-2024
      • (2024)To Search or To Gen? Exploring the Synergy between Generative AI and Web Search in ProgrammingExtended Abstracts of the CHI Conference on Human Factors in Computing Systems10.1145/3613905.3650867(1-8)Online publication date: 11-May-2024
      • (2024)CodeAid: Evaluating a Classroom Deployment of an LLM-based Programming Assistant that Balances Student and Educator NeedsProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642773(1-20)Online publication date: 11-May-2024
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media