Pedagogical Pattern #0
Design-Implement-Redesign-Reimplement (DIRR) Pattern

contributed by:
Steve Houk
Santa Barbara City College
Computer Science
721 Cliff Drive
Santa Barbara, CA 93109 USA
shouk@sisko.sbcc.cc.ca.us

NAME:

Design-Implement-Redesign-Reimplement (DIRR) Pattern

INTENT:

Explain new concepts and methods based on old concepts.

MOTIVATION:

It is often hard to get students to make the paradigm shift from functional programming to object oriented programming. The lecture-lab pedagogy provides a "concept" and "use" approach which can prevent the student from separating the "concept" from a specific "use". The DIRR pedagogy provides "relearning" methodology for reinforcing new concepts. In this pedagogy, the students are asked to design and implement programming solutions using their current paradigm. This is followed by a discussion of how the solution can be redesigned using concepts from the new paradigm. Finally, the students will reimplement their solutiona using the new paradigm concepts.

APPLICABILITY:

Use the Design-Implement-Redesign-Reimplement pattern to bridge the gap from an old paradigm to a new paradigm.

STRUCTURE:

Design:
Students are given a programming problem and told to design a solution using their current familiar design methodology. The problem should contain components that can later be identified as redesignable in the new paradigm.

Implement:
Students implement a solution to the programming problem using their current familiar coding methodology.

Redesign:
After the students have implemented their solutions, the instructor leads a discussion of how the solution can be redesigned and repartitioned using new concepts from the new paradigm. Also presented are programming language features that support the new concepts.

Reimplement:
The students redo the same programming problem using the new concepts from the new paradigm.

CONSEQUENCES:

The DIRR pattern:
  1. Provides students with first hand experience of both the "old way" and "new way" of developing solutions.
  2. Students gain practical insight into how new concepts relate their pre-established concepts.
  3. Solving a problem more than one way often leads to deeper understanding of the concepts being addressed.
  4. Questions arising from the students will tend to focus on the "why" things are done rather than on "how" they are done.

IMPLEMENTATION

Issues to consider:
  1. Double lab time required for each problem. However, second lab period should be shorter since many of the "semantic" issues have been handled by the students in the first lab.
  2. Redesign discussions should center on how to repartition the problem and not on "good" previous solution.
  3. Stronger (ego) students may be frustrated by having to "redo" their first solutions.
  4. Evaluation should focus on reimplemented solution. However, ignoring first implementation entirely will reduce willingness of students to provide a wholehearted improved solution.

EXAMPLE INSTANCES OF THIS PATTERN:

(Note: Although this "pattern" was conceived as a solution to the procedural-to-OO challenge mentioned above, it is defined in a general way so that it can have other instances -- so that it can be used in other lessons by other instructors (e.g. converting students from one operating system to another, one language to another, one development environment to another, etc.))


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