Explaining inheritance: a code reusability perspective
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
ACM Computing Surveys (CSUR)
Myths about object-orientation and its pedagogy
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Using an environment chain model to teach inheritance in C++
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
ProfessorJ: a gradual introduction to Java through language levels
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Cognitive activities of abstraction in object orientation: an empirical study
ACM SIGCSE Bulletin
Novice Java programmers' conceptions of "object" and "class", and variation theory
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
The quarks of object-oriented development
Communications of the ACM - Next-generation cyber forensics
Teaching inheritance concepts with Java
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
Dynamic object viewers for data structures
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Checklists for grading object-oriented CS1 programs: concepts and misconceptions
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Difficulties experienced by students in maintaining object-oriented systems: an empirical study
ACE '07 Proceedings of the ninth Australasian conference on Computing education - Volume 66
Hi-index | 0.00 |
Inheritance and polymorphism are important OOP topics in CS1 and CS2. While these concepts are generally straightforward, there are subtleties that may leave students confused. For example, accessibility of a field in an object is generally determined by the declaring type and access modifiers of the field, and the context in the executing program from which the field is referenced. The dynamic object viewers in jGRASP have been expanded to allow the user to: (1) change the declared type of the object reference to any compatible type and (2) change the accessibility context of the object reference. These options enable the user to explore accessibility and visibility relationships by experimenting with any object on the workbench or in the debugger. Symbols, color, and text are used in the viewer to indicate inheritance relationships, accessibility, and visibility of fields and methods. Initial classroom use has demonstrated the potential for these new viewer features as an aid to students who are learning about inheritance and polymorphism.