Multiple Levels of Abstraction in Algorithmic Problem Solving

The notion of abstraction repeatedly appears, in various ways, at all levels of computer science. It involves the aspects of leaving out details and comprehending concepts and mechanisms. It also involves the aspect of recognizing relationships between task elements. The latter aspect was not yet studied with respect to abstraction levels and algorithm design. We study it here. We analyze senior students' algorithmic solutions according to accepted interpretations of multiple abstraction levels, and offer guidelines for enhancing abstraction in students' algorithmics.

[1]  Shimon Schocken Virtual machines: abstraction and implementation , 2009, ITiCSE '09.

[2]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

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

[4]  Jacob Perrenet,et al.  Levels of abstraction in students' understanding of the concept of algorithm: the qualitative perspective , 2006, ITICSE '06.

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

[6]  Judith Gal-Ezer,et al.  Reductive thinking in computer science , 2006, Comput. Sci. Educ..

[7]  M. Hegarty,et al.  Comprehension of arithmetic word problems: A comparison of successful and unsuccessful problem solvers. , 1995 .

[8]  References , 1971 .

[9]  Betsy van Dijk,et al.  Teaching abstraction in introductory courses , 2010, ITiCSE '10.

[10]  Noa Ragonis A pedagogical approach to discussing fundamental object-oriented programming principles using the ADT SET , 2010, INROADS.

[11]  Orit Hazzan Reducing abstraction level when learning computability theory concepts , 2002, ITiCSE '02.

[12]  Donald A. Norman,et al.  Things that make us smart , 1979 .

[13]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[14]  Steven Skiena,et al.  On Proofs Without Words , 1999 .

[15]  PerrenetJacob,et al.  Levels of abstraction in students' understanding of the concept of algorithm , 2006 .

[16]  Richard M. Salter,et al.  Abstraction and extensibility in digital logic simulation software , 2009, SIGCSE '09.

[17]  Mordechai Ben-Ari,et al.  A long-term investigation of the comprehension of OOP concepts by novices , 2005, Comput. Sci. Educ..

[18]  Peter J. Denning A debate on teaching computing science , 1989, CACM.