a study of the development of students visualizations of
play

A Study of the Development of Students Visualizations of Program - PowerPoint PPT Presentation

A Study of the Development of Students Visualizations of Program State during an OO Programming Course Jorma Sajaniemi, Marja Kuittinen, Taina Tikansalo University of Joensuu, Finland ICER07, 15-16.9.2007, Atlanta, GA, USA Outline


  1. A Study of the Development of Students’ Visualizations of Program State during an OO Programming Course Jorma Sajaniemi, Marja Kuittinen, Taina Tikansalo University of Joensuu, Finland ICER07, 15-16.9.2007, Atlanta, GA, USA

  2. Outline  Introduction  Study  Results: Examples of drawings  Analysis  Overall approach  Content elements at the end  Content element development  Common errors  Conclusion

  3. Introduction  Novices’ understanding of OO programming:  misconceptions of central concepts  understanding of dynamic aspects ?  understanding of the notional machine ?  Notional machine well understood in imperative case  novices’ abilities to use visualizations are good  Novices’ ability to use OO visualizations:  teachers’ drawings poorly understood  unable to draw own pictures  poor ability to utilize own visualizations  The study: students’ own visualizations of program state ?

  4. Study: Task ”Draw a picture that includes existing objects and methods and their relationships when the attached program is at the marked point of execution.”  Unspecific instruction → participants report what they see important and salient (Pennington, 1987; Good & Brna, 2004)  ”Program state” vs. ”existing objects ...”  Participants also guided by lectures and textbooks  Programs 32–39 LOC (1-3 classes)

  5. Study: Visualization Tools Used Object Method call Object reference Class Jeliot OO metaphors

  6. Study: Schedule Jeliot-Metaphor group Metaphor-Jeliot group Week Tool Use Drawing Task Week Tool Use Drawing Task 3rd Jeliot, prog A 3rd Metaphors, prog A 4th Jeliot, prog B 4th Metaphors, prog B 5th First, prog 1 5th First, prog 1 6th Metaphors, prog B 6th Jeliot, prog B 7th Metaphors, prog A 7th Jeliot, prog A 8th Second, prog 2 8th Second, prog 2 10th Third, prog 2 10th Third, prog 2

  7. Study: Participants  Mostly first-year CS students  Course attended by 59 students (13 females)  Tasks part of course duties  29-48 participants in each drawing task  Assignment to group depended on students’ selection of lab exercise group

  8. Results: The First Six Drawings  What did we expect ?  lecture style  textbook style  Jeliot style  Metaphors style  What did we see ?

  9. The 1 st Drawing Object reference as a method call ”Object drive” Class ”Object main”

  10. The 2 nd Drawing Method call All methods All objects Object reference

  11. The 3 rd Drawing Application domain concept Active object Active method ”Train object” Attributes

  12. The 4 th Drawing Objects that have been active ”Main program” Method call

  13. The 5 th Drawing All objects Object reference All attributes All methods ”main” All objects

  14. The 6 th Drawing Textual description of actions List of all objects List of all methods

  15. Analysis  Overall approach  Content elements at the end  Content element development  Common errors

  16. Overall Approach (1/6)  Overall approaches characterized by  central concept(s)  subordinate concept(s)  E.g., ”existing objects with subordinate active methods”  8 categories (A1..A8)  Examples ...

  17. Overall Approach (2/6) Existing objects with subordinate active methods (A2)

  18. Overall Approach (3/6) Existing objects and all methods (A3)

  19. Overall Approach (4/6) Classes with subordinate active code and objects (A5)

  20. Overall Approach (5/6) Execution path with subordinate objects and methods (A7)

  21. Overall Approach (6/6) % First Second Third Code Central Concepts Subordinate Concepts 15 22 7 A1 Existing objects 20 44 55 A2 -”- Active methods 44 19 10 A3 -”-, all methods 5 0 0 A4 All methods Effects on objects 0 0 3 A5 Classes Active code & objects 2 0 3 A6 Active object Important code 7 7 3 A7 Execution path Objects, methods 0 4 10 A8 Active exec. path -”-

  22. Analysis  Overall approach  Content elements at the end  Content element development  Common errors

  23. Element Analysis Technique Dynamic existence of an exited method (C18) Object (C6) Data type (C2) Method’s or constructor’s belonging to its class (C21) Dynamic existence of a parameter, id not visible (C27)

  24. Content Elements, 3 rd Task (1/2)  Classes 14%, objects 100%  Attributes and their relationship to the object frequent  Methods (past 48%, current 72%), constructors (7%), main (0%) → differences in mental representations of methods vs. constructors and main

  25. Content Elements, 3 rd Task (2/2)  Local variables with identifiers; parameters without identifiers → differences in ...  Relationships between attributes/parameters/ local variables and the object/ method represented almost always , but ... local variables of the main method never attached to main but usually to the object they referred to !

  26. Analysis  Overall approach  Content elements at the end  Content element development  Common errors

  27. Content Element Development  Existing objects, all methods (A3) → Existing objects with subordinate active methods (A2):  static existence of methods 59% → 17%  static existence of constructors 20% → 3%  dynamic call graph of methods 5% → 55%  Identifiers left out more often:  object references (no id 24% → 62%)  attributes (no id 17% → 52%)  parameters (no id 46% → 55%)

  28. Analysis  Overall approach  Content elements at the end  Content element development  Common errors

  29. Common Errors (1/3)  Wrong location of main method’s local variables Where is the main method located in students’ mental representations ?

  30. Common Errors (2/3) owner_a.increaseFood(100);  Wrong direction of the relationship between method dog1.hunger(5); and the associated object Students’ mental representations seem to possess various errors in how methods deal with attributes

  31. Common Errors (3/3)  Wrong direction of object references Breaks if object references do change

  32. Conclusion  Central findings:  large variability of approaches  mental representations not only grow—they also change over time  problems with object-method relationships  problems with the main method  Future work:  comparison with other institutions  ways to improve students’ understanding of the OO notional machine

Recommend


More recommend