TY - GEN
T1 - The eighth "killer examples" workshop
T2 - OOPSLA 2009 Companion - 24th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 2009
AU - Skrien, Dale
AU - Alphonce, Carl
AU - Decker, Adrienne
AU - Börstler, Jürgen
AU - Caspersen, Michael E.
PY - 2009
Y1 - 2009
N2 - 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.
AB - 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.
KW - Learning
KW - Object-orientation
KW - Pedagogy
KW - Process
KW - Programming
KW - Teaching
UR - https://www.scopus.com/pages/publications/72249113687
U2 - 10.1145/1639950.1640010
DO - 10.1145/1639950.1640010
M3 - Conference contribution
SN - 9781605587660
T3 - Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA
SP - 777
BT - OOPSLA 2009 Companion - 24th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 2009
Y2 - 25 October 2009 through 29 October 2009
ER -