ABSTRACT
Students' understanding of object-oriented 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 do not only grow as new material is covered in teaching, but they do 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, e.g., 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 too simplistic understanding of object identification and improper use of application domain knowledge.
- S. Douglas, C. Hundhausen, and D. McKeown. Toward empirically-based software visualization languages. In Proceedings of the 11th IEEE International Symposium on Visual Languages, pages 342--349. IEEE Computer Society Press, 1995. Google ScholarDigital Library
- B. du Boulay. Some difficulties of learning to program. In E. Soloway and J. C. Spohrer, editors, Studying the Novice Programmer, pages 283--299. Lawrence Erlbaum Associates, Hillsdale, NJ, 1989.Google Scholar
- A. Ebrahimi and C. Schweikert. Empirical study of novice programming with plans and objects. SIGCSE Bulletin, 38(4):52--54, 2006. Google ScholarDigital Library
- A. Eckerdal and M. Thuné. 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, pages 89--93. ACM, 2005. Google ScholarDigital Library
- A. E. Fleury. Programming in Java: student-constructed rules. In SIGCSE '00: Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, pages 197--201, New York, NY, USA, 2000. ACM Press. Google ScholarDigital Library
- L. Ford. How programmers visualize programs. In C. R. Cook, J. C. Scholtz, and J. C. Spohrer, editors, Empirical Studies of Programmers: Fifth Workshop. Norwood, NJ: Ablex Publishing Company, 1993.Google Scholar
- S. Garner, P. Haden, and A. Robins. My program is correct but it doesn't run: A preliminary investigation of novice programmers' problems. In ACE '05: Proceedings of the 7th Australasian conference on Computing education, pages 173--180, Darlinghurst, Australia, Australia, 2005. Australian Computer Society, Inc. Google ScholarDigital Library
- J. Good and P. Brna. Program comprehension and authentic measurement: A scheme for analysing descriptions of programs. International Journal of Human-Computer Studies, 61(2):169--185, 2004. Google ScholarDigital Library
- P. Gross and K. Powers. Evaluating assessments of novice programming environments. In ICER '05: Proceedings of the 2005 international workshop on Computing education research, pages 99--110, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- S. Holland, R. Griffiths, and M. Woodman. Avoiding object misconceptions. In Proc. of the 28th SIGCSE Technical Symposium on CS Education, volume 29(1) of ACM SIGCSE Bulletin, pages 131--134, 1997. Google ScholarDigital Library
- M. A. Holliday and D. Luginbuhl. CS1 assessment using memory diagrams. In SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science education, pages 200--204, New York, NY, USA, 2004. ACM Press. Google ScholarDigital Library
- T. Hübscher-Younger and N. H. Narayanan. Dancing hamsters and marble statues: Characterizing student visualizations of algorithms. In ACM 2003 Symposium on Software Visualization (SoftVis 2003), pages 95--104. Association for Computing Machinery, 2003. Google ScholarDigital Library
- C. D. Hundhausen, S. A. Douglas, and J. T. Stasko. A meta-study of algorithm visualization effectiveness. Journal of Visual Languages and Computing, 13:259--290, 2002.Google ScholarCross Ref
- C. Kelleher and R. Pausch. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys, 37(2):83--137, 2005. Google ScholarDigital Library
- M. Kölling. Bluej -- the interactive Java environment. http://www.bluej.org/, 2007. (Accessed July 10th, 2007).Google Scholar
- G. Lewandowski, A. Gutschow, R. McCartney, K. Sanders, and D. Shinners-Kennedy. What novice programmers don't know. In ICER '05: Proceedings of the 2005 international workshop on Computing education research, pages 1--12, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- R. Lister, E.S. Adams, S. Fitzgerald, W. Fone, J. Hamer, M. Lindholm, R. McCartney, J. E. Moström, K. Sanders, O. Seppälä, B. Simon, and L. Thomas. A multi-national study of reading and tracing skills in novice programmers. ACM SIGCSE Bulletin, 36(4):119--150, 2004. Google ScholarDigital Library
- A. Moreno, N. Myller, E. Sutinen, and M. Ben-Ari. Visualizing programs with Jeliot 3. In Proceedings of the International Working Conference on Advanced Visual Interfaces AVI 2004, Gallipoli (Lecce), 2004. Google ScholarDigital Library
- R. Or-Bach and I. Lavy. Cognitive activities of abstraction in object orientation: An empirical study. SIGCSE Bull., 36(2):82--86, 2004. Google ScholarDigital Library
- N. Pennington. Comprehension strategies in programming. In G. M. Olson, S. Sheppard, and E. Soloway, editors, Empirical Studies of Programmers: Second Workshop, pages 100--113. Ablex Publishing Company, 1987. Google ScholarDigital Library
- N. Ragonis and M. Ben-Ari. On understanding the statics and dynamics of object-oriented programs. In SIGCSE '05: Proceedings of the 36th SIGCSE technical symposium on Computer science education, pages 226--230, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- A. Robins, J. Rountree, and N. Rountree. Learning and teaching programming: A review and discussion. Computer Science Education, 13:137--172, 2003.Google ScholarCross Ref
- J. Sajaniemi, P. Byckling, and P. Gerdt. Metaphor-based animation of OO programs. In Metaphor-Based Animation of OO Programs (Extended Poster abstract). Proceedings SOFTVIS 06 ACM Symposium on Software Visualization, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- J. Sajaniemi and M. Kuittinen. Visualizing roles of variables in program animation. Information Visualization, 3(3):137--153, 2004. Google ScholarDigital Library
- K. Sanders and L. Thomas. Checklists for grading object-oriented CS1 programs: Concepts and misconceptions. In ITiCSE '07: Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, pages 166--170, New York, NY, USA, 2007. ACM Press. Google ScholarDigital Library
- C. Schulte and J. Bennedsen. What do teachers teach in introductory programming? In ICER '06: Proceedings of the 2006 international workshop on Computing education research, pages 17--28, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- M. Teif and O. Hazzan. Partonomy and taxonomy in object-oriented thinking: Junior high school students' perceptions of object-oriented basic concepts. SIGCSE Bulletin, 38(4):55--60, 2006. Google ScholarDigital Library
- L. Thomas, M. Ratcliffe, and B. Thomasson. Scaffolding with object diagrams in first year programming classes: Some unexpected results. In Proc. of the 35th SIGCSE Technical Symposium on CS Education, pages 250--254, 2004. Google ScholarDigital Library
- B. Thomasson, M. Ratcliffe, and L. Thomas. Identifying novice difficulties in object oriented design. In ITICSE '06: Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education, pages 28--32, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- D. Tolhurst, B. Baker, J. Hamer, I. Box, R. Lister, Q. Cutts, M. Petre, M. de Raadt, A. Robins, S. Fincher, S. Simon, P. Haden, K. Sutton, M. Hamilton, and J. Tutty. Do map drawing styles of novice programmers predict success in programming?: A multi-national, multi-institutional study. In ACE '06: Proceedings of the 8th Austalian conference on Computing education, pages 213--222, Darlinghurst, Australia, Australia, 2006. Australian Computer Society, Inc. Google ScholarDigital Library
- V. Vainio and J. Sajaniemi. Factors in novice programmers' poor tracing skills. In ITiCSE '07: Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, pages 236--240, New York, NY, USA, 2007. ACM Press. Google ScholarDigital Library
- L. E. Winslow. Programming pedagogy -- a psychological overview. SIGCSE Bulletin, 28:17--22, 1996. Google ScholarDigital Library
Index Terms
- A study of the development of students' visualizations of program state during an elementary object-oriented programming course
Recommendations
A study of the development of students' visualizations of program state during an elementary object-oriented programming course
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 Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
A Domain-Theoretic Model Of Nominally-Typed Object-Oriented Programming
The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial features of these mainstream OO ...
Comments