Download presentation
Presentation is loading. Please wait.
Published byGwendolyn Spencer Modified over 9 years ago
1
Using Memory Diagrams When Teaching a Java-Based CS1 Mark A. Holliday David R. Luginbuhl Dept of Mathematics and Computer Science Western Carolina University ACM-SE Conference March 7, 2003 Savannah, GA
2
3/7/2003ACM-SE Overview Motivation and Introduction Diagramming as a teaching tool – Objects, variables, and references – Primitive types, fields, visibility, and parameter passing – Static fields and methods – Arrays Diagramming as an assessment tool Conclusion
3
3/7/2003ACM-SE Motivation Problem: – How to help CS1 students visualize state of computer as Java program executes – How to introduce and reinforce object-oriented concepts in an introductory CS course Solution: – Diagrams Abstraction; visualization – “UML”-like UML not primarily focused on state of memory – Diagrams used in many textbooks, but without much emphasis
4
3/7/2003ACM-SE Criteria Take into account features of language (for us, Java) Visualize state of computer Distinguish between – Objects: classes: reference variables – Reference types: primitive types – Private: public Consistency for similar concepts Method invocation and object construction Labels, as appropriate Arrays vs. other objects
5
3/7/2003ACM-SE Memory Diagrams Similar to other diagrams – See, particularly, [WU2001] – But with extensions and particular emphases Important aspects – Shape matters – Importance of reference and invocation – Indication of values with variables – Visibility rules
6
3/7/2003ACM-SE Objects, Variables, and References String acolor=“blue”; String favColor=aColor; String otherColor; String “blue” aColor favColor otherColor Features: Labels on objs and vars Different shapes Reference lines begin inside variable
7
3/7/2003ACM-SE Method Invocation aColor = aColor.concat(otherColor); String “blue” aColor otherColor String “red” concat ( ) String “bluered” X Features: Method indicated by line on object – Indicates each object has method Method is public Squiggly line indicates invocation New object created New value for aColor; old value removed
8
3/7/2003ACM-SE Primitive Types, Fields, Multiple Instances Primitive type variables have numeric value – As opposed to ref types Private fields represented inside object – Using rectangles indicates fields are just variables associated with objects Different Student objects have same fields with (possibly) different values Student first second Student 87 score 85 score name String “Sue” String “Bob”
9
3/7/2003ACM-SE Static fields and methods Static fields and methods are displayed in a diamond instead of a circle – Punch clock provides a nice example for static fields and methods See paper for more examples, including passing parameters and diagramming arrays Employee 8 16 clock Employee john 8 start 16 end advance (8)
10
3/7/2003ACM-SE Student Exposure to Diagrams We introduce these diagrams to students on the first day of CS1 class We ask students to produce diagrams of their own – In groupwork – In directed lab work – On quizzes and tests Bottom line: reinforcement of concepts in a number of contexts – But not just for learning…
11
3/7/2003ACM-SE Student Assessment By having students use diagrams themselves, we have them demonstrate their comprehension of object- oriented concepts We believe these diagrams have potential for measuring programming comprehension – Anecdotal evidence from several semesters of application
12
3/7/2003ACM-SE Example Test Problem From Last Fall Diagram the program fragment below Dog spot;// fig a) spot = new Dog("spot"); // right hand side is fig b) // left hand side and equal sign is fig c) System.out.println(spot.toString());// fig d) Note last line particularly – Static public variable (System.out) – Method composition – PrintStream object – Dog object – Creation of a String object
13
3/7/2003ACM-SE Results (13 students) Figure a – 11 correct – 2 labeled rectangle with name of class Figure b – 4 correct – 2 put “spot” inside var rectangle – 4 didn’t show name field – 2 had more serious errors Figure c – all but 1 student correct Dog spot;// fig a) spot = new Dog("spot"); // right hand side is fig b) // left hand side and equal sign is fig c) System.out.println(spot.toString()); // fig d)
14
3/7/2003ACM-SE Results (13 students) Figure d – All but 3 students showed call to toString() correctly – Of those 10 2 students failed only to show System.out correctly 1 showed nothing else correctly 5 missed the creation of a String object from toString() – They got the println() call right 2 showed the String object – But they missed the println() call Summary for this exam – “Decent” correlation between overall grades and grades on diagramming problem Dog spot;// fig a) spot = new Dog("spot"); // right hand side is fig b) // left hand side and equal sign is fig c) System.out.println(spot.toString()); // fig d)
15
3/7/2003ACM-SE Summary for Assessment We have more work to do We are considering a more rigorous examination of diagramming as a student assessment tool – Not just to measure progress – We hope we can pinpoint problems and provide proper reinforcement of specific concepts
16
3/7/2003ACM-SE Conclusion – Memory Diagrams A relatively low-tech approach for teaching OO concepts – Well-suited for classroom, labs, exams – Importance of shape and placement for reinforcing concepts – Having students make their own diagrams adds to this reinforcement Promise of diagrams for measuring comprehension – If students can diagram what is happening in memory, they are probably understanding the deeper meaning of the program – More work to do
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.