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: Breadth-first search of the hypothesis space reduces the amount of time spent on false hypotheses on average.
  • H2: Breadth-first navigation helps BFS => BFN 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
  • H4: telling people that BFN is a better approach
  • (H5: telling people to write down three hypotheses is useful)

Research

  • DuckyThesisProposalNotes

Code base -- code obfuscators?

More generic, old

  • Potential future study

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

Topic attachments
I Attachment History Action Size Date Who Comment
PowerPointppt TimeSeriesData.ppt r1 manage 767.5 K 2005-12-05 - 07:58 DuckySherwood for 5 Dec presentation
Edit | Attach | Watch | Print version | History: r375 | r370 < r369 < r368 < r367 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r368 - 2007-06-13 - DuckySherwood
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback