Abstract
While the use of autograders for code correctness is widespread, less effort has focused on automating feedback for good programming style: the tasteful use of language features and idioms to produce code that is not only correct, but also concise, elegant, and revealing of design intent. We present a system that can provide real-time actionable code style feedback to students in large introductory computer science classes. We demonstrate that in a randomized controlled trial, 70 % of students using our system achieved the best style solution to a coding problem in less than an hour, while only 13 % of students in the control group achieved the same. Students using our system also showed a statistically-significant greater improvement in code style than students in the control group.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
IRB Protocol number: 2015-10-8003.
References
Ericsson, K., Krampe, R., Tesch-Römer, C.: The role of deliberate practice in the acquisition of expert performance. Psychol. Rev. 100(3), 363–406 (1993)
Fast, E., Steffee, D., Wang, L., Brandt, J., Bernstein, M.: Emergent, crowd-scale programming practice in the IDE. In: SIGCHI Conference on Human Factors in Computing Systems. Toronto (2014)
Fitzpatrick, J.: Applying the ABC metric to C, C++, and Java. In: More C++ Gems, pp. 245–264. Cambridge University Press, New York (2000)
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)
Fox, A., Patterson, D.: Engineering Software as a Service. Strawberry Canyon LLC, San Francisco (2014)
Fox, A., Patterson, D., Joseph, S., McCulloch, P.: MAGIC: Massive automated grading in the cloud. In: CHANGEE (Facing the challenges of assessing 21st century skills in the newly emerging educational ecosystem) workshop at EC-TEL 2015, Toledo, Spain (2015)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)
Glassman, E., Singh, R., Miller, R.: Feature engineering for clustering student solutions. In: 1st ACM Conference on Learning at Scale, Atlanta (2014)
Guskey, T.R.: Closing achievement gaps: revisiting Benjamin S. Blooms, “Learning for Mastery”. J. Adv. Acad. 19(1), 8–31 (2007)
Huang, J., Piech, C., Nguyen, A., Guibas, L.: Syntactic and functional variability of a million code submissions in a machine learning MOOC. In: International Conference on Artificial Intelligence in Education (AIED), Memphis (2013)
Johnson, S.: Lint, a C program checker. Technical report 65, Bell Labs (1977)
Kan, S.H.: Metrics and Models in Software Quality Engineering, 2nd edn. Addison-Wesley, Boston (2002)
Kulkarni, C.E., Bernstein, M.S., Klemmer, S.R.: PeerStudio: rapid peer feedback emphasizes revision and improves performance. In: 2nd ACM Conference on Learning at Scale. Vancouver (2015)
Lazar, T., Bratko, I.: Data-driven program synthesis for hint generation in programming tutors. In: Trausan-Matu, S., Boyer, K.E., Crosby, M., Panourgia, K. (eds.) ITS 2014. LNCS, vol. 8474, pp. 306–311. Springer, Heidelberg (2014)
Van der Maaten, L., Hinton, G.: Visualizing data using t-SNE. J. Mach. Learn. Res. 9(2579–2605), 85 (2008)
Martin, R.C.: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, Upper Saddle River (2008)
Moghadam, J., Roy Choudhury, R., Yin, H., Fox, A.: AutoStyle: toward coding style feedback at scale. In: 2nd ACM Conference on Learning at Scale, Vancouver (2015)
Nguyen, A., Piech, C., Huang, J., Guibas, L.: Codewebs: scalable code search for MOOCs. In: 23rd International Conference on world wide web, Seoul (2014)
Rivers, K., Koedinger, K.R.: Data-driven hint generation in vast solution spaces: a self-improving python programming tutor. Int. J. Artif. Intell. Educ., 1–28 (2015). http://dx.doi.org/10.1007/s40593-015-0070-z
Shute, V.J.: Focus on formative feedback. Rev. Educ. Res. 78(1), 153–189 (2008)
Yin, H., Moghadam, J., Fox, A.: Clustering student programming assignments to multiply instructor leverage. In: 2nd ACM Conference on Learning at Scale, Vancouver (2015)
Zhang, K., Shasha, D.: Simple fast algorithms for the editing distance between trees and related problems. SIAM J. Comput. 18(6), 1245–1262 (1989)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Roy Choudhury, R., Yin, H., Fox, A. (2016). Scale-Driven Automatic Hint Generation for Coding Style. In: Micarelli, A., Stamper, J., Panourgia, K. (eds) Intelligent Tutoring Systems. ITS 2016. Lecture Notes in Computer Science(), vol 9684. Springer, Cham. https://doi.org/10.1007/978-3-319-39583-8_12
Download citation
DOI: https://doi.org/10.1007/978-3-319-39583-8_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-39582-1
Online ISBN: 978-3-319-39583-8
eBook Packages: Computer ScienceComputer Science (R0)