Using Memory Diagrams When Teaching a Java-Based CS1 - PowerPoint PPT Presentation

About This Presentation
Title:

Using Memory Diagrams When Teaching a Java-Based CS1

Description:

How to help CS1 students visualize state of computer as Java program ... Diagrams used in many textbooks, but without much emphasis. 3/7/2003. ACM-SE. Criteria ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 17
Provided by: davidrlu
Learn more at: https://paws.wcu.edu
Category:

less

Transcript and Presenter's Notes

Title: Using Memory Diagrams When Teaching a Java-Based CS1


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

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

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

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

6
Objects, Variables, and References
  • String acolorblue
  • String favColoraColor
  • String otherColor
  • Features
  • Labels on objs and vars
  • Different shapes
  • Reference lines begin inside variable

String blue
7
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
8
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
9
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
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

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

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

13
Results(13 students)
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(s
pot.toString()) // fig d)
  • Figure a
  • 11 correct
  • 2 labeled rectanglewith name of class
  • Figure b
  • 4 correct
  • 2 put spot inside var rectangle
  • 4 didnt show name field
  • 2 had more serious errors
  • Figure c all but 1 student correct

14
Results(13 students)
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(s
pot.toString()) // fig d)
  • 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

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

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
Write a Comment
User Comments (0)
About PowerShow.com