1,205
Views
31
CrossRef citations to date
0
Altmetric
Articles

Effective compiler error message enhancement for novice programming students

, , , , &
Pages 148-175 | Received 18 May 2016, Accepted 09 Jul 2016, Published online: 19 Sep 2016

References

  • Ahadi, A., Lister, R., Haapala, H. & Vihavainen, A. (2015). Exploring machine learning methods to automatically identify students in need of assistance. Proceedings of the Eleventh Annual International Conference On International Computing Education Research (pp. 121–130). ACM.
  • Altadmri, A., & Brown, N. C. (2015). 37 million compilations: Investigating novice programming mistakes in large-scale student data. Proceedings of the 46th ACM Technical Symposium On Computer Science Education (pp. 522–527). ACM.
  • Becker, B. A. (2015). An exploration of the effects of enhanced compiler error messages for computer programming novices (Master’s thesis). Dublin Institute of Technology.
  • Becker, B. A. (2016a). An effective approach to enhancing compiler error messages. Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 126–131). ACM.
  • Becker, B. A. (2016b). A new metric to quantify repeated compiler errors for novice programmers. Proceedings of the 21st Annual Conference on Innovation and Technology in Computer Science Education (pp. 296–301). ACM.
  • Becker, B. A., & Mooney, C. (2016). Categorizing compiler error messages with principal component analysis. Proceedings of the 12th China – Europe International Symposium on Software Engineering Education.
  • Ben-Ari, M. M. (2007). Compile and runtime errors in Java. Retrieved from http://introcs.cs.princeton.edu/11cheatsheet/errors.pdf
  • Bennedsen, J., & Caspersen, M. E. (2007). Failure rates in introductory programming. ACM SIGCSE Bulletin, 39, 32–36.
  • Bergin, J., Agarwal, A., & Agarwal, K. (2003). Some deficiencies of C++ in teaching CS1 and CS2. ACM SIGPlan Notices, 38, 9–13.
  • Bergin, S., & Reilly, R. (2005). Programming: factors that influence success. ACM SIGCSE Bulletin, 37, 411–415.
  • Brown, P. J. (1983). Error messages: The neglected area of the man/machine interface. Communications of the ACM, 26, 246–249.
  • Brown, C.C., Kölling, M., McCall, D. & Utting, I. (2014). Blackbox: A large scale repository of novice programmers’ activity. Proceedings of the 45th ACM Technical Symposium on Computer Science Education (pp. 223–228). ACM.
  • Burgess, M. (1999). C programming tutorial 4th edition (k &r version). Retrieved from http://markburgess.org/CTutorial/C-Tut-4.02.pdf
  • Caspersen, M.E., & Bennedsen, J. (2007). Instructional design of a programming course: A learning theoretic approach. Proceedings of the Third International Workshop on Computing Education Research (pp. 111–122). ACM.
  • Cass, S. (2015). The 2015 top ten programming languages. Retrieved from http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages
  • Chamillard, A., & Hobart, W. C. Transitioning to Ada in an introductory course for non-majors. Proceedings of the Conference on TRI-Ada’97 (pp. 37–40). ACM.
  • Coull, N. J. (2008). SNOOPIE: Development of a learning support tool for novice programmers within a conceptual framework (Ph.D. thesis). University of St Andrews.
  • Davies, S., Polack, J.A. & Anewalt, K. (2011). A snapshot of current practices in teaching the introductory programming sequence. Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (pp. 625–630). ACM.
  • Denny, P., Luxton-Reilly, A. & Carpenter, D. (2014). Enhancing syntax error messages appears ineffectual. Proceedings of the 19th ACM annual Conference on Innovation and Technology in Computer Science Education (pp. 273–278). ACM.
  • Denny, P., Luxton-Reilly, A., Tempero, E. & Hendrickx, J. (2011). Codewrite: Supporting student-driven practice of java. Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (pp. 471–476). ACM.
  • Dy, T., & Rodrigo, M. M. (2010). A detector for non-literal Java errors. Proceedings of the 10th Koli Calling International Conference on Computing Education Research (pp. 118–122). ACM.
  • Farragher, L., & Dobson, S. (2000). Java decaffeinated: Experiences building a programming language from components. Trinity College Dublin, Department of Computer Science: Technical report.
  • Flowers, T., Carver, C.A. & Jackson, J. (2004). Empowering students and building confidence in novice programmers through gauntlet. 34th Annual Frontiers in Education (FIE) 2004 (pp. T3H–10). IEEE.
  • Guo, P. (2014). Python is now the most popular introductory teaching language at top us universities. Retrieved from http://cacm.acm.org/blogs/blog-cacm/
  • Guzdial, M. (2011). Predictions on future CS1 languages. Retrieved from https://computinged.wordpress.com/2011/01/24/predictions-on-future-cs1-languages/
  • Hagan, D., & Markham, S. (2000). Teaching Java with the BlueJ environment. Proceedings of the Australasian Society for Computers in Learning in Tertiary Education Conference.
  • Hartmann, B., MacDougall, D., Brandt, J. & Klemmer, S. R. (2010). What would other programmers do: suggesting solutions to error messages. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 1019–1028). ACM.
  • Heeren, B., Leijen, D. & van IJzendoorn, A. (2003). Helium, for learning Haskell. Proceedings of the 2003 ACM SIGPLAN workshop on Haskell (pp. 62–71). ACM.
  • Hristova, M., Misra, A., Rutter, M. & Mercuri, R. (2003). Identifying and correcting Java programming errors for introductory computer science students. ACM SIGCSE Bulletin (Vol. 35, pp. 153–156). ACM.
  • Hsia, J. I., Simpson, E., Smith, D. & Cartwright, R. (2005). Taming Java for the classroom. ACM SIGCSE Bulletin (Vol. 37, pp. 327–331). ACM.
  • Jackson, J., Cobb, M. & Carver, C. (2005). Identifying top Java errors for novice programmers. Proceedings of the 35th Annual Frontiers in Education Conference (pp. T4C24–T4C27). IEEE.
  • Jadud, M. C. (2005). A first look at novice compilation behaviour using BlueJ. Computer Science Education, 15, 25–40.
  • Jadud, M.C. (2006). An exploration of novice compilation behaviour in BlueJ ( Ph.D. thesis). University of Kent.
  • Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys (CSUR), 37, 83–137.
  • Kölling, M. (1999). The design of an object-oriented environment and language for teaching (Ph.D. thesis). Department of Computer Science, University of Sydney.
  • Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ system and its pedagogy. Computer Science Education, 13, 249–268.
  • Kummerfeld, S. K., & Kay, J. (2003). The neglected battle fields of syntax errors. Proceedings of the Fifth Australasian conference on Computing Education (pp. 105–111). Australian Computer Society.
  • Lang, B. (2002). Teaching new programmers: A Java tool set as a student teaching aid. Proceedings of the inaugural conference on the Principles and Practice of programming, 2002 and Proceedings of the second workshop on Intermediate Representation Engineering for Virtual Machines, 2002 (pp. 95–100). National University of Ireland.
  • Liston, M., Frawley, D. & Patterson, V. (2016). A study of progression in Irish higher education 2012/13 to 2013/14: A report by the Higher Education Authority (Ireland). Retrieved from http://hea.ie/sites/default/files/hea-progression-irish-higher-education\_final.pdf ISBN 1-905135-46-7.
  • Litecky, C. R. & Davis, G. B. (1976). A study of errors, error-proneness, and error diagnosis in COBOL. Communications of the ACM, 19, 33–38.
  • Marceau, G., Fisler, K. & Krishnamurthi, S. (2011a). Measuring the effectiveness of error messages designed for novice programmers. Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (pp. 499–504). ACM.
  • Marceau, G., Fisler, K. & Krishnamurthi, S. (2011b). Mind your language: on novices’ interactions with error messages. Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (pp. 3–18). ACM.
  • Matthíasdóttir, \’{A}, & Geirsson, H. J. (2011). The novice problem in computer science. Proceedings of the 12th International Conference on Computer Systems and Technologies (pp. 570–576). ACM.
  • McCall, D. & Kölling, M. (2014). Meaningful categorisation of novice programmer errors. 2014 Proceedings of IEEE Frontiers in Education Conference (FIE) (pp. 1–8). IEEE.
  • McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., ... Wilusz, T. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. ACM SIGCSE Bulletin, 33, 125–180.
  • Moskal, B. & Lurie, D. (2004). Evaluating the effectiveness of a new instructional approach. Proceedings of the 35th ACM Technical Symposium on Computer Science Education (pp. 75–79). ACM.
  • Motil, J., & Epstein, D. (n.d.). JJ: A language designed for beginners. Retrieved from http://www.ecs.csun.edu/jmotil/TeachingWithJJ.pdf
  • Moulton, P., & Muller, M. (1967). Ditran -- a compiler emphasizing diagnostics. Communications of the ACM, 10, 45–52.
  • Murphy, C., Kim, E., Kaiser, G., & Cannon, A. (2008). Backstop: A tool for debugging runtime errors. ACM SIGCSE Bulletin, 40, 173–177.
  • Nielsen, J. (1994). Heuristic evaluation. In Usability inspection methods, 17, 25–62.
  • Orsini, L. (2013). Why programming is the core skill of the 21st century. Retrieved from http://readwrite.com/2013/05/31/programming-core-skill-21st-century
  • Pane, J., & Myers, B. (1996). Usability issues in the design of novice programming systems (Technical Report). Carnegie Mellon University.
  • Porter, L., Guzdial, M., McDowell, C., & Simon, B. (2013). Success in introductory programming: What works? Communications of the ACM, 56, 34–36.
  • Rey, J. S. (2009). From Alice to BlueJ: A transition to Java (Master’s thesis). Robert Gordon University.
  • Rodrigo, M. T., Baker, R. S., Jadud, M. C., Amarra, C. M., Dy, T., Espejo, B. V., Lim, S. A. L., ... Tabanao, E. S., (2009). Affective and behavioral predictors of novice programmer achievement. ACM SIGCSE Bulletin (Vol. 41, pp. 156–160). ACM.
  • Schäfer, A., Holz, J., Leonhardt, T., Schroeder, U., Brauner, P., & Ziefle, M. (2013). From boring to scoring-a collaborative serious game for learning and practicing mathematical logic for computer science education. Computer Science Education, 23, 87–111.
  • Schorsch, T. (1995). CAP: An automated self-assessment tool to check Pascal programs for syntax, logic and style errors. ACM SIGCSE Bulletin. ACM (Vol. 27, pp. 168–172).
  • Shlens, J. (2003). A tutorial on principal component analysis: Derivation, discussion, and singular value decomposition. Retrieved from https://www.cs.princeton.edu/picasso/mats/PCA-Tutorial-Intuition\_jp.pdf
  • Siegfried, R. M., Chays, D. & Herbert, K. (2008). Will there ever be consensus on CS1?. FECS (pp. 18–23).
  • Siegfried, R. M., Greco, D., Miceli, N., & Siegfried, J. (2012). Whatever happened to Richard Reid’s list of first programming languages? Information Systems Education Journal, 10, 24.
  • Sloan, R. H., & Troy, P. (2008). Cs 0.5: A better approach to introductory computer science for majors. ACM SIGCSE Bulletin, 40, 271–275.
  • Tabanao, E. S., Rodrigo, M. T. & Jadud, M. C. (2011). Predicting at-risk novice Java programmers through the analysis of online protocols. Proceedings of the Seventh International Workshop on Computing Education Research (pp. 85–92). ACM.
  • Thompson, S. M. (2004). An exploratory study of novice programming experiences and errors (Ph.D. thesis). University of Victoria.
  • TIOBE. (2016). TIOBE index for May 2016. Retrieved from http://www.tiobe.com/tiobe_index
  • Toomey, W., & Gjengset, J. (2011). Arjen: A tool to identify common programming errors. Retrieved from http://minnie.tuhs.org/Programs/Arjen/
  • Traver, V. J. (2010). On compiler error messages: what they say and what they mean. Advances in Human-Computer Interaction,.
  • Watson, C., Li, F. W. & Godwin, J. L. (2013). Predicting performance in an introductory programming course by logging and analyzing student programming behavior. 2013 IEEE 13th International Conference on Advanced Learning Technologies (ICALT) (pp. 319–323). IEEE.
  • Yadin, A. (2011). Reducing the dropout rate in an introductory programming course. ACM inroads, 2, 71–76.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.