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.
- 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 ScholarDigital Library
- 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 Scholar
- Ebrahimi, A. and Schweikert, C. 2006. Empirical study of novice programming with plans and objects. SIGCSE Bull. 38, 4, 52--54. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- K&öölling, M. 2007. BlueJ---the Interactive Java Environment, http://www.bluej.org/. (accessed July 10th, 2007).Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Or-Bach, R. and Lavy, I. 2004. Cognitive activities of abstraction in object orientation: An empirical study, SIGCSE Bull. 36, 2, 82--86. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Robins, A., Rountree, J., and Rountree, N. 2003. Learning and teaching programming: A review and discussion. Comput. Sci. Educ. 13, 137--172.Google ScholarCross Ref
- 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 ScholarDigital Library
- Sajaniemi, J. and Kuittinen, M. 2004. Visualizing roles of variables in program animation. Informa. Visualiza. 3, 3, 137--153. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Winslow, L. E. 1996. Programming pedagogy --- a psychological overview. SIGCSE Bull. 28, 17--22. 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
ICER '07: Proceedings of the third international workshop on Computing education researchStudents' 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 ...
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