Teaching Object-Oriented Programming
Across the Internet

Timothy A. Budd
Oregon State University

This document describes a project designed to investigate the possibility of delivering university-level course material in an asynchronous fashion across large distances using the medium of the internet.

The context in which this investigation will take place involves the creation of course material for an existing senior undergraduate/first year graduate level course on object oriented programming. This course has been offered for several years at Oregon State University. The instructor for this course, as well as the principle investigator for this project, is the author of the textbook used in this course, which has also been used in courses in several other university campuses.

This document is structured in four sections. The first section provides a general introduction to the topic of the course, object-oriented programming. The second section gives general remarks on the concept of asynchronous and distance instruction techniques. The third section describes some of the specific short and long term objectives of the project. The last section provides links to further information on professor Budd, on object-oriented programming, and on remote and asynchronous learning.


Object-Oriented Programming

Object-Oriented programming has been described as the single most important innovation in software engineering in the past 20 years. Growing out of work performed in Scandinavia in the 1960's, the techniques of OOP were popularized by researchers at Xerox PARC in the 1970's, and became widely recognized and applied by the software industry as a whole in the late 1980's and 1990's.*

While no thumb-nail sketch can hope to capture the complete subtlties of the concept, a short synopsis of object-Oriented Programming would describe it as a technique which treats complex software systems as a collection of interacting software agents, rather than as a single monolithic algorithm*. Of course, the details are more complex. As an active researcher in this field, for example, I have authored several books on various aspects of object-oriented techniques.

I have taught courses on Object-Oriented programming at both the upper division undergraduate level and at the graduate level at OSU ever since my acceptance of my position at OSU in 1986. In addition, I have helped with the integration of OOP concepts into other courses, most recently into the freshman sequence. In 1989 I authored a general textbook on the topic of OOP. This was the first textbook to treat Object-oriented programming in a fashion divorced from any particular programming language. This book as been well reviewed and received, and has subsequently been translated into French, Spanish, Japanese, and Chinese.

The demand for instruction in Object-Oriented topics continues to be high. Even at a time when class sizes in computer science courses at Oregon State University continues to decline, (for a variety of reasons), the OOP course has consistently been a large and popular course. It is not uncommon for over half the students in this course to come from outside the department, most often from the business school, from other engineering department, or from oceanography.

Demand for instruction in the techniques of object-oriented programming is also significant outside the university. For example, attendance at the annual conference devoted to OOP* makes it by far the largest conference in the field of programming languages. Workshops and tutorials at these conferences (some of which I myself have presented) are frequently sold out.

More recently, our departmental chairman has held discussions with our industrial affiliates and partners in Portland on ways of forming closer bonds and cooperation between industry and university. A frequent request in these meetings is for short courses to be presented by university faculty, and the first topic mentioned is consistently a course on object-oriented programming. The project described here is in part a response to those requests.


Asynchronous Distance Learning

The concept of asynchronous distance learning is designed to help overcome the limitations inherent in traditional instructional techniques, limitations which involve both time and space.

Instruction is asynchronous when it does not constrain the student to involvement in the learning process at a specific time; as, for example, occurs when lectures are presented at a given time of day.

Instruction is distant when it does not constrain the student to be physically present in a fixed location; as, for example, occurs when lectures are presented only in a given classroom.

Previous experiments in educational methodology have explored removing both the limitations of time and space. Recent advances in computer and communications technologies have increased these possibilities. In particular, the growth of the internet has opened a number of intriguing potential tools for use in the asynchronous and distant instructional ``classroom''. Examples of internet tools which are only now being explored as aids in the educational process include electronic mail, newsgroups, and the world-wide-web.

The development of the World-Wide-Web creates a new medium of presentation that is only now starting to be fully recognized and utilized. Using the Web, large amounts of complex information can be quickly disseminated over long distances, and can be easily processed and assimilated by readers working on standard workstations. The type of media that can be supported includes hypertext documents, images, sound, and video clips.

As a academic unit, we in the computer science department at Oregon State University are in the process of learning how this new media can be better used as a vehicle for instruction.* The advantages of using the Web in this fashion are many, but the two principle benefits concern the ability for learning to conquer both time and space. We call this asynchronous and distance learning.

Asynchronous learning means that students need not be gathered together in the same locations at the same time in order for instruction to occur. Rather, students can process the material presented on the web at a time of their choosing. Through mechanisms such as electronic mailing lists and newsgroups, students can also form communities and interact with other students even if they never physically interact.

The second advantage is tightly connected to the first. If students can learn course material while working at their workstations on their own time, then the need for physical proximity is eliminated. A student communicating with the instructor or with another student via electronic mail or the web looks no different if the student is in the same city as the instructor or if they are many hundreds or even thousands of miles away. By structuring courses around the web we open the possibility for courses to cover a wide physical area.

What Makes Taking a Course Different from Reading a Book?

The lecture system of instruction has existed for more than 700 years. In this period many reforms in educational technique have come and gone, and yet the lecture has survived. Although as an instructional technique lectures are often denigrated, one must regard any idea with such longevity as having a proven success record. Because of this, it is important to ask what features found in the method are the key to this success. This is particularly important when one is seeking to replace the technique with another form of instruction.

We can perhaps explore this issue by asking a very simple question. It is certainly the case that the information content of a typical university course is entirely contained within the textbook for that course. What then makes taking a course different from reading the textbook for that course?

The answer, I think, is two-fold. The first part is pacing -- a course is spread out over several weeks, while a book is typically read in only a few sittings. A textbook that is quickly read is quickly forgotten. A course forces the student to address the material in smaller units. This concentration of effort on small units of information provides the student with greater time to assimilate course material.

Any effort to replace lectures with an on-line equivalent must include some mechanism for, ironically, slowing the student down. A course is more than simply an on-line textbook. There must be other mechanisms (exercises, illustrations, movies, projects) included to reinforce and duplicate the acquisition of knowledge from the textbook.

But the second part is, I think, even more important. When people gather together in a group, there is a common bond formed simply due to the sense of shared purpose. Place the same group of students individually in front of a bank of CRT screens running traditional CAI (computer-assisted instruction) software, and no common bond will will formed. (I observed this as an undergraduate student, when I was both victim and author of a number of CAI packages). For lack of a better word, I have been calling this common bond a sense of ``community.''

Is it possible to create this sense of community, this sense of shared purpose, without sharing physical space? This, I think, is the key to creating an effective teaching environment. In the past several years we have seen a number of active and engaging communities formed in cyberspace on the internet. It is an open question whether such a group can be created for a class-like setting.


The Current Project

While our vision of the possibilities of asynchronous distance learning may be large, the current project seeks to explore these possibilities through a steady sequence of steps, each limited in duration and objective.

The immediate first objective centers around the course in object-oriented programming discussed in the first section of this document. This course is a natural candidate for exploration for a number of reasons:

To create an on-line example of the course will involve not only creation of an on-line multi-media textbook, but also a variety of other course material and a structure in which the material will be presented. (See the earlier discussion of what makes taking a course different from reading a textbook). This structure includes controls on pacing, interaction, examinations, projects, and so on.

While our initial emphasis involves the use of existing tools, such as HTML, WWW, mosaic and netscape, electronic mail and newsgroups, we are also trying to maintain an awareness of technology which may be on the borderline of practical application. An example of this involves the use of broadcast and captured video, permitting lecture-like presentations to be stored and reviewed on a workstation in just the same fashion as World-wide-web pages are at present. Another example is IRC, which stands for Internet Relay Chat. This is a facility for setting up open ended ``talk'' like sessions with several participants.

Initially the course will be presented to students locally. While this does not highlight be advantages of asynchronous distance learning, it does assist in addressing the problems which are surely going to arise. Once the structure has proven itself, the course will then be enlarged. Possibilities which are being explored include the presentation of course material at several campuses of the Oregon System of Higher Education, or the inclusion of students from our industrial affiliates and partners.

Finally, in the long run our plan envisions using the knowledge we gain in this test case as an example or model to be followed in the process of moving other courses out on to this new medium.

Specifics of the Proposed Course

The proposed course, like most courses, will consist of a combination of many parts:

Further Information and Related Resources

The principle investigator for this project is professor Timothy A. Budd, from Oregon State University. Professor Budd's home page is accessible on the net, as is a copy of his curriculum vitæ.

The WWW '94 Conference Workshop: Teaching & Learning with the Web has a number of interesting links.

The Global Network Academy course on Introduction To Object Oriented Programming using C++ is a nice model of how a course can be structured on the net.

A number of interesting research projects in Asynchronous learning have been funded by the Alfred P. Sloan foundation.


Endnotes