A Contextual Inquiry of Expert Programmers in an Event-Based Programming EnvironmentCHI’2003 - Andrew Jensen Ko/ 맹욱재x 2014 between spring and summer
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/
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
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
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.
Result of C.I.
Various programming, testing, debugging breakdowns were extracted.
possible P.E. tools are suggested as aids to avoid these breakdowns.
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
Alice
http://www.rvschools.org/faculty/rkraemer/sampleprojects.cfm
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.
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.
Photo in C.I.
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.
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
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
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”
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.
Breakdown Scenario
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
http://www.rvschools.org/faculty/rkraemer/sampleprojects.cfm
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
http://cabrinitechclub.blogspot.kr/2011/01/new-quarter-new-tech-club-and-3d.html
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…)
Future work
further analysis of data from C.I.
C.I with novice and expert new to Alice
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.
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?