OOPSLA’98 Workshop: Evaluating Object-Oriented Design
Educator's Symposium Report
Early OO Design: The Next Step in OO Education
Victoria University, New Zealandrobert@mcs.vuw.ac.nz
Penn State Berks-Lehigh Valleyrhm1@psu.edu
University of Northern Iowawallingf@cs.uni.edu
Object-Oriented programming is now the basis for many introductory courses in programming. But while it seems students successfully learn program implementation in such courses, it is less clear whether they learn program design. In 1996 we organized a workshop to address how to better teach OO design in first year computer science courses in universities and colleges. In 1997 we organized a follow-up workshop on resources. Now in 1998 we are organizing a third workshop to concentrate on a specific issue: how to evaluate OO design. This is an important issue for software designers, and one of practical importance to educators. We must be able to explain design quality to our students, and help them understand and distinguish what constitutes good or bad design.
Our workshops focus on object design, rather than implementation, and on the different issues involved in teaching and learning object design. We are striving to involve viewpoints and ideas from educators, learners, and industry in a cooperative effort. There are many issues to address, including the nature of good design, how it can be taught, learned, and assessed ¾ and how tools can help. Our intention is to help educators perform their role more successfully. We explicitly avoid language wars, and specifically welcome people from both academia and industry to contribute their perspectives.
Our initial goal in 1996 was to investigate general experience and ideas related to effective early teaching and learning of object design. We hoped to determine useful guidelines for educators that better prepare students for future courses and industry. Our goal for 1997 emerged from one of the outcomes of the 1996 workshop: there was a widespread call for resources to enable teachers to emphasize object design more effectively. Therefore the 1997 workshop specifically addressed the need for a resource base for emphasizing object design in the early years. Our 1998 goal is to address evaluation of OO design, to understand the issues, and to determine the implications for educators.
The title for the 1996 workshop was: "Teaching and Learning Object Design in the First Academic Year". Our approach was broad, and we invited presentations and collaborative sessions to investigate methodologies, tools, philosophies, case studies, and assessment techniques.
The workshop consisted of four major presentations, many short presentations, a demonstration, and much discussion. The major presentations covered several significant views of the topic: the difficulty of teaching design before anything else, how to use design modification as a strategy for teaching design, use of OO patterns right at the beginning, and dealing with large scale programming before small scale programming. The demonstration involved actual students, and showed them learning design via role-playing and a responsibility driven method.
The discussion covered a wide range of topics, and while there was broad agreement about the importance of introducing design earlier, there were more diverse comments about practicalities and implications involved in addressing the matter. We had a consensus that explicitly addressing design at first year was both possible and beneficial. However, we also all agreed that students would not be great designers after first year, and that the first year program should not concern design only. There was strong agreement that design should be addressed in realistic contexts. We felt that there was a need for more resources to support teaching and learning OO design early: especially more appropriate example problems.
We had set out to generally tackle the idea of explicitly teaching OO design in the first year. We did make a beginning, and decided to proceed further. The workshop reported to the Educators Symposium, and took part in the report from the symposium to the main Oopsla conference. The full report from the workshop was published in the addenda to the Oopsla 96 Proceedings, and is also available on our web page (which is cited at the end of this report).
3. Resources: 1997 Workshop
We organized the 1997 workshop to follow on from the 1996 one. The earlier workshop resulted in agreement that object design should be emphasized to a greater extent in the early stages of computer science education, and a number of convincing approaches were presented. However, in the 1996 workshop there was also a widespread call for resources to enable teachers to emphasize object design more effectively. This new 1997 workshop addressed the need for a resource base for emphasizing object design in the early years.
We asked those attending the workshop to submit sample resources, both to start our repository and to focus our discussions. A number of interesting resources were submitted, and several were presented at the workshop. The resources covered a wide range, and included notations, teaching strategies, case studies, and software tools. (The resources are all documented on our web site, given at the end of this report.)
As well as these prepared resources, there were also brief presentations by several other participants who outlined their work in organizing resources. It became clear that substational work involving repositories of OO resources was already going on, and that resources for stressing early design could be, and already were, involved in that effort.
As we had decided to limit the workshop to a half-day, our time for discussion was very short. Accordingly, we concentrated mostly on practical issues necessary to continue our work. There was quick consensus that we were still on the right track, that an early emphasis on design still seemed attractive, and that sharing resources was an important activity. We then discussed what kinds of resources were most needed. Suggestions widely supported were:
There was also discussion about the way a resource repository should be organized, and several people thought it important that it should be more than a passive storehouse. In particular, it was suggested that:
All participants agreed that resource sharing was helpful. However, there was also some discussion about the difficulties involved. One difficult mentioned involved legalities: there would be problems in making copyright material available in a repository. However, it seemed likely that publishers or other copyright holders might well agree to summaries being offered as resources, with references to the complete copyright material.
A more general set of difficulties simply concerned how easy it would be to create and use resources. For a resource user, it was seen as easy to retrieve a resource in the form it was created, but arduous to adapt resources for use elsewhere; if too arduous it would not be worthwhile. For a resource provider, it was seen as easy to provide a resource in the form it was created, but arduous to make it general purpose. While many people were happy to share the results of their work, they felt unable to do more work to generalize resources for other people.
We discussed whether it would be possible for a repository to be seen as a journal, where contributions were refereed and successful resources regarded in similarly to research publications. We agreed that this might be a reasonable aim, but that we should concentrate in the short term in better sharing what we already can make available.
Even though our time for discussion was short, we did venture a little outside the immediate topic. One topic raised was familiar from the 1996 workshop: how best to evaluate student design, especially given the large class sizes and tight schedules of first year courses. Like resource sharing, this topic was identified in 1996 as a key area in which progress needed to be made. With resource sharing addressed in 1997, design evaluation now seems like an excellent next candidate for our attention!
The 1998 workshop will be held at Oopsla 98 on October 18th in Vancouver, Canada. The accepted proposal was as follows:
We propose a full-day workshop of presentations and collaborative sessions to study and discuss: Evaluating Object-Oriented Design.
This workshop will focus on design evaluation for educators involved in introducing object-oriented design at an early point in computer science education. This will continue the work begun at OOPSLA 1996 with our workshop on "Teaching and Learning Object Design in the First Year". We see an increased and early emphasis on design as an important step forward in OO education.
The original workshop resulted in agreement that object-oriented design should be emphasized to a greater extent in the early stages of computer science education. However, we also identified some key difficulties to making progress. We saw the need to foster creation and sharing of resources to support early OO design: we addressed this need in our OOPSLA 1997 workshop, and created a web repository. Other difficulties we saw concerned evaluating design at an early stage, and communicating to students what "good" design means: we plan to address these issues specifically at OOPSLA 1998.
Design evaluation is an important subject both from the perspective of software engineering, and the perspective of pedagogy. Students must understand that any design has consequences, and they must themselves learn how to determine good and bad consequences that may flow from design decisions. Educators must lead students through this process, facilitate their learning, and also provide critical guidance.
Moreover, evaluation also relates to practical issues of concern to many educators, including student assessment, team-building, and management of large groups.
Prospective participants are invited to submit a position paper with a contribution on this topic. The workshop will consist of presentations of these papers in the morning session, followed by an afternoon session of discussion and collaboration on the basis of the presentations from the morning. We hope this process will facilitate understanding and insight, yield practical advice, and allow us to make progress in increasing early emphasis on OO design.
As before, we will prepare a report summarizing the workshop and results for the OOPSLA addendum, and make workshop papers and related resources available via our web repository. We also hope to be able again to present an immediate report to the OOPSLA Educators Symposium.
We will stay true to the key principles of the earlier workshops by continuing to stress design over implementation, explicitly avoiding language wars, and above all working to help educators perform their role more successfully. We again specifically invite people from industry to contribute their perspective.
Primary Workshop Themes
Descriptions of Problems To Be Addressed
We propose to follow a similar plan to that of the 1996 and 1997 workshops. Broadly, we will use the morning for specific presentations, and with these presentations to focus us, we will use the afternoon for discussion. As before, we will split the morning presentations into major presentations, to allow enough time for critical ideas, and brief presentations, to allow everyone to outline their approach and hence facilitate later discussion.
References To Papers, Workshops, And Forums Motivating The Workshop
Our view is that recently there has been an increasing acceptance of OO as the paradigm of choice for introductory computer science courses. However, interest has typically focussed on language and implementation issues. In research and industry there have been important developments in better understanding of OO design, but these have not been directly suitable as resources for educators at early levels. Some new approaches have emerged, and we see our workshop as playing an important role in supporting educators.