Content area
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.