ACM Home Page
Please provide us with feedback. Feedback
The eighth "killer examples" workshop: good examples for exposing bad practice
Full text PdfPdf (256 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications table of contents
Orlando, Florida, USA
POSTER SESSION: Posters & student research competition table of contents
Pages 777-778  
Year of Publication: 2009
ISBN:978-1-60558-768-4
Authors
Dale Skrien  Colby College, Waterville, ME, USA
Carl Alphonce  University at Buffalo, Amherst, NY, USA
Adrienne Decker  University at Buffalo, Amherst, NY, USA
Jürgen Börstler  Umeå University, Umeå, Sweden
Michael E. Caspersen  Aarhus University, Aarhus, Denmark
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 13,   Citation Count: 0
Additional Information:

abstract   index terms  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1639950.1640010
What is a DOI?

ABSTRACT

The "Killer Examples" series of workshops are highly interactive workshops which have been an annual occurrence at OOPSLA since 2002. The goals of the workshop are to bring together educators and developers to share their object-oriented expertise, and to provide a forum for discussion of teaching techniques and pedagogical goals. The theme of last year's workshop was pedagogically sound examples for object orientation; this year's workshop continues that theme, but rather than focusing on examples that demonstrate sound object-oriented design, it will focus on examples that expose bad practice and so lead to better appreciation of good practice, as obtained by following sound object-oriented principles.

In this year's workshop we focus on the use of examples that expose bad practice. Students, when presented with good (killer) solutions to problems, can appreciate how the solutions incorporate sound OO principles, but they may not understand what is wrong with alternative solutions that also appear good to them. It is important that students learn how to look at a bad solution to a problem and critique it with regard to standard OO principles, such as Law of Demeter or the Liskov Substitution Principle. Skill at critiquing bad code is valuable in code reviews and in other situations involving reviews of existing or proposed solutions to problems.

Good examples that demonstrate bad practice can be as simple as a section of code with a poorly named variable that misleads the reader regarding the behavior of the code. Alternatively, a good example might be one that looks to be well-designed at good at first glance, but demonstrates fragility when changes are attempted. Another example might consist of an inappropriate application of a design pattern. Also, a large method that can easily be refactored using the Extract Method refactoring could be another example.

Some examples could demonstrate several bad practices, and so require a series of design changes or transformations in order to be converted into a good solution.

In our workshop, participants discussed examples exposing bad practice that they have seen or used in their teaching, whether it be in a traditional classroom or in an industry training setting. Such examples are often found in students' solutions to problems or in existing code bases in industrial applications.

This poster reports on the outcome of this year's full-day workshop, held at OOPSLA on Sunday,October 25.