Programming pedagogy—a psychological overview

Can we turn novices into experts in a four year undergraduate program? If so, how? If not, what is the best we can do? While every teacher has his/her own opinion on these questions, psychological studies over the last twenty years have started to furnish scientific answers. Unfortunately, little of these results have been incorporated into curricula or textbooks. This report is a brief overview of some of the more important results concerning computer programming and how they can affect course design.

[1]  Marcia C. Linn,et al.  The case for case studies of programming problems , 1992, CACM.

[2]  Mark Guzdial,et al.  Centralized mindset: a student problem with object-oriented programming , 1995, SIGCSE.

[3]  K. A. Ericsson,et al.  Toward a general theory of expertise : prospects and limits , 1991 .

[4]  David J. Gilmore,et al.  Methodological Issues in the Study of Programming , 1990 .

[5]  Simon P. Davies,et al.  The Nature and Development of Programming Plans , 1990, Int. J. Man Mach. Stud..

[6]  Marian Petre,et al.  Issues Governing the Suitability of Programming Languages for Programming Tasks , 1988, BCS HCI.

[7]  Paul J. Feltovich,et al.  Categorization and Representation of Physics Problems by Experts and Novices , 1981, Cogn. Sci..

[8]  John R. Anderson Cognitive Psychology and Its Implications , 1980 .

[9]  K. Holyoak,et al.  Schema induction and analogical transfer , 1983, Cognitive Psychology.

[10]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[11]  Mark L. Miller,et al.  Structured Planning and Debugging , 1977, IJCAI.

[12]  Allan G. Bateson,et al.  Cognitive Processing Differences Between Novice and Expert Computer Programmers , 1987, Int. J. Man Mach. Stud..

[13]  Jean-Michel Hoc,et al.  Language Semantics, Mental Models and Analogy , 1990 .

[14]  B. A. Sheil,et al.  The Psychological Study of Programming , 1981, CSUR.

[15]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[16]  David J. Gilmore,et al.  Expert Programming Knowledge: A Strategic Approach , 1990 .

[17]  D. Thomas King,et al.  Mind over Machine. , 1978 .

[18]  Margaret M. Reek,et al.  A top-down approach to teaching programming , 1995, SIGCSE.

[19]  Beryl Hesketh,et al.  Opinion — Training for Transferable Skills: The Role of Examples and Schema , 1989 .

[20]  Elliot Soloway,et al.  Empirical Studies of Programmers: Second Workshop , 1991 .

[21]  John D. McGregor,et al.  A goal-oriented approach to laboratory development and implementation , 1995, SIGCSE '95.

[22]  CARL MARTIN ALLWOOD,et al.  Novices on the Computer: A Review of the Literature , 1986, Int. J. Man Mach. Stud..

[23]  Susan Weidenbeck,et al.  Processes in computer program comprehension , 1986 .

[24]  Robert Balzer,et al.  The Use of a Domain Model in Understanding Informal Process Descriptions , 1977, IJCAI.

[25]  Mark R. Headington,et al.  Data Abstraction and Structures Using C , 1994 .

[26]  Kathie A. Yerion,et al.  Guidelines for collaborative learning in computer science , 1995, SGCS.

[27]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[28]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[29]  John R. Anderson Cognitive psychology and its implications, 2nd ed. , 1985 .

[30]  Willemien Visser,et al.  Expert Software Design Strategies , 1990 .

[31]  John R. Anderson,et al.  Learning Flow of Control: Recursive and Iterative Procedures , 1986, Hum. Comput. Interact..

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

[33]  David Perkins,et al.  Fragile knowledge and neglected strategies in novice programmers , 1985 .

[34]  Timothy A. Budd,et al.  Classic data structures in C++ , 1994 .