Pedagogical Pattern #53
Larger Than Life
(Version 1.0, October 1998)
Contributed by:
Joseph Bergin
Pace University
One Pace Plaza
New York, NY 10038 USA
berginf@pace.edu
NAME:
Larger Than Life
THUMBNAIL:
Students of Object-Oriented programming and design can and should examine and use computing artifacts much earlier than they can design and build them themselves.
PROBLEM/ ISSUE:
In courses other than computer science, students regularly work with texts and other artifacts far larger and more sophisticated than they could produce themselves. A literature or history course is a good example. The same occurs in sociology courses. These artifacts teach the student what is best in the field and should be emulated.
AUDIENCE/ CONTEXT:
Students at all levels, from raw novices to quite experienced students.
FORCES:
Students cannot initially produce programs and other software development artifacts of any complexity. However they need to be introduced to the complexity of real systems. They can, in fact, examine and learn from programs and other artifacts far beyond their ability to produce. Much time is spent in class on quite low level details, yet students need to see the big picture.
If the student builds everything that they use, they will get a very stilted view of how real software is produced in the world. They are also unlikely to have a real appreciation for the complexity of real systems, or the requirements of software that will be used by people other than its author.
SOLUTION:
Give the students access to large programs and designs well before they have the ability to produce them. These artifacts can be used as the basis of exercises. Students can make small modifications to large programs and they can extend them in simple ways early on. They can also make corrections to flawed large programs if the flaws are of modest difficulty (see Fixer Upper).
These artifacts should generally be of high quality design, so that students will have a template to emulate in their own work. An exception is made if the goal of the exercise is to improve a large but poor design.
DISCUSSION/ CONSEQUENCES/ IMPLEMENTATION:
Unlike the days in which languages were simple and libraries non-existent, students today need to be able to use libraries written by others. These libraries are usually more complex than the students could create. They may also contain much code of generally low conceptual content, so that it isn't worth course time to develop them from scratch. Their design, however, may be of some interest.
SPECIAL RESOURCES:
Large computing artifacts of good design.
RELATED PATTERNS:
- If the artifact requires repair then it is also a
Fixer Upper.
- If given early it is an Early Bird.
- If it is generally useful it is a Tool Box entry.
- If the artifact covers most of the main concepts in a course it is also an instance of Lay of the Land.
See Also: Fixer Upper, Spiral, Mistake, Early Bird, Toy Box, Tool Box, Lay of the Land, Test Tube and Larger Than Life as a pattern language.
EXAMPLE INSTANCES:
The Standard Template Library of C++ is such an artifact. So is the AWT of Java. Design documentation for large systems are examples. Complete programs such as compilers and operating systems are also useful. One standard technique in a Compiler course is to give the students a complete compiler for one language at the beginning of the course. This artifact is then examined over the term and the students build a compiler for a different language.
In any object-oriented course, students will benefit from the use of libraries prepared by others, either instructor written, or perhaps standard libraries.