Teaching Programming to Large Student Groups through Test Driven Development - Comparing Established Methods with Teaching based on Test Driven Development

Morten Goodwin, Tom Drange

Abstract

This paper presents an approach for teaching programming in large university classes based on test driven development (TDD) methods. The approach aims at giving the students an industry-like environment already in their education and introduces full automation and feedback programming classes through unit testing. The focus for this paper is to compare the novel approach with existing teaching methods. It does so by comparing introduction to programming classes in two institutions. One university ran a TDD teaching process with fully automated assessments and feedback, while the other ran a more traditional on-line environment with manual assessments and feedback. The TDD approach has clear advantages when it comes to learning programming as it is done in the industry, including being familiar with tools and approaches used. However, it lacks ways of dealing with cheating and stimulating creativity in student submissions.

References

  1. Ahmed, M. (2015). Effectiveness of tdd on unit testing practice.
  2. Barr, V. and Guzdial, M. (2015). Advice on teaching cs, and the learnability of programming languages. Communications of the ACM, 58(3):8-9.
  3. Biggs, J. (1999). What the student does: teaching for enhanced learning. Higher Education Research & Development, 18(1):57-75.
  4. Boydens, J., Cordemans, P., and Hallez, H. (2015). On using test-driven development to tutor novice engineering students using self-assessment. In Proceedings of the 43rd SEFI Annual Conference, pages 182- 182. SEFI-Société Européenne pour la Formation des Ingénieurs.
  5. Canfora, G., Cimitile, A., Garcia, F., Piattini, M., and Visaggio, C. A. (2006). Evaluating advantages of test driven development: a controlled experiment with professionals. In Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, pages 364-371. ACM.
  6. Cheang, B., Kurnia, A., Lim, A., and Oon, W.-C. (2003). On automated grading of programming assignments in an academic institution. Computers & Education, 41(2):121-131.
  7. Dunlap, J. C. (2005). Changes in students' use of lifelong learning skills during a problem-based learning project. Performance Improvement Quarterly, 18(1):5-33.
  8. Eckerdal, A., Thuné, M., and Berglund, A. (2005). What does it take to learn'programming thinking'? In Proceedings of the first international workshop on Computing education research, pages 135-142. ACM.
  9. Gentry, J. (1990). What is experiential learning? guide to business gaming and experiential learning. J. W. Gentry, Association for Business Simulation and Experiential Learning (ABSEL).
  10. Goodwin, M., Auby, C., Andersen, R., and Barstad, V. (2015). Educating programming students for the industry. Digital Media in Teaching and its Added Value, page 100.
  11. Jenkins, T. (2001). Teaching programming-a journey from teacher to motivator. In 2nd Annual LTSN-ICS Conference.
  12. Lachman, N. (2015). Giving feedback to students. In Teaching Anatomy, pages 143-153. Springer.
  13. Mayer, R. E. (2013). Teaching and learning computer programming: Multiple research perspectives. Routledge.
  14. Milne, I. and Rowe, G. (2002). Difficulties in learning and teaching programmingviews of students and tutors. Education and Information technologies, 7(1):55-66.
  15. Perkins, D. N. and Salomon, G. (1992). Transfer of learning. International encyclopedia of education, 2.
  16. Schulte, C. and Bennedsen, J. (2006). What do teachers teach in introductory programming? In Proceedings of the second international workshop on Computing education research, pages 17-28. ACM.
  17. Sheth, S. K., Bell, J. S., and Kaiser, G. E. (2012). Increasing student engagement in software engineering with gamification.
  18. Toffler, A. (1990). Future shock. Bantam.
  19. Wilcox, C. (2015). The role of automation in undergraduate computer science education. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pages 90-95. ACM.
Download


Paper Citation


in Harvard Style

Goodwin M. and Drange T. (2016). Teaching Programming to Large Student Groups through Test Driven Development - Comparing Established Methods with Teaching based on Test Driven Development . In Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU, ISBN 978-989-758-179-3, pages 281-288. DOI: 10.5220/0005789502810288


in Bibtex Style

@conference{csedu16,
author={Morten Goodwin and Tom Drange},
title={Teaching Programming to Large Student Groups through Test Driven Development - Comparing Established Methods with Teaching based on Test Driven Development},
booktitle={Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU,},
year={2016},
pages={281-288},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005789502810288},
isbn={978-989-758-179-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU,
TI - Teaching Programming to Large Student Groups through Test Driven Development - Comparing Established Methods with Teaching based on Test Driven Development
SN - 978-989-758-179-3
AU - Goodwin M.
AU - Drange T.
PY - 2016
SP - 281
EP - 288
DO - 10.5220/0005789502810288