Pattern-Oriented Instruction and its Influence on Problem Decomposition and Solution Construction
Novices often experience difficulties in analysis of algorithmic problems and solution construction: when facing a novel problem, they often do not know "where to start", do not recognize similarities between problems, and do not identify problem's components and the relationships between them. These difficulties may be the consequence of poor organization of algorithmic knowledge.
Schemas are cognitive constructs (chunks) by which knowledge is thought to be organized in memory. Experts' schemas include a large repertoire of solutions to a variety of problems, gained through past experiences in solving problems in that area. The characteristics of schemas, along with their relationship to the development of expertise, may govern design of instruction. Creation of schemas may be enhanced by choosing and grouping examples in such a way that similarities are emphasized and patterns are abstracted from examples.
Algorithmic patterns represent good examples of elegant and efficient solutions to recurring problems. They refer to the classification of algorithmic problems according to their goals and not to a programming mechanism.
Pattern-oriented instruction (POI) is a pedagogical approach based on incorporating patterns into instruction design. It is well-grounded in cognitive theories concerning knowledge construction and organization in terms of cognitive schemas, as well as the acquisition of expertise in problem solving. Its main guidelines include abstraction of patterns from analogous examples, a well-planned selection and organization of problems presented during instruction, and problem-solving activities aimed at enriching students' repertoire of solutions and enhancing their analogical reasoning.
The POI approach was employed to incorporate algorithmic patterns into a computer science introductory (CS1) course studied by high-school students who majored in computer science. A broad research study has been conducted in order to examine the influence of POI on the development of various problem-solving skills*. This paper reports on one specific study referring to students' ability to identify the structure of a given problem and to construct a correct solution. Two study groups were compared: an experimental group that studied according to the POI approach and a control group that studied in a traditional manner with no mention of patterns. During the course, students in both groups were exposed to the same set of algorithmic problems, however these were arranged differently according to the corresponding instructional approach.
Several algorithmic problems were introduced to the students in a midterm exam. For each problem the students were asked to develop a solution and to describe the essence of the idea behind it. One specific problem required referring to several levels of data abstraction and procedural abstraction. Hence, students' solutions to the problem may shed light on their competence as well as difficulties with problem decomposition and solution construction.
Analysis of the students' solutions to the problem is broadly discussed in the paper. Solutions were analyzed according to the components of the problem: the subtasks of which the problem is comprised, each task's type and the type of data on which it operates, and the relationships between tasks. Several categories of solutions were identified, and the frequency of their appearances in the two groups was compared. Several categories represent different types of "partial-identification" solutions, meaning that they include some correct components and ignore others. The paper presents various types of solutions using a unique graphical representation.
The main findings of the research were: more of the POI students fully identified the main subtasks in a problem and constructed a correct solution; also, more of the POI students suggested a solution, which is evidence of higher self-confidence and an enriched toolbox of familiar solutions to a variety of problems.
We conclude that learning algorithmic patterns, using patterns as directives for problem-solving activity during a CS1 course, can facilitate the identification of a problem's structure as well as the construction of algorithmic solutions.
Dr. Muller was supported by Sakat-Rashi Foundation for the promotion of Science Education during her studies at Tel Aviv University.
Author 1: Orna Muller; ornamu@post.tau.ac.il Author 2: Bruria Haberman; bruria.haberman@weizmann.ac.il Author 3: David Ginat; ginat@post.tau.ac.il
Article Link: http://doi.acm.org/10.1145/1269900.1268830