An intelligent tool to aid students in learning second and subsequent programming languages

Abstract This paper reports on the design rationale and formative evaluation of an intelligent tool to aid intermediate and advanced student programmers, who already have knowledge of another programming language, in acquiring a working knowledge of key parts of the Ada programming language. Research on transfer between programming languages has shown that, while previous programming experience helps students to learn subsequent languages, it also can be a source of negative transfer. In particular, students have little trouble with the syntax of the new language, but they do have difficulty in planning a solution which takes advantage of the features of the new language. Our tool, ADAPT, applies existing artificial intelligence technologies to the pedagogical problem of transfer between programming languages, with emphasis on the problem of developing programming plans which are appropriate to Ada. ADAPT was designed based on the findings of research in the cognition of programming. A prototype of the tool was developed, and a formative evaluation was carried out to evaluate the cognitively-based design decisions guiding ADAPT.

[1]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[2]  Robert S. Rist Schema Creation in Programming , 1989, Cogn. Sci..

[3]  N. Chater,et al.  Proceedings of the fourteenth annual conference of the cognitive science society , 1992 .

[4]  John R. Anderson,et al.  The automated tutoring of introductory computer programming , 1986, CACM.

[5]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[6]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[7]  Jean Scholtz,et al.  The Role of Planning in Learning a New Programming Language , 1992, Int. J. Man Mach. Stud..

[8]  Ben Shneiderman,et al.  Directions in human-computer interaction , 1982 .

[9]  John R. Anderson,et al.  Knowledge Transfer among Programming Languages , 1992, PPIG.

[10]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[11]  James C. Spohrer,et al.  Empirical Studies of Programmers: Fifth Workshop , 1993 .

[12]  Kate Ehrlich,et al.  An empirical investigation of the tacit plan knowledge in programming , 1984 .

[13]  John M. Carroll,et al.  Introduction to This Special issue on Design Rationale , 1991, Hum. Comput. Interact..

[14]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

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

[16]  Simon P. Davies,et al.  Characterizing the program design activity : neither strictly top-down nor globally opportunistic , 1991 .

[17]  Deborah A. Boehm-Davis,et al.  Empirical Studies of Programmers: Sixth Workshop , 1996 .

[18]  Mary Beth Rosson,et al.  Managing evaluation goals for training , 1995, CACM.

[19]  John Self Artificial Intelligence and Human Learning: Intelligent Computer-Aided Instruction , 1988 .

[20]  Willemien Visser Strategies in programming programmable controllers: a field study on a professional programmer , 1987 .

[21]  John I. Kiger,et al.  The Depth/Breadth Trade-Off in the Design of Menu-Driven User Interfaces , 1984, Int. J. Man Mach. Stud..

[22]  Colin Potts,et al.  Design of Everyday Things , 1988 .