Ducky's Homework / Research
I am working for Gail Murphy, looking at programmer productivity. :
-
discovering interesting patterns in programmer/IDE interaction by data mining interaction logs (got stumped trying to find things without knowing what I was looking for; also most data mining techniques involve a small amount of data for a large number of subjects, not a large amount of data for a small number of subjects)
-
running a user study of novice pairs and experienced pairs of programmers, seeing how long they took to complete a set of ~4 tasks, and figuring out what the successful programmers did that the unsuccessful programmers didn't (realized that randomness plays such a large factor that I wasn't going to find anything interesting)
-
implementing tabbing behaviour in Eclipse similar to tabbing behaviour in Firefox, giving subjects a little lecture on doing breadth-first instead of depth-first search, and timing new-tab vs. old-tab behavior (someone else already implemented "Firefox" tabbing behaviour)
-
implementing a visualization of coders'navigation history
- studying how tool support affects navigation patterns
Current TBDs
- try out IDEs to see how they do tabbing
- NetBeans: fwd/back buttons; moving to new file always opens new tab; tabs don't move, left/rt arrow to move view of tabs
- JCreator (Windows only)
- Understand Java IDE
- Gel
(Windows only, dormant)
- Visual Studio
- BlueJ -- teaching tool; not sure if it scales
- Find out what plug-ins the various IDEs have -- code coverage? findbugs? JUnit?
- Rob's thesis mentions that 58-81% of web navigation is to previously seen pages [Dumais et al], but passes on saying what % is for source. That would be interesting to try to pull out of Mylar data.
- Bannon et al: "[D]igressions are frequent. When a record is made of these commands as they occur temporarily, as in the history list, information on the tasks and goals of the users is lost."
Current hypotheses
- H0: Most of time "wasted" is due to false hypotheses. (is there a ko paper that says so?)
- H1: People make false hypotheses frequently.
- H2: Breadth-first navigation when seeking verification for a hypothesis is on average faster than a depth-first navigation
- H3: The following things will result in users using BFN more often.
- H3.1: tabs staying in once place
- H3.2: tabs being containers for a task rather than a file (more like Firefox)
- H3.3: making the back/forward button history only contain what was looked at in that tab, vs. everything in the global history
- H3.3: marking "special" places in the history drop-down with icons
- classes/methods reached via a search
- classes/methods reached via the package explorer
- (Question: what about reached from Outline View? Class Hierarchy view? QuickOutline)
- (Question: do I want to insert a right arrow if they did declaration and left if they did references? What about a refs/declr search?)
- H3.4: making search results visually distinctive if they have gone there recently
- H3.5: telling people that BFN is a better approach
- (H3.6: telling people to write down three hypotheses)
Research
Code base -- code obfuscators?
More generic, old
Need academic ref
Interesting references for me to chase down
- Cross, E. The behavioral styles of computer programmers. in Proc 8th Annual SIGCPR Conference. 1970. Maryland, WA, USA.
- Mayer, D.B. and A.W. Stalnaker. Selection and Evaluation of Computer Personnel – the Research History of SIG/CPR. in Proc 1968 23rd ACM National Conference,. 1968. Las Vegas, NV, USA.
- Michael McCracken, Vicki Almstrum, Danny Diaz, Mark Guzdial, Dianne Hagan, Yifat Ben- David Kolikant, Cary Laxer, Lynda Thomas, Ian Utting, and Tadeusz Wilusz. A multinational, multi-institutional study of assessment of programming skills of first-year CS students. In Working group reports from ITiCSE on Innovation and technology in computer science education, Canterbury, UK, 2001. ACM Press.
- B Adelson and E Soloway. The role of domain experience in software design. IEEE Transactions on Software Engineering, 11(November):1351–1360, 1985.
- Jeffrey Bonar and Elliot Soloway. Uncovering principles of novice programming. In 10th ACM POPL, pages 10–13, 1983.
and other references from
This Camel Has Two Humps
and
Testing Programming Aptitude
follow-on to the camel
Links to software tools
daikon