Abstract
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.
Similar content being viewed by others
References
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.
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.
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.
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.
Fernandez, A. et al. (1998) A Learning Environment to Improve Object-Oriented Thinking. Presented at OOPSLA ‘98, Vancouver, October.
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.
Howell, D. C. (1992) Statistical Methods for Psychology. Third Edition. PWS-Kent Publishing, Belmont, CA.
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.
Rowe, G. R. (2000) VINCE–An on-line tutorial tool for teaching introductory programming. British Journal of Educational Technology, 31(4), 359–369.
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.
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.
Wiedenbeck, S. (1999a) Novice comprehension of small programs written in the procedural style. International Journal Human-Computer Studies, 51(1), 71–87.
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.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Milne, I., Rowe, G. Difficulties in Learning and Teaching Programming—Views of Students and Tutors. Education and Information Technologies 7, 55–66 (2002). https://doi.org/10.1023/A:1015362608943
Issue Date:
DOI: https://doi.org/10.1023/A:1015362608943