The Reference List Formatter: An Object-Oriented Development Project - Parker, Kevin R (Interdisciplinary journal of information, knowledge, and management, 2010)
Course projects that are manageable yet still sufficiently comprehensive are often difficult to find or develop. This can be especially true for a course in object-oriented development, since it involves a wide range of critical topics such as abstraction, encapsulation, inheritance, and polymorphism, as well as aggregation and composition, arrays of objects, abstract classes and interfaces, and object persistence. It is difficult to find a project that is broad enough to cover all the topics but at the same time also narrow enough to cover them thoroughly in a one semester course. One alternative is the use of individual "toy" problems for each concept, but that approach has been criticized as simplifying problems to the point where they are no longer realistic and lack useful substance. Another alternative is to use real-world projects in a class, but that approach can introduce unmanageable complexity or ambiguity into the classroom. This paper communicates the details of an object-oriented course project that has been developed and refined to provide a project-based learning component to reinforce course content. The project's deliverables have been designed to cover every concept that is included in an object-oriented development course and provide students with experience with each. Its refinement has taken place in multiple Java-based and VB.Net-based object-oriented development courses. Keywords: object-oriented development, semester project, experiential learning, programming education, project-based learning.