Ducky's Homework / Research
I am working for Gail Murphy, looking at programmer productivity. I've gone through several ideas for thesis topics so far:
-
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
Current TBDs
-
blog on JML
- read a bunch of papers on navigation
- 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
- Gel
(Windows only, dormant)
- BlueJ -- teaching tool; not sure if it scales
- ask Mik/Rob re visualization
- Rob's thesis mentions that 58-81% of web navigation is to previously seen pages, 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."
- good stuff here: http://portal.acm.org/results.cfm?coll=GUIDE&dl=GUIDE&CFID=19182022&CFTOKEN=49296027
links:
http://www.sei.cmu.edu/publications/documents/97.reports/97tr012/97tr012title.htm
http://valgrind.org/downloads/current.html
http://valgrind.org/downloads/variants.html
http://www.ndparking.com/stlabs.com
http://lclint.cs.virginia.edu/
http://www.st.cs.uni-sb.de/eclipse/
http://www.cs.wisc.edu/cbi/
daikon
http://c2.com/cgi/wiki?DoNotUseAssertions
http://www.research.att.com/viewProject.cfm?prjID=67
http://www.parasoft.com/jsp/home.jsp
http://www.csse.monash.edu.au/~davida/guard/
http://www.sos.cs.ru.nl/research/escjava/
http://www.cs.iastate.edu/~leavens/JML/
http://www.gnu.org/software/ddd/
http://www.codesurfer.com/products/codesurfer/overview.html
http://www.st.cs.uni-sb.de/dd/
http://www.cs.nmsu.edu/~jeffery/aadebug.html
http://www.checkpointing.org/
Current hypotheses
- H0: Most of time "wasted" is due to false hypotheses.
- H1: People make false hypotheses frequently.
- H2: Breadth-first search when seeking verification for a hypothesis is on average faster than a depth-first search.
- H3: The "three hypotheses" approach is useful.
- H4: Better tools to see nav history are useful.
- H10: code with JML is faster to understand than code without
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