Education and Information Technologies

, Volume 7, Issue 1, pp 55–66 | Cite as

Difficulties in Learning and Teaching Programming—Views of Students and Tutors

  • Iain Milne
  • Glenn Rowe


We have conducted a web-based questionnaire on the various concepts and topics of object-oriented programming that students on introductory courses found most difficult to cope with.

A statistical analysis of our results shows that those topics that rely on a clear understanding of pointers and memory-related concepts (such as copy constructors and virtual functions) prove to be the most difficult. In other words, we believe these concepts are only hard because of the student's inability to comprehend what is happening to their program in memory, as they are incapable of creating a clear mental model of its execution.

These results would suggest that a clearer approach to teaching these topics would be beneficial to students. We are currently working on a visualization-based approach to address these issues.

object-orientation programming novices programming difficulties software visualization 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Blackwell, A. (1996) Metacognitive Theories of Visual Programming: What do we think we are doing? In Proceedings of the 1996 IEEE Symposium on Visual Languages, pp. 33–43.Google Scholar
  2. Boroni, C. M. et al. (1996) Dancing with Dynalab. In Proceedings of the 27th SIGCSE Technical Symposium on CS Education. Philadelphia, February. pp. 135–139.Google Scholar
  3. Burkhardt, J.-M. et al. (1997) Mental Representations Constructed by Experts and Novices in Object-Oriented Program Comprehension. In Human Computer Interaction: INTERACT'97. Sydney, July. pp. 339–346.Google Scholar
  4. Culwin, F. (1997) Objects First, Objects Last or Objects At All? In 5th Annual Conference on the Teaching of Computing. Dublin, August. pp. 56–59.Google Scholar
  5. Fernandez, A. et al. (1998) A Learning Environment to Improve Object-Oriented Thinking. Presented at OOPSLA ‘98, Vancouver, October.Google Scholar
  6. Good, J. et al. (1997) Novices and Program Comprehension: Does Language Make a Difference?” In Proceedings of 19th Annual Conference of the Cognitive Science Society. Stanford University, August. pp. 936–937.Google Scholar
  7. Howell, D. C. (1992) Statistical Methods for Psychology. Third Edition. PWS-Kent Publishing, Belmont, CA.Google Scholar
  8. Jerding, D. F. and Stasko, J. (1994) Using Visualization to Foster Object-Oriented Programming Understanding. Georgia Institute of Technology Technical Report GIT-GVU-94-33.Google Scholar
  9. Rowe, G. R. (2000) VINCE–An on-line tutorial tool for teaching introductory programming. British Journal of Educational Technology, 31(4), 359–369.Google Scholar
  10. Smith, P. A. and Webb, G. I. (2000) The Efficacy of a Low-Level Program Visualisation Tool for Teaching Programming Concepts to Novice C Programmers. Journal of Educational Computing Research, 22(2), 27–39.Google Scholar
  11. Turner, T. A. and Zachary, L. (2001) Javiva: ATool for Visualizing and Validating Student-Written Java Programs. In Proceedings of 32nd SIGCSE Technical Symposium on Computer Science Education. Charlotte, February. pp. 45-49.Google Scholar
  12. Wiedenbeck, S. (1999a) Novice comprehension of small programs written in the procedural style. International Journal Human-Computer Studies, 51(1), 71–87.Google Scholar
  13. Wiedenbeck, S. et al. (1999b) A comparison of the comprehension of object-oriented and procedural programs by novice programmers. Interacting with Computers, 11, 255–282.Google Scholar

Copyright information

© Kluwer Academic Publishers 2002

Authors and Affiliations

  • Iain Milne
    • 1
  • Glenn Rowe
    • 1
  1. 1.Department of Applied ComputingUniversity of DundeeDundee

Personalised recommendations