Pedagogical Pattern #45
Concept, Glossary, Problem, Analyze, Discuss, Design (CoG-PADD) Pattern
(Version 1.0)
Donald J Bagert
Department of Computer Science
8th and Boston
Texas Tech University
Lubbock TX 79409-3104
bagert@ttu.edu
Intent:
To teach a new idea at the conceptual level and in an interactive manner.
Motivation:
When being introduced to a new concept, students too often concentrate on the details, without looking at the high-level aspects of the problem. Also, for a student to properly appreciate a concept, a
problem example need to be posed that is excellent for analysis and architectural design, but may be too large for detailed design and implementation in the classroom environment.
Applicability:
This pattern can be used to introduce any major computing concept, although it of course works better in some areas than in others.
Structure:
Concept:
Introduce the new idea, using real-world analogies as much as possible. As the students questions related to their real-world experiences in this area. ("How do you..." "What if...")
Glossary:
Giving the students a glossary of new terms related to a subject area is important. Not all of those terms need to be addressed immediately. Having each term, where possible, compared to something they have experienced before can be especially useful.
Problem:
The students should then be posed a real-world problem that uses this concept.
Analyze:
The students should then, in small teams, analyze the problem statement ("customer requirements"). The instructor can act as a mentor and/or customer during analysis.
Discuss:
The students then share their analysis with the class, and the positive and negative aspects of these analyses are discussed.
(Note: The Problem-Analyze-Discuss segment can be done in several increments where appropriate.)
Design:
The instructor can then discuss how a specification results from this analysis can be converted into an architectural design. This step can also be done interactively with discussion, and in increments,
as was shown for the Problem-Analyze-Discuss segment. This step should NOT ordinarily follow with further steps in the life cycle.
Consequences:
- Allows the students to understand a new idea without worrying about the details.
- Allows the students to appreciate the concept using a real-world problem example that is excellent for analysis and architectural design, but too large for detailed design and implementation within the constraints of the course.
- Allows the students to work in small groups to solve a problem, which helps them to quickly understand a new concept.
Implementation:
A little more preparation time is generally needed, despite the fact that there is more student participation than normal. A glossary probably takes up most of this time. Finding a good real-world problem is also essential.
Example Instances:
CoG-PADD has been successfully used to teach the object-oriented paradigm, task-based concurrency, and the logic-based paradigm. The object-oriented instance is described in [1], although not precisely in terms of CoG-PADD. In this case, the "problem-analyze-discuss" segment
is performed in increments. The creation of that instance, which led to the development of the CoG-PADD pattern, was inspired by a technique Alistair Cockburn uses to teach the object paradigm [2], which would best be described as an instance of a "concept-design-discuss" (where the "design-discuss" phase is done in several increments) pattern, if such a pattern exists.
References:
[1] Bagert, Donald J. Object-oriented design resources for CS2.
OOPSLA '97 Research Workshop on Resources for Early Object Design Education,
Atlanta GA, 5 October 1997.
(http://www.bk.psu.edu/faculty/mercer/design/Bagert.htm)
[2] Cockburn, Alistair. Teaching OO design is teaching how to assess the design's future.
OOPSLA '96 Research Workshop on Teaching and Learning Object Design in the First Academic Year, San Jose CA, 6 October 1996.
(http://www.bk.psu.edu/faculty/mercer/design/16Alistar_Cockburn.htm)