Generating and evaluating object-oriented designs in an intelligent tutoring system

Learning object-oriented design and programming is a challenging task for many beginning students. In recent years, this has motivated the development of new curricula and tools to support their pedagogies. However, student achievement in first-semester courses, as well as enrollment and retention rates (especially for women and minorities), remains a concern. New tools and techniques are needed to engage students and enable more of them to be successful in a CSI course. This need inspired two avenues of research for this dissertation: a new "design first" curriculum that uses elements of Unified Modeling Language (UML) to teach students problem-solving and design skills before procedural code, and an intelligent tutoring system (ITS) that observes students as they create UML class diagrams and offers customized assistance when they need it. An ITS must be able to solve the problems that are presented to the student, or at least evaluate the student's work. Several models exist for accomplishing this task, but all are limited in the number of different solutions they accept as correct. This is not a problem in many domains, but it is in object-oriented design. For any given problem, there are often many different solutions that are acceptable. While scaffolding is desirable to guide novices through a new procedure, students who follow a different but fruitful path should not be deterred. The goal of this research is to build an expert module for an ITS for object-oriented design that can generate its own solutions, and also recognize and accept a variety of valid solutions. A working expert module of an ITS for object-oriented design was built. A tool to assist teachers in the creation of student exercises and valid solution models was also produced.

[1]  Beatrice Santorini,et al.  Part-of-Speech Tagging Guidelines for the Penn Treebank Project (3rd Revision) , 1990 .

[2]  Joseph Bergin The object-oriented data structures course , 1993, OOPS Messenger.

[3]  Mark Guzdial,et al.  A multi-national, multi-institutional study of assessment of programming skills of first-year CS students , 2001, ITiCSE-WGR '01.

[4]  Kurt VanLehn,et al.  Andes: A Coached Problem Solving Environment for Physics , 2000, Intelligent Tutoring Systems.

[5]  David J. Barnes,et al.  Objects First with Java , 2006 .

[6]  Amruth N. Kumar Results from the evaluation of the effectiveness of an online tutor on expression evaluation , 2005, SIGCSE '05.

[7]  Richard J. Reid The object oriented paradigm in CS 1 , 1993, SIGCSE '93.

[8]  David Bellin A seminar course in object oriented programming , 1992, SIGCSE '92.

[9]  Beatrice Santorini Part-of-speech tagging guidelines for the penn treebank project , 1990 .

[10]  Tanja Mitrovic,et al.  Constraint-based tutors: a success story , 2001, AIED.

[11]  Richard J. Reid Object-oriented programming in C++ , 1991, SGCS.

[12]  Antonija Mitrovic,et al.  Intelligent Tutors for All: The Constraint-Based Approach , 2007, IEEE Intelligent Systems.

[13]  Kim B. Bruce,et al.  A library to support a graphics-based object-first approach to CS 1 , 2001, SIGCSE '01.

[14]  Glenn D. Blank,et al.  A design-first curriculum for teaching Java in a CS1 course , 2005, SGCS.

[15]  Vincenzo Gervasi,et al.  Processing natural language requirements , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[16]  David L. Parker Structured design for CS1 , 1995, SIGCSE '95.

[17]  Michael Kölling,et al.  Blue—a language for teaching object-oriented programming , 1996, SIGCSE '96.

[18]  Linda M. Northrop,et al.  Finding an educational perspective for object-oriented development , 1992, OOPSLA '92.

[19]  Jeremy D. Frens,et al.  Object centered design for Java: teaching OOD in CS-1 , 2003, SIGCSE.

[20]  Kenneth R. Koedinger,et al.  Cognitive tutors as modeling tools and instructional models , 2001 .

[21]  Michael Kölling,et al.  Requirements for a first year object-oriented teaching language , 1995, SIGCSE.

[22]  Ivar Jacobson,et al.  Unified Modeling Language , 2020, Definitions.

[23]  Amruth N. Kumar,et al.  Model-Based Reasoning for Domain Modeling in a Web-Based Intelligent Tutoring System to Help Students Learn to Debug C++ Programs , 2002, Intelligent Tutoring Systems.

[24]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[25]  Glenn D. Blank,et al.  A pedagogical framework for integrating individual learning style into an intelligent tutoring system , 2008 .

[26]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001 .

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

[28]  Richard H. Austing,et al.  Curriculum '78: recommendations for the undergraduate program in computer science— a report of the ACM curriculum committee on computer science , 1979, CACM.

[29]  Hugo Liu,et al.  ConceptNet — A Practical Commonsense Reasoning Tool-Kit , 2004 .

[30]  Robert Cartwright,et al.  Taming a professional IDE for the classroom , 2004, SIGCSE '04.

[31]  Amruth N. Kumar A tutor for using dynamic memory in C++ , 2002, 32nd Annual Frontiers in Education.

[32]  Beatrice Santorini,et al.  Building a Large Annotated Corpus of English: The Penn Treebank , 1993, CL.

[33]  Richard G. Epstein,et al.  Introducing object-orientedness into a breadth-first introductory curriculum , 1992, OOPSLA '92.

[34]  Vincenzo Gervasi,et al.  An environment for cooperative construction of natural-language requirement bases , 1997, Proceedings 8th Conference on Software Engineering Environments.

[35]  Robert Biddle,et al.  Teaching C++: experience at Victoria University of Wellington , 1994, Proceedings Software Education Conference (SRIG-ET'94).

[36]  Antonija Mitrovic,et al.  From Modelling Domain Knowledge to Metacognitive Skills: Extending a Constraint-Based Tutoring System to Support Collaboration , 2007, User Modeling.

[37]  Rick Decker,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994, SIGCSE '94.

[38]  Richard Rasala,et al.  Java power tools: model software for teaching object-oriented design , 2001, SIGCSE '01.

[39]  Gerhard Weber,et al.  CBR for Tutoring and Help Systems , 1998, Case-Based Reasoning Technology.

[40]  Valerie J. Shute,et al.  Intelligent Tutoring Systems: Past, Present, and Future. , 1994 .

[41]  Antonija Mitrovic,et al.  COLLECT-UML: Supporting Individual and Collaborative Learning of UML Class Diagrams in a Constraint-Based Intelligent Tutoring System , 2005, KES.

[42]  Wilf R. LaLonde,et al.  Introducing object-oriented programming into the computer science curriculum , 1987, SIGCSE '87.

[43]  Elliot Soloway,et al.  Beverly Park Woolf, Eric Rubin, Paul Barth: Meno-II: An Intelligent Tutoring System for Novice Programmers , 1981, IJCAI.

[44]  John R. Anderson,et al.  Essential Lisp , 1986 .

[45]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[46]  Owen Rambow,et al.  Conceptual modeling through linguistic analysis using LIDA , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[47]  Stellan Ohlsson,et al.  Constraint-Based Student Modeling , 1994 .

[48]  Robert Cartwright,et al.  DrJava: a lightweight pedagogic environment for Java , 2002, SIGCSE '02.

[49]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[50]  Ali Shokoufandeh,et al.  Software design and implementation in the introductory CS course: JavaScript and virtual pests , 2000 .

[51]  Kim B. Bruce Controversy on how to teach CS 1: a discussion on the SIGCSE-members mailing list , 2004, SGCS.

[52]  Kurt VanLehn,et al.  The Andes Physics Tutoring System: Lessons Learned , 2005, Int. J. Artif. Intell. Educ..

[53]  Martin L. Barrett Emphasizing design in CS1 , 1996, SIGCSE '96.

[54]  Hugo Liu,et al.  Commonsense Reasoning in and Over Natural Language , 2004, KES.

[55]  Christiane Fellbaum,et al.  Book Reviews: WordNet: An Electronic Lexical Database , 1999, CL.

[56]  Dorothy Mazaitis The object-oriented paradigm in the undergraduate curriculum: a survey of implementations and issues , 1993, SGCS.

[57]  Eric Brill A Report of Recent Progress in Transformation-Based Error-Driven Learning , 1994, HLT.

[58]  Carl Alphonce,et al.  Object orientation in CS1-CS2 by design , 2002, ITiCSE '02.

[59]  Paul White,et al.  Teaching Smalltalk as a first programming language , 1991, SIGCSE '91.

[60]  Fang Wei,et al.  A student model for an intelligent tutoring system helping novices learn object-oriented design , 2007 .

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

[62]  Amruth N. Kumar,et al.  A Tutor for Learning Encapsulation in C++ Classes , 2003 .

[63]  Laurie A. Williams,et al.  In Support of Pair Programming in the Introductory Computer Science Course , 2002, Comput. Sci. Educ..

[64]  John R. Anderson,et al.  Rules of the Mind , 1993 .

[65]  Carol B. Collins,et al.  Implementation of object-orientation using UML in entry level software development courses , 2004, CITC5 '04.

[66]  Stellan Ohlsson,et al.  Learning from Performance Errors. , 1996 .

[67]  Mark Temte,et al.  Let's begin introducing the object-oriented paradigm , 1991, SIGCSE '91.

[68]  William M. Pottenger,et al.  Multimedia for Computer Science: from CS0/CS1 to Grades 7-12 , 2003 .

[69]  Fang Wei,et al.  From objects-first to design-first with multimedia and intelligent tutoring , 2005, ITiCSE '05.

[70]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[71]  Elliot Soloway,et al.  MENO-II: An AI-Based Programming Tutor. , 1983 .

[72]  Fang Wei,et al.  A Web-based ITS for OO Design , 2005 .

[73]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[74]  Adrienne Decker A tale of two paradigms , 2003 .

[75]  Henry Lieberman,et al.  Metafor: visualizing stories as code , 2005, IUI.

[76]  Frantisek Franek,et al.  A Prototype for an Intelligent Tutoring System for Students Learning to Program in Java , 2004 .

[77]  Michael Kölling,et al.  An object-oriented program development environment for the first programming course , 1996, SIGCSE '96.

[78]  Antonija Mitrovic Constraint–based Tutors , 2008 .

[79]  Benno Geißelmann,et al.  Program Design by Informal English Descriptions , 2001 .

[80]  Stuart Reges Conservatively radical Java in CS1 , 2000, SIGCSE '00.

[81]  Duane Buck,et al.  Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development , 2000, SIGCSE '00.

[82]  Peter Brusilovsky,et al.  ELM-ART: An Adaptive Versatile System for Web-based Instruction , 2001 .