Teaching Computer Programming in Online Courses - How Unit Tests Allow for Automated Feedback and Grading

Edgar Seemann

Abstract

Online courses raise many new challenges. It is particularly difficult to teach subjects, which focus on technical principles and require students to practice. In order to motivate and support students we need to provide assistance and feedback. When the number of students in online courses increases to several thousand participants this assistance and feedback cannot be handled by the teaching staff alone. In this paper we propose a system, which allows to automatically validate programming exercises at a fine-grained level using unit tests. Thus, students get immediate feedback, which helps them understanding the encountered problems. The proposed system offers a wide range of possible exercise types for programming exercises. These range from exercises where students need to provide only code snippets to exercises including complex algorithms. Moreover, the system allows teachers to grade student exercises automatically. Unlike common grading tools for programming exercises, it can deal with partial solutions and avoids an all-or-nothing style grading.

References

  1. Brusilovsky, P. (1995). Intelligent learning environments for programming. In Proceedings 7th World Conference on Artificial Intelligence in Education, pages 1- 8.
  2. Butz, C., Hua, S., and Maguire, R. (2004). A web-based intelligent tutoring system for computer programming. In IEEE/WIC/ACM Conference on Web Intelligence (WI04), pages 159-165.
  3. Corbett, A. and Anderson, J. (2008). Student modeling and mastery learning in a computer-based programming tutor. In Department of Psychology, Carnegie Mellon University. http://repository.cmu.edu/psychology/18.
  4. Forman, I. and Forman, N. (2005). Java reflection in action. ISBN 1-932394-18-4.
  5. Foxley, E., Higgins, C., Hegazy, T., Symeonidis, P., and Tsintsifas, A. (2001). The coursemaster cba system: Improvements over ceilidh. In Fifth International Computer Assisted Assessment Conference.
  6. Gruber, J. (2004). Markdown text-to-HTML conversion tool. http://daringfireball.net/.
  7. Hukk, M., Powell, D., and Klein, E. (2011). Infandango: Automated grading for student programming. In 16th Annual Joint Conference on Innovation and Technology in Computer Science Education.
  8. Johnson, W. and Soloway, E. (1984). Proust: Knowledgebased program understanding. In 7th international Conference on Software Engineering, pages 369 - 380.
  9. Lane, H. and VanLehn, K. (2003). Coached program planning: Dialogue-based support for novice program design. In Proceedings of the Thirty-Fourth Technical Symposium on Computer Science Education (SIGCSE), pages 148-152.
  10. Lane, H. and VanLehn, K. (2004). A dialogue-based tutoring system for beginning programming. In Proceedings of the Seventeenth International Florida Artificial Intelligence Research Society Conference (FLAIRS), pages 449-454.
  11. Leal, J. and Silva, F. (2003). Mooshak: a web-based multisite programming contest system. In Software: Practice and Experience, volume 33, pages 567-581.
  12. Leal, J. and Silva, F. (2008). Using mooshak as a competitive learning tool. In Competitive Learning Institute Symposium.
  13. Milne, I. and Rowe, G. (2002). Difficulties in learning and teaching programmingviews of students and tutors. In Education and Information technologies.
  14. Ng, A. and Koller, D. (2012). Coursera - Take the World's Best Courses, Online, For Free. https://www.coursera. org.
  15. Soloway, E. (1986). Learning to program = learning to construct mechanisms and explanations. In Communications of the ACM archive, volume 20 Issue 9, pages 850 - 858.
  16. Sykes, E. and Franek, F. (2003). A prototype for an intelligent tutoring system for students learning to program in java. In IASTED International Conference on Computers and Advanced Technology in Education, pages 78-83.
  17. Thrun, S. (2013). Artificial intelligence for robotics. In Udacity. https://www.udacity.com/course/cs373.
  18. Thrun, S., Sokolsky, M., and Stavens, D. (2012). Udacity - Learn. Think. Do. https://www.udacity.com.
  19. Tiantian, W., Xiaohong, S., Peijun, M., Yuying, W., and Kuanquan, W. (2009). Autolep: An automated learning and examination system for programming and its application in programming course. In First International Workshop on Education Technology and Computer Science, pages 43-46.
  20. Xu, L. and Sarrafzadeh, A. (2004). Haskell-tutor: An intelligent tutoring system for haskell programming language. In Institute of Information and Mathematical Sciences Postgraduate Conference.
Download


Paper Citation


in Harvard Style

Seemann E. (2014). Teaching Computer Programming in Online Courses - How Unit Tests Allow for Automated Feedback and Grading . In Proceedings of the 6th International Conference on Computer Supported Education - Volume 1: CSEDU, ISBN 978-989-758-020-8, pages 421-426. DOI: 10.5220/0004939304210426


in Bibtex Style

@conference{csedu14,
author={Edgar Seemann},
title={Teaching Computer Programming in Online Courses - How Unit Tests Allow for Automated Feedback and Grading},
booktitle={Proceedings of the 6th International Conference on Computer Supported Education - Volume 1: CSEDU,},
year={2014},
pages={421-426},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004939304210426},
isbn={978-989-758-020-8},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Computer Supported Education - Volume 1: CSEDU,
TI - Teaching Computer Programming in Online Courses - How Unit Tests Allow for Automated Feedback and Grading
SN - 978-989-758-020-8
AU - Seemann E.
PY - 2014
SP - 421
EP - 426
DO - 10.5220/0004939304210426