Component Categories: A Systematic Approach to Teaching Component-Level Programming

 

Peter M. Maurer
Dept. of Computer Science Baylor University

Peter_Maurer@Baylor.edu

Abstract

Component-Level programming is a fast and efficient way to develop large programs. It encourages a high-degree of code-reuse, and provides standardized interfaces between independently compiled portions of an application. Component use is quite simple and many students can learn how to use components on their own. Component development is another story. A component can, itself, be a large complex program that requires a careful design methodology. It is easy to use the approach of “throwing everything into one component.” This tends to negate the advantage of using components in the first place, and often limits the reusability of the components once they have been created. To deal with this problem, we use an approach based on “component categories.” Components are categorized by the type of interface they possess, and on the functions they provide. The categories are broad and encompass many different types of functionality. We have found that this categorization helps the student subdivide a large application into a number of reusable components, and also provides helpful guidelines for constructing the components themselves. This approach meshes well with more traditional methodologies, which are used to develop the internals of a component. Our approach has been used successfully at both the undergraduate and undergraduate level. Our approach can be used with virtually any component technology, although we have concentrated on .NET, ActiveX, and JavaBeans in our course offerings.