
Session F1C Teaching Abstraction to Novices: Pattern-Based and ADT-Based Problem-Solving Processes Bruria Haberman and Orna Muller [email protected], [email protected] Abstract - Abstraction is taught to computer-science and, furthermore, in identifying which tasks should be students as part of a comprehensive curriculum. The performed when dealing with different abstraction layers students encounter the concept of abstraction in various during various stages of solving a problem. Adequate contexts while learning the different modules, each of learning of abstraction by novices may enhance their which emphasizes some specific aspects of the concept. In problem-solving abilities. For example, reflection on the this paper we present two instructional approaches, both process, estimation of the product's quality, and reusability related to utilizing abstraction in problem-solving in future tasks, need to be part of the routine of learning, processes: (1) pattern-oriented instruction (POI), and (2) when utilizing abstraction tools [9]. abstract data type (ADT)-oriented instruction. We In this paper we present and compare two instructional present these methods with respect to their employment approaches, both related to utilizing abstraction in problem- in teaching problem solving to novices, and elaborate on solving processes: (1) pattern-oriented instruction (POI), and abstraction processes. (2) abstract data type (ADT)-oriented instruction. POI is a pedagogical approach by which patterns are Index Terms – Abstraction, algorithmic patterns, abstract incorporated in a CS1 course in order to support the learning data types, problem solving. of algorithmic problem solving. This approach highlights distinct, though interrelated, facets of abstraction processes INTRODUCTION in the course of algorithmic problem solving: Pattern Abstraction is a major recurring concept in computer science Recognition, Black-Boxing, and Structure Identification, all and is considered an important tool in software development. of which play important roles in analyzing and solving It is the process of generalizing by reducing the information algorithmic problems when using algorithmic patterns [14]. content of a concept, typically in order to retain only Abstract data types (ADTs) are considered as useful tools information that is relevant for a particular purpose for CS problem solving and knowledge representation [5]. Abstraction is associated with the following features: (a) The ADT-oriented instructional approach is based on generalization of specific examples; (b) identification, gradually introducing ADTs as flexible problem-solving extraction, and isolation of essential components, and (c) tools using evolving programming boxes [8]. This approach ignoring or holding back irrelevant details. In the context of illuminates three distinct, though interrelated, phases of the problem solving, we refer to different abstraction levels that ADT concept: Specification, Implementation, and Usage. It are associated with various stages of problem-solving is employed to teach problem-solving strategies and processes. Gaining expertise in problem solving means knowledge representation methods utilizing an abstraction- being able to identify which abstraction level is suitable for a based problem-solving conceptual model that entails particular stage, with regard to problem analysis, solution transitions between abstraction levels. design, and implementation. Studies show that experts and Section 2 presents each approach with respect to its novices differ in their abstracting, and generalizing abilities instructional goals, learning contexts, and its associated [7,11,15]. Educators recommend introducing the concept of conceptual problem-solving model. Section 3 presents, at a abstraction to CS students, starting in the early stages of glance, empirical findings of each approach in teaching their studies [1,4,5]. Actually, students encounter the problem-solving to novices, specifically relating to concept of abstraction in various contexts while learning abstraction processes. In section 4 some pedagogical different study modules and related problem-solving considerations are raised concerning the implication of techniques. Nevertheless, novices experience difficulties in teaching the same students according to both approaches in a utilizing abstraction processes and tools. Hence, it is way that will benefit enhancing students' problem-solving important that instructional design be oriented towards abilities. constructing an integrative, coherent perception of TEACHING ABSTRACTION - TWO APPROACHES abstraction. Students need to develop proficiency in choosing the In this section we present two approaches for teaching most suitable abstraction tool for solving a given problem abstraction to novices. Each approach is presented with 978-1-4244-1970-8/08/$25.00 ©2008 IEEE October 22 – 25, 2008, Saratoga Springs, NY 38th ASEE/IEEE Frontiers in Education Conference F1C-7 Session F1C respect to its goals, instructional model, learning contexts, Black boxes may be unfolded when composing a final and the associated conceptual problem-solving model. detailed solution to a given problem. Problems are usually constructed of more than one sub- I. Pattern Oriented Instruction problem, each of which is a problem in itself that includes a Pattern oriented instruction (POI) is a pedagogical approach task/goal and data. Structure identification is the process of that incorporates patterns in an introductory CS course. Its decomposing a problem into sub-tasks and identifying the main goal is to develop algorithmic problem solving skills. relations between them. It requires an abstractive view of a Algorithmic patterns refer to classification of recurring problem as a system composed of several interrelated algorithmic problems according to their goals (i.e., "Extreme components. It requires identifying the main task(s) and Value Computation", "Checking the existence of an item building a hierarchy between the various tasks; the hierarchy that satisfies a condition"). Patterns are examples of "expert establishes a timeline of a solution plan, and the flow of data solutions", and they serve as building blocks for developing between the sub-tasks. algorithms to solve new problems. According to the POI The guidelines for utilizing the POI approach stress approach, in teaching students how to program, the abstraction processes, and not merely "abstraction products" algorithmic problems introduced are organized around (i.e., following recipes for solutions): the search for patterns patterns and do not relate only to programming features (as develops pattern recognition skills; analyzing the way frequently occurs in an introductory course). subtasks are related in a solution develops the ability to Guidelines for incorporating a POI approach are as abstract and visualize the structure of a problem as a whole follows: A pattern is abstracted from analogous examples, and facilitates a proper representation of it; acquiring a and defining a pattern is a way of stating explicitly their repertoire of problem prototypes triggers an idea for a common features. The pattern's components and the solution. An inclusive purpose of learning according to the underlying ideas that are captured in a pattern are discussed. POI approach is to develop abstraction skills and the ability Links are drawn between different aspects of a pattern and to perform abstraction processes as a mental habit. its use since one needs to know when and how to use a II. ADT-Oriented Instruction pattern correctly. Typical applications, special cases of a pattern in different contexts, as well as its common misuses Use of abstract data types (ADTs) in problem-solving and are introduced. Problems are carefully sequenced so that knowledge representation is a dominant component of a CS their level of complexity will be gradually increased, in curriculum. An instructional approach to gradually introduce order to enhance assimilation and formation of cognitive ADTs as flexible problem-solving tools was developed [6,8]. schemas [12]. Compound problems are analyzed with The approach was employed to teach problem-solving respect to different ways several patterns may be combined strategies and knowledge representation methods in the in a solution. Students exercise the adjustment of patterns declarative logic programming paradigm (LP); however, it according to various constraints, and the evaluation of can be easily adapted to other programming paradigms. The different solutions to a problem with regard to efficiency and approach is based on the following conceptual model: elegancy considerations. The ADT-based problem-solving conceptual model: The POI approach attempts to encourage the use of abstraction during instruction and learning. We refer to three Our conceptual model of utilizing ADTs in problem-solving main processes: Pattern Recognition, Black-Boxing, and processes is compatible with the formal definition of the Structure Identification. The term Pattern (schema) ADT concept and includes the following stages [6,8]: Recognition applies to the process of revealing the essence • Conceptualization: Comprehending a given problem; of a problem while ignoring the specific context from which identifying the main ideas, concepts, entities, and the it emerges. Pattern recognition relates to the realization of relations among them; defining the main goals to be similarities between analogical problems. In the course
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-