ABSTRACT
Object oriented design patterns as popularized in [GHJV95] are intended to solve common programming problems and to assist the programmer in designing and developing robust systems. As first year courses increasingly emphasize object orientation, knowledge of design patterns and when to use them becomes an important component of the first year curriculum. Recent literature has focused on introducing the patterns to computer science educators, but not on the situations and contexts in which the patterns are appropriate. Design patterns and object orientation are parts of a methodology that scales to large systems. In this paper we show that these concepts do not always scale down. We analyze examples from current literature that would be simpler without patterns, and provide examples of when the same design patterns do make design and programs simpler.
- ABCM98.Owen Astrachan, Geoffrey Berry, Landon Cox, and Garrett Mitchener. Design patterns: An essential component of cs curricula. In Twenty-ninth SIGCSE Technical Symposium on Computer Science Education, pages 153-160. ACM Press, February 1998. Google ScholarDigital Library
- Ada96.Joel Adams. Knowing your roots: Objectoriented binary search trees revisited. SIGCSE Bulletin, 28(4);36-40, 1996. Google ScholarDigital Library
- Ast98.Owen Astrachan. Twenty questions/animal game. SIGCSE Symposium Presentation, 1998. http ://www. cs. duke. edu/csed/ patterns/animal/.Google Scholar
- AW98.Owen Astrachan and Eugene Wallingford. Loop patterns. In Proceedings of PLOP: Pattern languages of Programming, August 1998. Allerton Park, IL.Google Scholar
- BD96.A. Michael Berman and Robert Duvall. Thinking about binary trees in an object oriented world. In Twenty-Seventh SIGCSE Technical Symposium on Computer Science Education, pages 185-189. ACM Press, 1996. Google ScholarDigital Library
- Car98.Robert (Corky) Cartwright. Design patterns in cs2. OOPSLA Workshop on CS2, 1998.Google Scholar
- Car00.Robert (Corky) Cartwright. Using design patterns early. FYI 2000: Workshop on First Year Instruction, 2000.Google Scholar
- Fle93.Ann Fleury. Student beliefs about pascal programming. Journal of Educational Computing Research, 9:355-371, 1993.Google ScholarCross Ref
- GGT98.Natasha Gelfand, Michael T. Goodrich, and Roberto Tamassia. Teaching data structures design patterns. In Twenty-Ninth SIGCSE Technical Symposium on Computer Science Education. ACM Press, 1998. Google ScholarDigital Library
- GHJV95.Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- KR91.J. Koenemann and S. Robertson. Expert problem solving strategies for program comprehension. CHI Proceedings, pages 125- 130, 1991. Google ScholarDigital Library
- Ngu98.Dung Nguyen. Design patterns for data structures. In Twenty-Ninth SIGCSE Technical Symposium on Computer Science Education, pages 336-340. ACM Press, 1998. Google ScholarDigital Library
- NW99.Dung Nguyen and Stephen B. Wong. Patterns for decoupling data structures and algorithms. In Thirtieth SIGCSE Technical Symposium on Computer Science Education, pages 87-91. ACM Press, 1999. Google ScholarDigital Library
- NW00.Dung Nguyen and Stephen B. Wong. Design patterns for lazy evaluation. In Thirty-First SIGCSE Technical Symposium on Computer Science Education, pages 21-25. ACM Press, 2000. Google ScholarDigital Library
- NW01.Dung Nguyen and Stephen B. Wong. Design patterns for sorting. In Thirty-first SIGCSE Technical Symposium on Computer Science Education. ACM Press, 2001. Google ScholarDigital Library
- Rie96.Arthur Riel. Object-Oriented Design Heuristics. Addison-Wesley, 1996. Google ScholarDigital Library
- Wal96.Eugene Wallingford. Toward a first course based on object-oriented patterns. In Twenty-Seventh SIGCSE Technical Symposium on Computer Science Education, pages 27-31. ACM Press, 1996. Google ScholarDigital Library
- Woo98.Bobby Woolf. The null object pattern. In Robert Martin, Dirk Riehle, and Frank Buschmann, editors, Pattern Languages of Program Design 3. Addison-Wesley, 1998. Google ScholarDigital Library
Index Terms
- OO overkill: when simple is better than not
Recommendations
OO overkill: when simple is better than not
Object oriented design patterns as popularized in [GHJV95] are intended to solve common programming problems and to assist the programmer in designing and developing robust systems. As first year courses increasingly emphasize object orientation, ...
OO design in compiling an OO language
SIGCSE '99: The proceedings of the thirtieth SIGCSE technical symposium on Computer science educationObject-oriented languages have been moving into the mainstream of the undergraduate curriculum at an accelerating rate. We have developed a one semester compilers course centered on object-oriented languages. In this paper we discuss some of the major ...
OO design in compiling an OO language
Object-oriented languages have been moving into the mainstream of the undergraduate curriculum at an accelerating rate. We have developed a one semester compilers course centered on object-oriented languages. In this paper we discuss some of the major ...
Comments