1 / 96

Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code

Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code. Joel Brandt with Philip Guo (S), Joel Leweinstein (S), Mira Dontcheva (A), Scott Klemmer (S), . http:// hci.stanford.edu /opportunistic.

quasar
Download Presentation

Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Two Studies ofOpportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code Joel Brandt with Philip Guo (S), Joel Leweinstein (S), Mira Dontcheva (A), Scott Klemmer (S), http://hci.stanford.edu/opportunistic

  2. “good grief, I don’t even remember the syntax for forms!”

  3. The Web has fundamentally changed the cost structure of information access. Enables an opportunistic approach to programming

  4. People program opportunistically to prototype, ideate, and discover Emphasize speed and ease of development over code robustness and maintainability

  5. Designers… http://flickr.com/photos/royalsapien/2387707860/

  6. Scientists… http://flickr.com/photos/niosh/2492023651/

  7. Makers… http://www.flickr.com/photos/samthor/3198975900/

  8. …but only 3 million who are professional programmers [Scaffidi 2005] By 2012:13 million who program as part of their job…

  9. How do programmers use online resources?

  10. Related Work Web Search for Programmers[Stylos 06, Hoffmann 07] Code Cloning in Software Engineering[Kim 04, Ducasse 99] Learning Barriers of Programming[Ko 04] Learning on the Web[Torrey 09]

  11. Study 1: Prototyping a Web-based chat room Study 2: Log Analysis of Programmers’ Web Queries

  12. Method Study 1: Web Chat Room 20 participants (9 Graduate, 11 Undergrad) “basic knowledge” of PHP, JS, and HTML 2.5 hours each use any resources 3 researchers observed, one asked questions to prompt think aloud

  13. Method Chat Room Specifications • Set username • Post messages • Update without page reload • Messages have timestamp • Limited chat history

  14. Results Most Subjects Met All Specs post message AJAX update timestamp username history ˜ Specification Met š Specification Attempted subjects

  15. Results Frequent Web Use subjects time (minutes)

  16. Results Frequent Web Use subjects time (minutes)

  17. Results Frequent Web Use subjects time (minutes)

  18. Results Frequent Web Use subjects time (minutes)

  19. Results The Web plays multiple roles length (seconds) session (sorted by length)

  20. Results The Web plays multiple roles length (seconds) session (sorted by length)

  21. Results The Web plays multiple roles length (seconds) session (sorted by length)

  22. Results Three Intentions Behind Web Use Learning just-in-time acquisition of new skills Clarification connecting high-level knowledge to implementation details Reminder offloading memory to external resources

  23. Results Just-in-Time Learning-by-Doing Copy and modify code before reading prose

  24. “There’s some stuff in this code that I don’t really know what it’s doing, but I’ll just try it and see what happens.”

  25. Results Just-in-Time Learning-by-Doing Copy and modify code before reading prose Not concerned with deep learning

  26. “I think it’s less expensive for me to just take the first code I find and see how helpful it is at … a very high level … as opposed to just reading all these descriptions and text”

  27. Results Just-in-Time Learning-by-Doing Copy and modify code before reading prose Not concerned with deep learning Learn new terminology from result snippets

  28. Results Clarification of Existing Knowledge Web search enables translations and “language analogies” Know exactly what code does when they see it Copied code often not immediately tested

More Related