Top Banner
Stanford HCI Group Adobe Advanced Technology Labs 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
96

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

Feb 22, 2016

Download

Documents

Quasar

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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Two Studies of Opportunistic Programming:  Interleaving Web Foraging, Learning,  and Writing Code

Stanford HCI Group Adobe Advanced Technology Labs

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

Joel Brandtwith Philip Guo (S), Joel Leweinstein (S), Mira Dontcheva (A), Scott

Klemmer (S),

http://hci.stanford.edu/opportunistic

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

2

“good grief, I don’t even

remember the syntax for

forms!”

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

3

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

4

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

5

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

6

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

7

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

8

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

9

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

10

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

11

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

12

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

13

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

14

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

15

The Web has fundamentally changed the cost structure

of information access.

Enables an opportunistic

approach to programming

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

16

People program opportunistically to prototype, ideate, and discover

Emphasize speed and ease of development over code robustness

and maintainability

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

17

http://flickr.com/photos/royalsapien/2387707860/

Designers…

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

18

http://flickr.com/photos/niosh/2492023651/

Scientists…

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

19

http://www.flickr.com/photos/samthor/3198975900/

Makers…

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

20

By 2012:13 million who program as part of their job…

…but only 3 million who are

professional programmers

[Scaffidi 2005]

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

21

How do programmers use online resources?

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

22

Related WorkWeb 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]

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

23

Study 1: Prototyping a

Web-based chat room

Study 2: Log Analysis of Programmers’

Web Queries

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

24

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

METHOD

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

25

Chat Room Specifications

1. Set username

2. Post messages

3. Update without page reload

4. Messages have timestamp

5. Limited chat history

METHOD

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

26

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

27

Most Subjects Met All Specs

� � � �� � � � �� � �� � � � �� � � � �� � � � �� � � � �� � � �� � � � �� � � � �� � � � �� � � �� � � � �� � � � �� � � �� � � � �� � � � �� � � � �� � � � �� � � � �

user

nam

epo

st m

essa

geAJ

AX u

pdat

etim

esta

mp

hist

ory

� Specification Met

� Specification Attempted

subj

ects

RESULTS

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

28

Frequent Web Usesu

bjec

ts

time (minutes)

RESULTS

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

29

Frequent Web Usesu

bjec

ts

time (minutes)

RESULTS

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

30

Frequent Web Usesu

bjec

ts

time (minutes)

RESULTS

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

31

Frequent Web Usesu

bjec

ts

time (minutes)

RESULTS

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

32

The Web plays multiple roles

RESULTS

leng

th (s

econ

ds)

session (sorted by length)

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

33

The Web plays multiple roles

RESULTS

leng

th (s

econ

ds)

session (sorted by length)

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

34

The Web plays multiple roles

RESULTS

leng

th (s

econ

ds)

session (sorted by length)

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

35

Three Intentions Behind Web UseLearning

just-in-time acquisition of new skills

Clarification connecting high-level knowledge to implementation details

Reminder offloading memory to external resources

RESULTS

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

36

Just-in-Time Learning-by-DoingCopy and modify code before reading prose

RESULTS

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

37

“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.”

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

38

Just-in-Time Learning-by-DoingCopy and modify code before reading prose

Not concerned with deep learning

RESULTS

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

39

“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”

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

40

Just-in-Time Learning-by-DoingCopy and modify code before reading prose

Not concerned with deep learning

Learn new terminology from result snippets

RESULTS

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

41

Example Query

Terms

TimeNumber of

Refinements

Number of Result Clicks

Types of pages visited

Lines of code

copied

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

42

Learning

Example Query

Terms

TimeNumber of

Refinements

Number of Result Clicks

Types of pages visited

Lines of code

copied

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

43

Learning

Example Query ajax tutorial

Terms

TimeNumber of

Refinements

Number of Result Clicks

Types of pages visited

Lines of code

copied

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

44

Learning

Example Query ajax tutorial

Terms English

TimeNumber of

Refinements

Number of Result Clicks

Types of pages visited

Lines of code

copied

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

45

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

sNumber of

Result Clicks

Types of pages visited

Lines of code

copied

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

46

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

Types of pages visited

Lines of code

copied

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

47

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

Lines of code

copied

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

48

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copied

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

49

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

50

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

RESULTS

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

51

Learning

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

52

Learning Clarification

Example Query ajax tutorial

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

53

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

54

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

55

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

56

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

57

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

Lines of code

copieddozens

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

58

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens

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

59

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

60

Reminding about forgotten details Explicitly choose not to learn

things Search serves as “Web-

enabled auto-complete”

RESULTS

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

61

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

62

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

63

Reminding about forgotten details Explicitly choose not to learn

things Search serves as “Web-

enabled auto-complete” Despite utility, can break flow

RESULTS

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

64

Learning Clarification

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

65

Learning Clarification Reminder

Example Query ajax tutorial javascript

thread

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

66

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

67

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

68

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

69

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1 0

Number of Result Clicks

5+ 1-2Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

70

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1 0

Number of Result Clicks

5+ 1-2 0-1Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

Lines of code

copieddozens several

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

71

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1 0

Number of Result Clicks

5+ 1-2 0-1Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

API docs,result

snippetsLines of

code copied

dozens several

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

72

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1 0

Number of Result Clicks

5+ 1-2 0-1Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

API docs,result

snippetsLines of

code copied

dozens several none to several

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

73

How do these results generalize?

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

74

Study 2: Query Log Analysis Adobe Community Help logs from July

2008 ~25,000 programmers performing

101,289 queries about Adobe Flex Framework

Grouped queries into 65,955 search sessions

Analyzed three properties of sessions: Format of query strings Process of query refinement Types of Web pages visited

Hand-coded 300 sessions for intent

METHOD

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

75

Query format predicts types of pages visited

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

76

Query format predicts types of pages visited

Page type code only English + code English only

Adobe APIs 38% 16% 10%Adobe tutorials 31% 33% 39%

blogs 15% 22% 19%forums 3% 7% 6%

unclassified 13% 22% 27%All inter-row differences significant at p < 0.001

RESULTS

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

77

Query format predicts types of pages visited

Page type code only English + code English only

Adobe APIs 38% 16% 10%Adobe tutorials 31% 33% 39%

blogs 15% 22% 19%forums 3% 7% 6%

unclassified 13% 22% 27%

RESULTS

All inter-row differences significant at p < 0.001

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

78

Query format predicts types of pages visited

Page type code only English + code English only

Adobe APIs 38% 16% 10%Adobe tutorials 31% 33% 39%

blogs 15% 22% 19%forums 3% 7% 6%

unclassified 13% 22% 27%

RESULTS

All inter-row differences significant at p < 0.001

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

79

Query format predicts types of pages visited

Page type code only English + code English only

Adobe APIs 38% 16% 10%Adobe tutorials 31% 33% 39%

blogs 15% 22% 19%forums 3% 7% 6%

unclassified 13% 22% 27%

RESULTS

All inter-row differences significant at p < 0.001

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

80

Reminder sessions are typically code-only queries

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

81

Query format indicative of intention

query format reminding learning

code only 56% 21%English + code 10% 29%

English only 34% 50%

RESULTS

All inter-row differences significant at p < 0.05

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

82

Programmers rarely need to refine queries

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

83

Programmers refine rarely

RESULTS

num

ber

of q

uerie

s

query number in session

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

84

…and they start out with either words or code

RESULTS

perc

ent o

f que

ries

query number in session

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

85

Five Key Insightsfor Tool Design

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

86

Just-in-time learning is common

Create tutorials that teach “how the code works”

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

87

Copied code often not immediately tested

Demarcate copied code,highlight what is executed

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

88

Web search often used as a “translator”

Improve search ranking with synonyms,

perform searches automatically

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

89

Programmers choose not to learn syntax

Make Web-enabled auto-complete

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

90

Query refinement is often predictable

Automatically augment queries

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

91

Preview of Ongoing Work

BlueprintEnabling Example-Centric Programming

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

92

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

Stanford HCI Group Adobe Advanced Technology Labs

http://hci.stanford.edu/opportunistic

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

95

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

96

Learning Clarification Reminder

Example Query ajax tutorial javascript

threadfetch_array

php

Terms English mix of code and English mostly code

Time 10s of minutes

about 1 minute

less than 1 minute

Number of Refinement

s2-3 0-1 0

Number of Result Clicks

5+ 1-2 0-1Types of

pages visited

tutorials, how-to articles

API docs, blogs, forums

API docs,result

snippetsLines of

code copied

dozens several none to several