a contextual inquiry of expert programmers in an event-based programming enviroment

26
A Contextual Inquiry of Expert Programmers in an Event-Based Programming Environment CHI’2003 - Andrew Jensen Ko / 맹욱재 x 2014 between spring and summer

Upload: wookjaemaeng

Post on 09-Jul-2015

294 views

Category:

Software


0 download

DESCRIPTION

Event-based programming has been studied little, yet recent work suggests that language paradigm can predict programming strategies and performance. A contextual inquiry of four expert programmers using the Alice 3D programming environment was performed in order to discover how event-based programming strategies might be supported in programming environments. V arious programming, testing, and debugging breakdowns were extracted from observations and possible programming environment tools are suggested as aids to avoid these breakdowns. Future analyses and studies are described

TRANSCRIPT

Page 1: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

A Contextual Inquiry of Expert Programmers in an Event-Based Programming EnvironmentCHI’2003 - Andrew Jensen Ko/ 맹욱재x 2014 between spring and summer

Page 2: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

AuthorAndrew J. Ko

Assistant ProfessorThe Information SchoolUniversity of Washington

USE research group

Modern software = complex, difficult to use, understand, fix. USE research group invents technologies that help people understand and overcome this complexity, including new help systems for end users, new debugging tools for developers, and new educational technologies for people learning to program.

Research interests : human-computer interaction, software engineering, computing education.

https://faculty.washington.edu/ajko/

Page 3: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Problem

Event-based programming(E.B.P.) has been studied little

in Android ProgrammingButton a=(Button)findViewById(R.id.버튼아이디);

a.setOnClickListener (new Button.OnClickListener(){

public void click(View v){

클릭하면 실행할 이벤트

}

});

http://daybrush.com/12217

Page 4: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Phenomenon

Around 2003, Studies suggest language paradigm(L.P.) can predict programming strategies & performance

http://attractivechaos.github.io/plb/http://www.math-cs.gordon.edu/courses/cs323/LISP/lisp.html

Page 5: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Solution

Contextual Inquiry(C.I.) of 4 expert using Alice 3D programming environment(P.E.)

To discover how E.B.P strategies might be supported in P.E.

Page 6: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Result of C.I.

Various programming, testing, debugging breakdowns were extracted.

possible P.E. tools are suggested as aids to avoid these breakdowns.

Page 7: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Event-based Programming(E.B.P.)

E.B.P drive majority of a program’s runtime behavior.

E.B.P is common in modern programming languages, Visual Basic, Java, Macromedia’s Director, Alice

Page 9: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Alice

Research prototype language provide event-based construct, U.I. for efficently creating highly interative enviroment programming languages

Alice provides a limited object model, global event handlers, strictly enforced structured editor, preventing all syntax error.

Page 10: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Method of C.I.To identify problems that programmers(PGMer) encounter when creating interative, event-based program.

To asses the utility of C.I. for extracting design requirements for P.E.

Page 11: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Photo in C.I.

Page 12: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Background of C.I.

Participating PGMers were enrolled in the “Building Virtual Worlds” course at C.M.U.

Course require collaboration among PGMers, modelers, sound engineers, painters to create new interactice 3D worldevery two weeks using Alice.

Page 13: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Overview of C.I.

4 expert programmers observed during the second half of the semester. After PGMer were experienced with Alice.

the least PGMer 3 languages, 4 enviromentsthe best PGMer 6 languages, 8 enviroments

Page 14: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Point of C.I.

Experimenter met with each PGMerexplained the focus of C.I. - to identify programming, testing, debugging difficulties using Alice.

recorded observation on paper and video

formed hypotheses about PGMer’s action in situ asked the PGMer if the hypothesis were correct

Page 15: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Example of asking in C.I

experimenter : “It looks like you’re trying to align these two objects.”

PGMer : “Basically, I want them to be alligned on this axis, but I don’t care about the other two”

Page 16: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Result and Discussion

About 12 hours of observation over 12 sessions

Each of the sessions was reviewed for breakdown scenarios(B.S.) - PGMer’s strategy was difficult to perform or unsuccessful.

B.S. were consolidated into problem types.

Page 17: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Breakdown Scenario

Page 18: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Problem type 1 - Programming Problem

Bad code adaption in code recycling.=> smart copy & paste mechanism needed

automatically coerce params from method to method

Bad supporting for tweaking existing codeoften revert to previous version of codeto avoid undoing intermediary changes to unrelated code=> multi-level intelligent undo keeping extensive modification history

Page 20: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Problem type 2 - Testing Problem

PGMer used visual cue a lotassigning the color of object for triggering=> “watch this variable by mapping it’s value”

visual cues : color, size, visibilityWaiting too long animation for small modification=> timeline visualization

Page 22: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Problem type 3 - Debugging Problem

Difficult debugging question including when“when was the last time this object moved?”=> timeline visualization

Difficult debugging question including why“why did this object move?”=> show the code of problemcommon cause (resized to zero, moved out of view…)

Page 23: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Future work

further analysis of data from C.I.

C.I with novice and expert new to Alice

Page 24: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Learning From This Paper

C.I. should be done during long periodfor capturing every phase of process

Asking participant if the hypothesis is correctfor unintrusive

Breakdown Scenario will be the output of each C.I.

Page 25: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment

Discussion Point

1. C.I. will be applied to User Reseach in TOBE project. Capturing user’s tacit knowledge(암묵지) will be difficult. Using prototyping engages lots of cognitive work. How can we capture the user’s intentions, difficulties using computer based tool?

Page 26: A Contextual Inquiry of Expert Programmers in an Event-Based Programming Enviroment