Pedagogical Pattern #28
Using Design Patterns as a context in which to teach Fundamental Components of Object Oriented Systems

(Version 1.0)
Jane Huang
Governors State University
University Park, IL 60466 USA
ghuangj@govst.edu

Intent:

To expose students to the fundamental principles of good object-oriented design.

Motivation:

There are certain fundamental principles on which good object oriented systems are based.
Experienced programmers are familiar with these principles and have found them to be necessary ingredients in the design of robust and reusable systems. Design Patterns Demonstrate how these principles can be implemented to solve specific kinds of problems, and therefore provide a rich context in which to teach these principles.

Applicability:

This Pedagogical pattern can be used in any non-beginner type object-oriented course, to teach the fundamental principles of object-oriented design, or to demonstrate how these principles might be implemented in a specific programming language.

Structure:

1. Select a Design Pattern that implements the Principle
Determine the design principle that is to be focused upon, and select a design pattern that clearly and concisely demonstrates how this principle might be implemented within a specific context.
2. Discuss the Design Principle
Use a short discussion or lecture to explain the design principle in terms of its purpose and the expected outcome of applying it.
3. Present the Design Pattern
Demonstrate how the design principle has been implemented within this pattern in the following steps:
  1. Select one of the following methods to introduce the design pattern:
    A formal presentation using class and state diagrams.
    The Concrete to Abstract Pedagogical Pattern.
    The Incremental Role Playing Pedagogical Pattern.
  2. Focus on the section of the design pattern that implements the principle. Observe how classes and objects collaborate to solve the problem.
  3. Give an actual example, in which the design pattern has been implemented.
4. Work on a problem.
Introduce a simple design problem that can be solved using this particular design pattern. Divide the students into small groups, and have each group design a solution to the problem that utilizes the technique or pattern being taught, and uses the specified design pattern. The required components could include class diagrams, class interfaces, implementation code or any combination of these items that provides the optimum practice for the selected topic.
5. Present Solutions
As many groups as possible should be given the opportunity to display their solutions. One possibility is to assign each available blackboard to a group and have the groups simultaneously display their results on the board. Each group can then be given a few minutes to present key points from their solutions.
6. Discuss Solutions
There should be an open class discussion of the solutions that have been displayed. Each group should not only present their solution, but discuss how the underlying principles have been implemented, and the expected advantages of such implementation.
7. Individual Practice
The instructor can set a simple homework assignment that requires the students to individually design a solution to a given problem by focusing on the technique or principle being taught.

Consequences:

  1. Provides students with the opportunity to collaborate with others to solve a problem, thereby fostering confidence in individuals, and encouraging listening skills.
  2. Exposes students to the skill of applying a known solution to a given problem, instead of "reinventing the wheel".
  3. Introduces fundamental Object Oriented principles, and provides students with the opportunity to design a simple system in which these principles have been considered.

Implementation:

  1. A Design Pattern must be selected that clearly illustrates the Object Oriented Principle that is to be taught without complicating the issue by being too complicated.
  2. The examples used to illustrate the design pattern must be ones that can be easily understood by the class, and the group exercises that are set must be based upon problem domains with which the majority of students are familiar.
  3. Group dynamics should be discussed with the class before the group exercises take place, so that each individual is able to fully participate in the process.
  4. If this method is used on more than one occasion, the groups should be altered so that different people have the opportunity to work together.

Related Patterns:

None.

Example Instances:

Teaching principles of Object Oriented Design such as:

Teaching Techniques of Object Oriented Programming such as:


Home Project
Leaders
Pedagogical Pattern
Format
Evolution of a
pedagogical pattern
Sample
Patterns
Publications
Subject
Index
Learning Obj.
Index
Teaching/Learning
Element Index
Alphabetical
Index
Author(s)
Index
Contact
Us
Previous pattern Search This Site Next pattern