Spiral
From Elearning
NB: This is an test pattern only, borrowed from computer science teaching (see references)
Topics in a course are divided up into fragments and the fragments introduced in an order that facilitates student problem solving. Many of the fragments introduce a topic, but do not cover it in detail. Just enough detail is given initially so as to form a basic understanding that can be applied to problem solving. Additional cycles contain reinforcing fragments that go into more detail on the topic.
Contents |
PROBLEM/ ISSUE
Topics in a course are often interrelated. Too often knowledge of lots of different topics are required for students to have enough tools with which to solve interesting problems. If we try to do the topics in any "logical" order we tend to get bogged down in details and leave the students bored. Students need to be empowered to solve meaningful problems early in the course.
AUDIENCE/ CONTEXT
This pattern applies to any course in which there are a large number of concepts that must be mastered together. It is the opposite of the "Systems Approach". (See Abandon Systems)
This pattern can be used in several courses, primarily at the early stages of the curriculum. It can be used (at least) in programming courses, analysis and design courses, and special courses in object technology. A variation of this pattern is often used in the compiler construction course.
FORCES
Many fields can only be mastered by individually mastering a large number of different techniques that must interact.
Large topics such as programming and design require many parts and much detail to master. Developing these in a sequential manner leaves the students without interesting exercises, as they have not seen enough of the breadth of the topic to do interesting things.
Students like to build things and they like to see how the pieces fit together. They get bored easily if instruction is repetitive and if the instructor spends too much time on one topic or a set of closely related topics. Students can also get bored if exercises are artificially contrived to illustrate arcane details.
Courses do not need to be organized like reference material. Nor should textbooks be.
SOLUTION
Organize the course to introduce topics to students without covering them completely at first viewing so that a number of topics can be introduced early and then used. This can get students working on interesting problems earlier as they have more tools to use, though they have not, perhaps, mastered any of the tools. The instructor can then return to each topic in turn, perhaps repeatedly, giving more of the information needed to master them.
On each cycle of the spiral topics are covered in more depth and additional topics are included. The sequencing of the "fragments" is done with an eye to providing students with problem solving skills. Anthony's Mix New and Old suggests the important of mixing new material into what is already known.
The course cycles around to a given topic several times during the term, each time to a greater depth.
DISCUSSION/ CONSEQUENCES/ IMPLEMENTATION
This pattern results in the topics of a course being more fine grained, with just enough of a larger topic introduced at each stage to permit problem solving with other tools/topics which are also, as yet, not completely covered. For example, "iteration" is a big topic. The "while loop" is a small topic, especially if initially introduced with only simple loop tests. Yet the while loop can be used effectively with other constructs to build meaningful programs before iteration is understood in all of its aspects.
To start, the instructor should extract a subset of the material covering several topics that interact. Only simple cases should be introduced at first. The instructor and class move quickly through the topics until an understanding of how the topics interact can be gained. Students then can work with the tool subset on problems. Then more of each of the original topics, with perhaps simple cases of new topics are introduced to deepen understanding of the topics and of their interactions. Students then work on a richer set of problems. This can be repeated as often as necessary.
Students will get a feel earlier for how the pieces fit together. A potential negative consequence for some students, at least, is that some of their questions (What if...?) may need to be deferred (see Test Tube).
SPECIAL RESOURCES
The instructor needs a plan, showing the order in which the topics will be introduced and what will be deferred to later cycles.
The instructor must extract subsets of each of the many topics in which the tools introduced can work together in problem solving. Several, increasingly large subsets must be designed. Problems using most of the features of each subset need to be designed. One way to design the subsets is to start with the problem and extract a minimal set of tools necessary to solve that problem and similar problems. The next larger subset can often be designed by thinking about how the original problem could be expanded and its solution generalized.
RELATED PATTERNS
Early Bird can get you started on the first cycle.
Test Tube can be used to avoid getting bogged down.
Toy Box can be used to provide a sequence of increasingly difficult exercises.
Lay of the Land and Larger Than Life can be used to provide an overall vision.
Fixer Upper can be used to introduce new material for each cycle.
This pattern can make Early Bird and Lay of the Land work well together.
Dana Anthony has several patterns that inform this one. In particular, Mix New and Old, Seven Parts, Example Lasts One Week, and Visible Checklist can be used to design each cycle around the Spiral.
EXAMPLE INSTANCES
This pattern can be used to teach low level programming structure. For example integer data, assignment statements and simple forms of if and while can be introduced. Problem solving using these topics only can be introduced allowing students to solve simple programming problems. In the second cycle, more can be discussed on each of these topics (else clauses, infinite loops,...).
In analysis and design, simple analysis techniques and tools can be introduced (simple use-case) and then the class can move to simple designs (CRC cards). Students can thus get a feel for the whole process, solving simple problems. The second cycle can introduce simple features of more sophisticated tools as well as somewhat more complex problems.
In object technology courses, simple inheritance can be introduced and used before polymorphism (dynamic binding) is discussed.
CONTRAINDICATIONS
This pattern cannot be used in a small way. A commitment needs to be made to it. If this is not possible or desirable, avoid it entirely.
REFERENCES
Taken from http://csis.pace.edu/~bergin/PedPat1.3.html#spiral
The book Ten Statement Fortran Plus Fortran IV by Michael Kennedy took a spiral approach.
Karel the Robot, by Richard Pattis (Wiley, 1981) was a first cycle in a Spiral approach to Pascal. Its successor, Karel++, by Bergin, Stehlik, Roberts, and Pattis (Wiley, 1997) tries to do the same for an object-oriented language like C++ or Java.
Dana Anthony's patterns were presented in PLoP '95.
See http://st-www.cs.uiuc.edu/~chai/writing/classroom-ed.html
