UML class diagrams are used quite commonly in CS1-CS2 courses and textbooks. The benefits of using these diagrams include providing a programming-language independent way of communicating program design, in an industry standard language. While drawing diagrams by hand is in itself useful, beginning students do not always perceive the benefit of designing before coding, and create these diagrams only if they have to, and then only as an afterthought.We have found that students are much more receptive to using UML class diagrams as an integral part of their development if they see immediate benefits from doing so. This paper describes Green, a simple to use yet flexible and extensible UML class diagramming tool. Green (an Eclipse plug-in) provides complete round-tripping between code and class diagram. This capability makes it easy for students to alternate between a detailed code-level view and a more abstract design view of their projects. With this capability students see creating class diagrams not as a separate and tedious activity, but as an easy way to turn designs into code and to discover the design of existing code.Green's distinguishing features when compared to similar tools are that it has been developed to meet the needs of CS1-CS2 students, the semantics of its relationships are customizable, additional class relationships can be defined and it is integrated with Eclipse, a mature development environment.
[1]
Jens Bennedsen,et al.
Revealing the programming process
,
2005,
SIGCSE '05.
[2]
Stephen H. Edwards.
Rethinking computer science education from a test-first perspective
,
2003,
OOPSLA '03.
[3]
Matthias Felleisen,et al.
The DrScheme project: an overview
,
1998,
SIGP.
[4]
Robert Cartwright,et al.
Taming Java for the classroom
,
2005,
SIGCSE '05.
[5]
Matthew Flatt,et al.
ProfessorJ: a gradual introduction to Java through language levels
,
2003,
OOPSLA '03.
[6]
Stephen H. Edwards,et al.
Using software testing to move students from trial-and-error to reflection-in-action
,
2004,
SIGCSE '04.
[7]
Carl Alphonce,et al.
Object orientation in CS1-CS2 by design
,
2002,
ITiCSE '02.
[8]
Carl Alphonce,et al.
Using graphics to support the teaching of fundamental object-oriented principles in CS1
,
2003,
OOPSLA '03.
[9]
Laurie A. Williams,et al.
In support of student pair-programming
,
2001,
SIGCSE '01.
[10]
Carlos Gregorio Rodríguez,et al.
Computing Curricula 2001
,
2002
.
[11]
Laurie A. Williams,et al.
Improving the CS1 experience with pair programming
,
2003,
SIGCSE.
[12]
Scott Grissom,et al.
An approach to teaching object oriented design in CS2
,
2004
.