Pedagogical Pattern #29
Using Design Patterns to teach the concept behind a complex framework

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

Intent:

To introduce a design concept behind a complex framework or toolbox that students will be required to use, so that as the individual components are presented, the students can understand how they fit into the bigger picture.

Motivation:

When students learn to use a framework such as MFC, they become confused by the seemingly endless number of classes and functions.
Design Patterns that are identified within the framework can be used to create a frame of reference for the actual classes and member functions that the student must become familiar with.

Some topics are best taught by placing students in a situation in which they "discover" for themselves how something works. If that approach were used to teach a framework, then the students would start working with the framework, and as various classes were used, and function calls made, the student would begin to piece together the entire concept. For some students, this process can become very confusing as they fail to build an adequate internal visualization of how all of the pieces fit together.
This pedagogical pattern addresses this issue by attempting to provide students with a broad picture into which they can reference the individual components.

Applicability:

This pattern can be used when teaching a course such as Visual C++ in which the student needs to become familiar with MFC, or a Small Talk course in which the student needs to become familiar with MVC concepts.

Structure:

  1. Mine Patterns from the framework
    The instructor must identify design patterns that are used in the framework, and determine if any pattern might be useful for teaching a specific topic.
  2. Explain the Concept
    Use the Design Pattern that has been identified as a context in which to teach a concept. (For example: the Document/View paradigm in MFC). Explain the concept behind such a set of classes. Use charts, diagrams and other visual aids to explain the concept. The students should become familiar with all of the classes involved, and the types of function calls each type of object might need to make. This level is for understanding concept only!
  3. Describe the Actual Implementation Within the framework
    Explain the actual class heirarchy and familiarize the students with the implementation of the pattern within the framework. The students should be introduced to real classes and member functions, so that they understand how the design pattern has been implemented in the specific framework they are working with. This material can be covered by a combination of a short lecture followed by a demonstration of a simple application.
  4. Hands On Practice
    A lab assignment should be set in which each student is required to develop a simple application using the features of the framework that have just been discussed.

Consequences:

  1. Exposure to a concept that can be applied to solve many problems, instead of merely learning the implementation of one framework.
  2. Reinforcement of the learning process as the material is presented in two different formats, first as a concept, and secondly as an implementation.

Implementation:

  1. The instructor must be able to adequately recognize useful design patterns within an application.
  2. As students learn in a variety of styles, this method is best implemented by a combination of lecture, visual aids, demonstration of actual code, and hands on practice.

Related Patterns:

None.

Example Instances:


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