Supporting abstraction processes in problem solving through pattern-oriented instruction

Abstraction is a major concept in computer science and serves as a powerful tool in software development. Pattern-oriented instruction (POI) is a pedagogical approach that incorporates patterns in an introductory computer science course in order to structure the learning of algorithmic problem solving. This paper examines abstraction processes in the course of solving an algorithmic problem and highlights three distinct, although interrelated, facets of abstraction: pattern recognition, black-boxing, and structure identification. A study that examined the influence of the POI approach on students' abstraction skills is described; students who learned according to the POI approach were compared with students who learned in a traditional manner with regard to analogical reasoning and problem decomposition and solution, as well as verbal expression. The three facets of abstraction were used to analyze students' abstraction skills and their competency in algorithmic problem solving.

[1]  Peter J. Denning,et al.  Computing as a discipline , 1989, Computer.

[2]  Bruce W. Weide,et al.  Do we really teach abstraction? , 2001, SIGCSE '01.

[3]  Bruria Haberman,et al.  High-School Students' Attitudes Regarding Procedural Abstraction , 2004, Education and Information Technologies.

[4]  K. K. Nambiar,et al.  Foundations of Computer Science , 2001, Lecture Notes in Computer Science.

[5]  Owen Astrachan,et al.  A Computer Science Tapestry , 1996 .

[6]  Alfred V. Aho,et al.  Foundations of Computer Science, C Edition , 1992 .

[7]  K. Holyoak,et al.  Surface and structural similarity in analogical transfer , 1987, Memory & cognition.

[8]  G Salvendy,et al.  Expert-novice knowledge of computer programming at different levels of abstraction. , 1996, Ergonomics.

[9]  Acm Ieee-Cs Joint Curriculum Task Force Computing curricula 2001, computer science : final report, December 2001 , 2002 .

[10]  William A. Marion,et al.  CS1: what should we be teaching? , 1999, ITiCSE-WGR '99.

[11]  A. Sfard On the dual nature of mathematical conceptions: Reflections on processes and objects as different sides of the same coin , 1991 .

[12]  Rudolf Pecinovský,et al.  Let's modify the objects-first approach into design-patterns-first , 2006, ITICSE '06.

[13]  Sandra P. Marshall,et al.  Schemas in Problem Solving , 1995 .

[14]  Viera K. Proulx,et al.  Programming patterns and design patterns in the introductory computer science course , 2000, SIGCSE '00.

[15]  Bruria Haberman,et al.  Are Black Boxes Transparent?— High School Students' Strategies of Using Abstract Data Types , 2002 .

[16]  Jeff Kramer,et al.  Is abstraction the key to computing? , 2007, CACM.

[17]  Orna Muller Pattern oriented instruction and the enhancement of analogical reasoning , 2005, ICER '05.

[18]  Philip Machanick The abstraction-first approach to data abstraction and algorithms , 1998, Comput. Educ..

[19]  Landon P. Cox,et al.  Design patterns: an essential component of CS curricula , 1998, SIGCSE '98.

[20]  Marcia C. Linn,et al.  Patterns and pedagogy , 1999, SIGCSE '99.

[21]  Miriam Bassok,et al.  Analogical Transfer in Problem Solving , 2003 .

[22]  Bruria Haberman,et al.  (An almost) pedagogical pattern for pattern-based problem-solving instruction , 2004, ITiCSE '04.

[23]  John Sweller,et al.  Cognitive Load During Problem Solving: Effects on Learning , 1988, Cogn. Sci..

[24]  Merriam-Webster Webster's New World Dictionary of the American Language , 1976 .

[25]  David Reed,et al.  Incorporating problem-solving patterns in CS1 , 1998, SIGCSE '98.

[26]  J. Philip East,et al.  Pattern Based Programming Instruction , 1996 .

[27]  Dale Skrien,et al.  Learning Appreciation for Design Patterns by Doing it the Hard Way First , 2003, Comput. Sci. Educ..

[28]  Dedre Gentner,et al.  Why we’re so smart , 2003 .

[29]  Bruria Haberman,et al.  Pattern-oriented instruction and its influence on problem decomposition and solution construction , 2007, ITiCSE.

[30]  Eugene Wallingford Toward a first course based on object-oriented patterns , 1996, SIGCSE '96.

[31]  Nell Dale,et al.  Abstract data types: Specifications, implementations, and applications , 1996 .

[32]  Paul R. Calder,et al.  Patterns in Learning to Program - An Experiment? , 2004, ACE.

[33]  Richard E. Mayer,et al.  Schema training in analogical reasoning. , 1993 .

[34]  Anthony V. Robins,et al.  Transfer in Cognition , 1996, Connect. Sci..

[35]  M. D. Evans,et al.  A new emphasis & pedagogy for a CS1 course , 1996, SGCS.

[36]  Elliot Soloway,et al.  Learning to program = learning to construct mechanisms and explanations , 1986, CACM.