TY - GEN
T1 - Towards generalizing expert programmers' suggestions for novice programmers
AU - Ichinco, Michelle
AU - Zemach, Aaron
AU - Kelleher, Caitlin
PY - 2013
Y1 - 2013
N2 - Novice programmers may lack the experience to recognize opportunities to either improve their code or apply unfamiliar programming constructs. Yet, these opportunities are often clear to an experienced programmer. In this paper, we describe an exploratory study investigating 1) the potential value of the suggestions experienced programmers make to novice programmers and 2) the ways experienced programmers envision identifying other programs that would benefit from the same suggestion. The results of our study suggest that experienced programmers make suggestions that can introduce new programming constructs to novice programmers. The participants in our study most commonly made suggestions that improve the code quality of novice programs, rather than changing their output. Furthermore, experienced programmers could often state a simple heuristic rule to use in identifying other novice programs that would benefit from their suggestion. Participants were able to author the rules in pseudocode, mostly using combinations of iteration and comparison to find patterns of problematic code. However, based on a test implementation of a selected set of rules for these suggestions, we conclude that support for improving rules through review and community input will be valuable.
AB - Novice programmers may lack the experience to recognize opportunities to either improve their code or apply unfamiliar programming constructs. Yet, these opportunities are often clear to an experienced programmer. In this paper, we describe an exploratory study investigating 1) the potential value of the suggestions experienced programmers make to novice programmers and 2) the ways experienced programmers envision identifying other programs that would benefit from the same suggestion. The results of our study suggest that experienced programmers make suggestions that can introduce new programming constructs to novice programmers. The participants in our study most commonly made suggestions that improve the code quality of novice programs, rather than changing their output. Furthermore, experienced programmers could often state a simple heuristic rule to use in identifying other novice programs that would benefit from their suggestion. Participants were able to author the rules in pseudocode, mostly using combinations of iteration and comparison to find patterns of problematic code. However, based on a test implementation of a selected set of rules for these suggestions, we conclude that support for improving rules through review and community input will be valuable.
KW - crowdsourcing
KW - independent learning
KW - novice programming
KW - static code analysis
UR - https://www.scopus.com/pages/publications/84891132684
U2 - 10.1109/VLHCC.2013.6645259
DO - 10.1109/VLHCC.2013.6645259
M3 - Conference contribution
AN - SCOPUS:84891132684
SN - 9781479903689
T3 - Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC
SP - 143
EP - 150
BT - Proceedings - 2013 IEEE Symposium on Visual Languages and Human Centric Computing, VL/HCC 2013
T2 - 2013 IEEE Symposium on Visual Languages and Human Centric Computing, VL/HCC 2013
Y2 - 15 September 2013 through 19 September 2013
ER -