skip to main content
research-article

A study of the development of students' visualizations of program state during an elementary object-oriented programming course

Published:09 January 2008Publication History
Skip Abstract Section

Abstract

Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to include in their drawings in order to see what they considered to be central concepts and relationships in program execution. Three drawing tasks were given at different phases of an elementary OO programming course where two animation tools were used for program visualization. The drawings were analyzed for their overall approaches and their detailed contents.

There was a large variability in the overall approaches and the popularity of various approaches changed during the course. The results indicate that students' mental representations of OO concepts and program execution not only grow as new material is covered in teaching, but they also change. The first drawings treat methods as having primarily a static existence; later methods are seen as dynamic invocations that call each other. The role of classes in program execution fluctuates during learning, indicating problems in locating the notion of class with respect to, for example, objects. Two major sources of problems that manifested in many different forms were the relationship between object and method, and the role of the main method with respect to program state. Other problems were caused by overly simplistic understanding of object identification and improper use of application domain knowledge.

References

  1. Douglas, S., Hundhausen, C., and McKeown, D. 1995. Toward empirically-based software visualization languages. In Proceedings of the 11th IEEE International Symposium on Visual Languages. IEEE Computer Society Press, 342--349. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Du Boulay, B. 1989. Some difficulties of learning to program. In Studying the Novice Programmer, E. Soloway and J. C. Spohrer Eds. Lawrence Erlbaum Associates, Hillsdale, NJ, 283--299.Google ScholarGoogle Scholar
  3. Ebrahimi, A. and Schweikert, C. 2006. Empirical study of novice programming with plans and objects. SIGCSE Bull. 38, 4, 52--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Eckerdal, A. and Thun&éé, M. 2005. Novice Java programmers' conceptions of "object" and "class", and variation theory. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE'05). ACM, New York, NY, 89--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Fleury, A. E. 2000. Programming in Java: student-constructed rules. In Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education (SIGCSE'00). ACM, New York, NY, 197--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ford, L. 1993. How programmers visualize programs. In Empirical Studies of Programmers: Fifth Workshop, C. R. Cook, J. C. Scholtz, and J. C. Spohrer Eds. Norwood, NJ. Ablex Publishing Company.Google ScholarGoogle Scholar
  7. Garner, S., Haden, P., and Robins, A. 2005. My program is correct but it doesn't run: A preliminary investigation of novice programmers' problems. In Proceedings of the 7th Australasian Conference on Computing Education (ACE'05). Australian Computer Society, Inc., Darlinghurst, Australia, 173--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Good, J. and Brna, P. 2004. Program comprehension and authentic measurement: A scheme for analysing descriptions of programs. Int. J. Hum.-Comput. Stud. 61, 2, 169--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gross, P. and Powers, K. 2005. Evaluating assessments of novice programming environments. In Proceedings of the International Workshop on Computing Education Research (ICER'05). ACM, New York, NY, 99--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Holland, S., Griffiths, R., and Woodman, M. 1997. Avoiding object misconceptions. In Proceedings of the 28th SIGCSE Technical Symposium on Computer Science Education (SIGCSE'97). ACM, New York, NY, 131--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Holliday, M. A. and Luginbuhl, D. 2004. CS1 assessment using memory diagrams. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education (SIGCSE'04). ACM, New York, NY, 200--204. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. H&üübscher-Younger, T. and Narayanan, N. H. 2003. Dancing hamsters and marble statues: Characterizing student visualizations of algorithms. In ACM 2003 Symposium on Software Visualization (SoftVis'03). ACM, New York, NY, 95--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hundhausen, C. D., Douglas, S. A., and Stasko, J. T. 2002. A meta-study of algorithm visualization effectiveness. J. Vis. Lang. Comput. 13, 259--290.Google ScholarGoogle ScholarCross RefCross Ref
  14. Kelleher, C. and Pausch, R. 2005. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comp. Surv. 37, 2, 83--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. K&öölling, M. 2007. BlueJ---the Interactive Java Environment, http://www.bluej.org/. (accessed July 10th, 2007).Google ScholarGoogle Scholar
  16. Lewandowski, G., Gutschow, A., McCartney, R., Sanders, K., and Shinners-Kennedy, D. 2005. What novice programmers don't know. In Proceedings of the 2005 International Workshop on Computing Education Research (ICER'05). ACM, New York, NY, 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lister, R., Adams, E. S., Fitzgerald, S., Fone, W., Hamer, J., Lindholm, M., McCartney, R., Mostr&öö M, J. E., SANDERS, K., SEPP&ÄÄ L&ÄÄ, O., Simon, B., and Thomas, L. 2004. A multinational study of reading and tracing skills in novice programmers. ACM SIGCSE Bull. 36, 4, 119--150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Moreno, A., Myller, N., Sutinen, E., and Ben-Ari, M. 2004. Visualizing programs with Jeliot 3. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI'04). Gallipoli, Italy. ACM, New York, NY, 373--376. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Or-Bach, R. and Lavy, I. 2004. Cognitive activities of abstraction in object orientation: An empirical study, SIGCSE Bull. 36, 2, 82--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Pennington, N. 1987. Comprehension strategies in programming. In Empirical Studies of Programmers: Second Workshop. G. M. Olson, S. Sheppard, and E. Soloway Eds. Ablex Norwood, NJ, 100--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ragonis, N. and Ben-Ari, M. 2005. On understanding the statics and dynamics of object-oriented programs. In Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education (SIGCSE'05). ACM, New York, NY, 226--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Robins, A., Rountree, J., and Rountree, N. 2003. Learning and teaching programming: A review and discussion. Comput. Sci. Educ. 13, 137--172.Google ScholarGoogle ScholarCross RefCross Ref
  23. Sajaniemi, J., Byckling, P., and Gerdt, P. 2006. Metaphor-based animation of OO programs. In Proceedings of the ACM Symposium on Software Visualization (SOFTVIS'06). ACM, New York, NY, 173--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sajaniemi, J. and Kuittinen, M. 2004. Visualizing roles of variables in program animation. Informa. Visualiza. 3, 3, 137--153. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Sanders, K. and Thomas, L. 2007. Checklists for grading object-oriented CS1 programs: Concepts and misconceptions. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE'07). ACM, New York, NY, 166--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Schulte, C. and Bennedsen, J. 2006.What do teachers teach in introductory programming? In Proceedings of the International Workshop on Computing Education Research (ICER'06). ACM, New York, NY, 17--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Teif, M. and Hazzan, O. 2006. Partonomy and taxonomy in object-oriented thinking: Junior high school students' perceptions of object-oriented basic concepts. SIGCSE Bull. 38, 4, 55--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Thomas, L., Ratcliffe, M., and Thomasson, B. 2004. Scaffolding with object diagrams in first year programming classes: Some unexpected results. In Proceedings of the 35th SIGCSE Technical Symposium on CS Education (SIGCSE'04). 250--254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Thomasson, B., Ratcliffe, M., and Thomas, L. 2006. Identifying novice difficulties in object oriented design. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITICSE'06). ACM, New York, NY, 28--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tolhurst, D., Baker, B., Hamer, J., Box, I., Lister, R., Cutts, Q., Petre, M., De Raadt, M., Robins, A., Fincher, S., Simon, S., Haden, P., Sutton, K., Hamilton, M., and Tutty, J. 2006. Do map drawing styles of novice programmers predict success in programming?: A multinational, multiinstitutional study. In Proceedings of the 8th Australian Conference on Computing Education (ACE'06). Australian Computer Society, Inc., Darlinghurst, Australia, 213--222. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Vainio, V. and Sajaniemi, J. 2007. Factors in novice programmers' poor tracing skills. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE'07). ACM, New York, NY, 236--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Winslow, L. E. 1996. Programming pedagogy --- a psychological overview. SIGCSE Bull. 28, 17--22. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A study of the development of students' visualizations of program state during an elementary object-oriented programming course

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Journal on Educational Resources in Computing
        Journal on Educational Resources in Computing  Volume 7, Issue 4
        January 2008
        124 pages
        ISSN:1531-4278
        EISSN:1531-4278
        DOI:10.1145/1316450
        Issue’s Table of Contents

        Copyright © 2008 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 9 January 2008
        • Received: 1 October 2007
        • Accepted: 1 October 2007
        Published in jeric Volume 7, Issue 4

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader