1 / 16

Using Memory Diagrams When Teaching a Java-Based CS1

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. Overview. Motivation and Introduction Diagramming as a teaching tool

Download Presentation

Using Memory Diagrams When Teaching a Java-Based CS1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 ACM-SE

  3. 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 ACM-SE

  4. 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 ACM-SE

  5. 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 ACM-SE

  6. aColor otherColor favColor Objects, Variables, and References String acolor=“blue”; String favColor=aColor; String otherColor; Features: • Labels on objs and vars • Different shapes • Reference lines begin inside variable String “blue” ACM-SE

  7. aColor otherColor ( ) Method Invocation aColor = aColor.concat(otherColor); 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 X String “red” String “blue” concat String “bluered” ACM-SE

  8. first second 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 score name 87 String “Sue” Student score name 85 String “Bob” ACM-SE

  9. john 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) advance clock 8 16 Employee start end 8 16 ACM-SE

  10. 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… ACM-SE

  11. 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 ACM-SE

  12. 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 ACM-SE

  13. 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) Results(13 students) • Figure a • 11 correct • 2 labeled rectanglewith 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 ACM-SE

  14. 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) 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 ACM-SE

  15. 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 ACM-SE

  16. 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 ACM-SE

More Related