Learning Programming by Solving Problems

We have been developing tutors to help students learn programming concepts by solving problems. In this paper, we will discuss the use of problem-solving in Computer Science, the effectiveness of using problem-solving tutors to learn programming concepts, and the pedagogical relationship between solving problems and learning to write programs. We will also present the design and results from the evaluation of one of our tutors.

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

[2]  Thomas L. Naps,et al.  Tools for visual exploration of scope and parameter passing in a programming languages course , 1996, SIGCSE '96.

[3]  Amruth N. Kumar,et al.  PROBLEM BASED LEARNING OF "STATIC REFERENCING ENVIRONMENT IN PASCAL" , 2002 .

[4]  Erkki Sutinen,et al.  Animation of user algorithms on the Web , 1997, Proceedings. 1997 IEEE Symposium on Visual Languages (Cat. No.97TB100180).

[5]  Benjamin S. Bloom,et al.  Taxonomy of Educational Objectives: The Classification of Educational Goals. , 1957 .

[6]  John R. Anderson,et al.  Cognitive Tutors: Lessons Learned , 1995 .

[7]  Amruth N. Kumar Learning the interaction between pointers and scope in C , 2001 .

[8]  James R. Eagan,et al.  JHAVÉ—an environment to actively engage students in Web-based algorithm visualizations , 2000, SIGCSE '00.

[9]  Amruth N. Kumar,et al.  A tutoring system for parameter passing in programming languages , 2002, ITiCSE '02.

[10]  W. Messner,et al.  Development and integration of Web-based software tutorials for an undergraduate curriculum: control tutorials for MATLAB , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[11]  L M Reder,et al.  The role of elaborations in learning a skill from an instructional text , 1985, Memory & cognition.

[12]  R. Felder Reaching the Second Tier--Learning and Teaching Styles in College Science Education. , 1993 .

[13]  Susan Wiedenbeck,et al.  What do novices learn during program comprehension? , 1991, Int. J. Hum. Comput. Interact..

[14]  Michael T. Goodrich,et al.  SAIL: a system for generating, archiving, and retrieving specialized assignments using LATEX , 2000, SIGCSE '00.

[15]  Amruth N. Kumar,et al.  Facilitating problem-solving on nested selection statements using C/C++ , 2000, 30th Annual Frontiers in Education Conference. Building on A Century of Progress in Engineering Education. Conference Proceedings (IEEE Cat. No.00CH37135).

[16]  Amruth N. Kumar,et al.  A problem generator to learn expression: evaluation in CSI, and its effectiveness , 2001 .

[17]  Y. Tsai,et al.  CAPA—An integrated computer‐assisted personalized assignment system , 1993 .

[18]  S. Messick Assessment in Context: Appraising Student Performance in Relation to Instructional Quality , 1984 .

[19]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[20]  L. Vygotsky Mind in Society: The Development of Higher Psychological Processes: Harvard University Press , 1978 .

[21]  W. Kintsch,et al.  Strategies of discourse comprehension , 1983 .

[22]  Amruth Kumar,et al.  Dynamically generating problems on static scope , 2000, ITiCSE '00.

[23]  D. Arnow,et al.  WebToTeach: an interactive focused programming exercise system , 1999, FIE'99 Frontiers in Education. 29th Annual Frontiers in Education Conference. Designing the Future of Science and Engineering Education. Conference Proceedings (IEEE Cat. No.99CH37011.

[24]  Doug Baldwin Three years' experience with gateway labs , 1996, ITiCSE '96.

[25]  Geoffrey M. Stephenson,et al.  Memory for a complex social discourse: The analysis and prediction of individual and group recall , 1986 .

[26]  Mei-Ling L. Liu,et al.  On the retention of female computer science students , 1996, SIGCSE '96.

[27]  Amruth N. Kumar Learning the interaction between pointers and scope in C++ , 2001, ITiCSE.

[28]  J. O. Campbell,et al.  Evaluating costs and benefits of distributed learning , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[29]  Jeffrey J. McConnell,et al.  Active learning and its use in computer science , 1996, ITiCSE.

[30]  Susan H. Rodger,et al.  JFLAP (poster): an aid to studying theorems in automata theory , 1998, ITiCSE '98.

[31]  W. Kintsch,et al.  Memory and cognition , 1977 .

[32]  Lev Vygotsky Mind in society , 1978 .

[33]  D. J. Brown Writing Web-based questions with Mallard , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[34]  C. Barus AN AMERICAN JOURNAL OF PHYSICS. , 1902, Science.

[35]  Susan Wiedenbeck,et al.  A comparison of the comprehension of object-oriented and procedural programs by novice programmers , 1999, Interact. Comput..

[36]  Michael T. Goodrich,et al.  PILOT: an interactive tool for learning and grading , 2000, SIGCSE '00.

[37]  Edwin Kashy,et al.  Using networked tools to enhance student success rates in large classes , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[38]  B. Bloom The 2 Sigma Problem: The Search for Methods of Group Instruction as Effective as One-to-One Tutoring , 1984 .

[39]  D. S. Barker CHARLIE: a computer-managed homework, assignment and response, learning and instruction environment , 1997, Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change.

[40]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[41]  Don Holdaway,et al.  The Foundations of Literacy , 1984 .

[42]  Glenn S. Kohne An Autograding (Student) Problem Management System for the Compeuwtir Ilittur8 , 1996 .

[43]  F. Schmalhofer,et al.  Three components of understanding a programmer's manual: Verbatim, propositional and situational representations , 1986 .