Teach++ : A Cooperative Distance

Learning and Teaching Environment

Maria Barra Giuseppe Cattaneo Umberto Ferraro Petrillo

Vincenzo Garofalo Claudia Rossi Vittorio Scarano

Dipartimento di Informatica ed Applicazioni "R.M. Capocelli"
Università di Salerno
84081 Baronissi (SA)-Italy
(39) + (89) + 965 264



In this paper we present the key principles of the architecture of Teach++, a cooperative environment specialized for distance learning, and its implementation as a didactic instrument for teaching programming languages. Our system is designed to be multi-user, distributed, scalable and cooperative. The goal is to integrate collaboration in a virtual classroom over shared resources by using a common browser enabled with a Java Virtual Machine. The collaboration can be during a lesson, during a one-to-one (possibly remote) tutoring and during the (cooperative) authoring phase. The system provides, among other features, a cooperative editor and a shared cooperative remote login (telnet) session.

1. Introduction

Internet and the World Wide Web offer new ways of teaching and learning, allowing an easy access to distance learning environments by using standard and inexpensive equipment (hardware and software) present almost everywhere.

Computer mediated communication includes the use of a range of electronic communication technologies for enabling interactivity through mainly asynchronous communication such as bulletin boards, electronic mail, small group computer conferencing and access to online resources.

Our research is oriented toward the design of a distributed and cooperative distance learning system, called Teach++, that provides a virtual representation of a traditional classroom.

Teach++ implements a virtual classroom where group participants (teacher and students) access a common workspace on the Internet using a simple interface. The realized prototype is specialized for learning programming languages. Teach++ allows to form a virtual classroom where members can share material guided by the teacher. Didactic material consists of HTML pages, programs written in any programming language and images. Teach++ provides instruments to let group participants work on shared resources and modify them, as well as edit, compile and execute a program. Teach++ allows teacher to make theoretical and practical lessons with the same tools and at the same time. Its architecture is specialized to support similar teaching systems on different disciplines, but in these cases, new cooperative tools should be developed.

Our idea is to propose to use the same system, Teach++, in different educational contexts: (1) to allow a teacher and several students to have an interactive lesson, when they a are not located in the same place, or they are in the same computer lab; (2) to allow a teacher to help students develop their own programs on-line (tutoring); (3) to allow students to collaborate on any project development on-line; (4) to allow a teacher to author his/her course; (5) to allow teachers to collaborate on-line to the authoring process.

In this paper, we present also Teach++ architecture and describe its functionalities. Our system provides a multi user, integrated, scalable and distributed environment that allows cooperation among members of a virtual classroom by a CSCW interface (Computer Supported Cooperative Workgroup).

Organization of the paper. In section 2, we introduce our view of cooperative distance learning systems and its relationship with authoring in order to put our system Teach++ in the right perspective. Then, in section 3, we introduce Teach++ features and its architecture. Finally, in section 4, we show our conclusions and illustrate further work.

2. Cooperative Distance Learning and Authoring

Distance learning cannot be considered a complete alternative to traditional methods but it definitely offers effective instruments to support traditional learning and teaching styles. Internet and the World Wide Web offer the basic technologies to develop inexpensive and simple-to-use distance learning tools.

Courseware is nowadays widely available: it consists of didactic material on-line, organized as complete lesson courses, that each student can individually consult according to his own needs, without communicating with a teacher or with any other student consulting the same material. That's what we call asynchronous distance learning.

In Web-based asynchronous systems, didactic material is usually composed of HTML pages prepared off-line by a teacher, possibly integrated with audio streams, providing comments and explanation recorded by the teacher, see e.g. [Stern 1997]. Sometimes such systems allow a student to solve exercises and get a valuation and some suggestions about related topics [Dovgiallo 1997].

Furthermore, some asynchronous systems are somewhat adaptive, that is they can deliver course material following different rules, according to a student profile, depending on his/her behaviour while consulting the course material (see, e.g., [Ferrandino 1997, Negro 1998]).

Even though courseware allows students to follow their own rules in consulting the course material, by playing an active and autonomous role in their learning process, we believe that teacher's role is too important to reduce it to simply preparing learning material and make it accessible on the Web. A "weak" form of tutoring is sometimes supplied, allowing a student to communicate with a teacher by simply sending him an e-mail as in [Digby 1997]. Obviously, this is not enough to guarantee an effective interaction between a teacher and students and does not provide real on-line help.

On the other side, some educational systems[Dasai 1997] are developed to realize a virtual classroom where a teacher and some students that are not in the same place can experience a lesson and efficiently communicate as if they were in a traditional classroom. The main goal of such systems is to induce a "sense of presence" among virtual classroom members as it happens in video-conferencing. This is accomplished by using sophisticated audio and video equipment, such as microphones and video-cameras and transmitting audio and video-streams appropriately encoded over the network. Unfortunately, audio and video transmission requires wide network bandwidth to obtain good and realistic performances.

Such systems optimize communication among virtual classroom members, but do not allow them to really share a workspace, collaborating on activities over shared resources. This is accomplished by some existing cooperative systems that are not specialized for distance learning and do not provide the typical functionalities requested by an educational environment [Habanero 1997].

Some distance learning systems [Yeh 1996, Barra 1998] allow group browsing of the course material. A teacher can thus have an active role in students learning process, guiding them in consulting the course material according to his own rules. Again, such systems provide too little interaction between group participants, who can neither communicate during the lesson nor collaborate on any activity.

TeamWave Workplace [TeamWave 1998] is designed to support virtual communities by offering a rich variety of shared tools such as whiteboards, chat facilities, and custom group tools such as sticky notes, databases, bulletin boards, calendars and so on. Community members access the communities directly or through a central portal. TeamWave Workplace can assist educators in using the Internet to establish a more collaborative model of learning, where learners can actively interact with the course material, their instructor, and each other. Unfortunately, the features provided by TeamWave's rooms can provide a perfect forum for generic educational collaborations but does not help teacher to author the lessons in a specific case. In fact it does not provide a structured view of the lesson that can be adopted by the teacher when he is authoring the course.

Figure 1: Our vision for a Cooperative Virtual Classroom.

We believe that an effective distance learning environment should provide some basic functionalities of both distance learning and cooperative systems, realizing a collaborative virtual classroom, as shown in Fig. 1. According to this basic idea, we developed Teach++, whose aim is to reduce the gap existing between cooperative and educational environments by offering a specialized system for teaching programming languages: in fact, it provides an ad-hoc environment with cooperative tools (like a shared telnet session, a glossary of keywords, a shared ASCII editor, a whiteboard, a slide viewer) that can be used both during the lesson (a one-to-many scenario), during tutoring (a one-to-one scenario) and during authoring by the teacher to prepare the lessons in collaboration with the "integration teams" composed by different experts (see ESCOT [Rochelle 1998]).

In fact, the main focus of our project was on integrating the teaching, learning and practicing cooperative environment. In order to learn a programming language effectively, it can be extremely useful to have the material created (by the teacher), taught (to students) and experienced (by the students) in the same environment. In particular, we concentrated on offering the possibility to edit a program, compile it, debug it and run it cooperatively, by using the same environment (ASCII terminal) that students will later find in the laboratory.

The system makes easy for the teacher to reuse existing material (in standard format, such as HTML, GIF, JPEG and ASCII) and to assemble it for a lesson.


Teach++ is a WWW-based multi-user environment that supports collaborative distance learning and teaching. In particular, it is specialized for teaching programming languages. It realizes a distributed virtual classroom as a shared workspace where a teacher and several students can have an interactive lesson, just like in a traditional classroom and it offers the same environment to educators as well. In order to ensure an effective interaction among workgroup participants, we designed Teach++ according to CSCW requirements.

Group awareness is guaranteed to virtual classroom members that share actions and artifacts and collaborate over activities on shared resources. In order to coordinate their activities, workgroup participants can communicate in a synchronous way by using a chat channel.

Teach++ is designed according to client/server architecture and completely coded using Java language. The client-side of the system is implemented by Java applets embedded in a multi-frame HTML page, while the server-side of the system is a Java multithread application. Workgroup participants access the system asking an HTTP server for the HTML page (where the Java applets are embedded) that provides a graphical user-interface to operate in the workspace.

Teach++ : An integrated environment for teaching and authoring

The realized system is a prototype to teach a programming language to first-year students. A linear path of slides composes a lesson, where each slide is an HTML page plus an (optional) image and an (optional) text. In this way the teacher is able to prepare his lesson as a sequence of steps where each step has an explanatory HTML page, that can be accompanied by a drawing (to show the behaviour of an algorithm, for example) and by a text that represents a program. These activities are all synchronously shown to the students and the teacher can also let a student draw and edit the program by "passing the chalk". In the editor, there is a glossary that explains particular keywords (useful to remind previously explained notions). At any step of the lesson, the teacher can call a shared telnet session that can be used to compile and debug the program that was cooperatively edited.

The same environment can be used during the authoring phase: the teacher can assemble a lesson by using existing HTML pages, images or texts but he can also use the editor to write HTML pages, or to write programs and compile them on the machine by using the telnet session. It means that the authoring phase can be cooperative as well: it is an important feature since it is recognized (see ESCOT [Rochelle 1998]) that courseware authoring needs different kind of expertise. Of course, Teach++ ability to perform such operations on a remote setting opens up possibilities that consultants can remotely check the material and interact with the teacher, when requested.

All the lessons are immediately accessible by the teacher that can switch, whenever necessary, from an argument to another.

3.2 The architecture

Teach++ architecture is client/server. Teach++ clients provide interactive user interfaces and collaborate in the distributed computation while Multi-Applet Server (MAS) manages sessions and information exchange among clients.

MAS is the central point of the communication among clients: it keeps the connection for any applet of a single client and manages communications among clients. In particular, MAS initializes and closes the session for each user and takes care of assigning the write-permission token.

Such token allows the user who owns it to impersonate the teacher and, therefore, lead the lesson, showing the course material to the whole classroom and modifying shared resources. Teacher is a dynamically changing figure. In fact, MAS takes care of assigning the token to the first user who logs in the workspace and handles the token delivery when requested by the teacher, who can give the token to any student and let him become the new teacher. This makes Teach++ a symmetric teaching environment that is a crucial requirement to give the flavour of real, physical interaction to distance learning.

Teacher's actions that need to be notified to other clients are sent to MAS and then broadcast to all clients. Every client interprets the information received and computes the output for the user.

Each Java applet on the same client establishes an independent connection with MAS. This architecture offers the advantage of a modular structure that can be augmented to offer new capabilities, simply by providing new applets, to be inserted in the multi-frame HTML page, and dedicated server modules, integrated within MAS or outside MAS. For example, we integrated Teach++ with a Telnet module that allows the teacher to open telnet session on remote computers.

An ID, common for all its applets identifies each client.

The ID is distributed by a server-side mechanism during the first connection to Teach++. Each user loads the "client", that is the ensemble of applets executed by the Java-enabled WWW browser, by following a URL. It points to a CGI-BIN script on the WWW server whose response is a multi-frame HTML page where embedded applets are given (as parameter) the unique client ID.

Users see three frames on their browser: the first contains ClientTeach applet, it provides instruments to operate in the virtual classroom, the second contains a chat communication channel, while the last one allows to broadcast slides and descriptive pages related to the current lesson. Other services, like telnet and the lesson assembler are opened in a different window when requested.

The centralized architecture was chosen because it is necessary for synchronization and also because it was somewhat dictated by the limitations imposed to the applets: (a) they cannot perform connections to other hosts but the one they were downloaded from and (b) applets embedded in different frames of the same HTML page cannot communicate and must share communication through a centralized server (MAS).

The Teach++ Client

Teach++ client consists of several applets in the same multi-frame HTML page that, in the current version of Teach++, offer basic user interfaces to operate in the workspace.

In this subsection, we describe the functions provided by two of them, namely ClientTeach and ClientChat while a third one (TelnetApplet ) is described more thoroughly in section 3.4 where the whole Telnet subsystem is described.

ClientTeach offers all the system functionalities related to the didactic material presentation and provides all the instruments needed to perform actions on the artifacts and which cooperate to change shared resources. The course material is composed of slides (HTML pages), programs (written as plain ASCII files) and images (see Fig. 2). It offers the same capabilities to teachers/educators that can collaborate over their artifact i.e. courseware.

Figure 2: Here we see three frames at the beginning of the session. The leftmost one holds the following buttons (active only for the teacher): lesson for choosing the lesson, text activating the text editor on the text associated with the current slide, image activating the image viewer on the image associated with the current slide, next and previous slide, telnet opens a shared telnet session. The central frame holds the slide, an HTML page, while the bottom one holds the chat channel.

ClientChat realizes some aspects of the awareness required by a CSCW system. It allows each user to send personal data to the server.

The server can use the information to insert the user in the workgroup as a new participant. ClientChat provides the interface to exchange messages among users and a user list to pass the write-enabling token around.

The ClientTeach Applet

ClientTeach is the user interface that characterizes the learning environment. It implements a user-friendly interface that allows the teacher (or the student who has been given the write-permission token) to load the course material, show it to the whole classroom and perform actions that will be notified to students. This applet offers also authoring capabilities as well. This is offered to teachers by using the same tools (text editing, image viewer, and chat) that are going to be used by the students. It therefore provides also a feeling of the system to the courseware authors, by allowing fine-tuning and, in general, better designs of courseware since teachers know exactly how the system behaves in practice.

A sequence of slides can be shown in the appropriate frame, while a text editor shows programs, providing the interface to modify them and an image viewer visualizes images.

ClientTeach allows each workgroup participant, when given the token, to have an active role during the lesson and to collaborate at some activities, such as editing and compiling a program opening a remote login session than is shared with the students.

ClientTeach provides:

This applet also provides access points to all the additional services that can be added to the system. At this moment, the modular architecture is exploited only by the Telnet subsystem that is introduced later. Other services can be added in the same way.

The access point to Telnet Applet allows the user to open a telnet session to a remote computer and the session is broadcast to all the students. In this way, for example, it is possible to broadcast to the whole classroom what the teacher does to compile a program, to see compilation results and to perform line debugging (like the standard GNU debugger gdb).

Figure 3: Here we see the text associated with the (underlying) slide. Notice that buttons text and image where highlighted, showing that there are text (i.e. programs) and images for the slide. The separate window offers the editing on the program with buttons for moving up and down, drawing on the text, and using the glossary (more details in Fig. 4). The editing implements emacs-like commands for deleting characters, lines, moving up and down the cursor and so on. Finally the editor can save the (modified) file so that (for example) a modified program can be compiled and debugged by using the shared telnet session (more details in section 3.4).

Figure 4: Here we show the interaction on a text through the text editor. The teacher has circled down the class which the applet is inheriting from, and then it points (drawing an arrow) to a term and (by clicking on the term) can show a definition (in a separate window) taken by the glossary.

The ClientChat Applet

ClientChat provides a synchronous communication channel among virtual classroom members, allowing them to coordinate their actions and realizes the awareness characteristics required by a CSCW system so that every Teach++ user knows the participants and their actions on the artifacts (HTML slides and programs). ClientChat is also used as access door to Teach++: when a user gets connected, ClientChat is in charge for opening the session for the new user and register him toward the server.

ClientChat provides to each user:

3.4 Telnet Subsystem

The Telnet subsystem is an application integrated in Teach++ environment. It was developed as an external add-on to show the modularity of Teach++ architecture.

By clicking a button in the ClientTeach applet, the teacher can open a remote login session than is shared with the students. Sharing here means that only the teacher has the capability to type text in the telnet session, while others can simply see what the teacher types in.

The teacher would like to show the "actual" compilation and debugging of the program (by using standard GNU C compiler gcc and the standard debugger gdb) through the usual alphanumeric interface (as used by the students during practice).

The teacher can send commands to the remote shell and each student can observe the session (see Fig. 5). When a student receives the token, he acquires the ability to send commands to remote shell and, therefore, the subsystem also provides useful feedback to the teacher by allowing "tutoring" activities.

Telnet Subsystem Architecture

The architecture used here can be seen as a model to move all "one-to-one" applications to a "one-to-many" broadcasting environment. In other words, this model can be reused each time there is need to access to a single user service (as ftp) in a cooperative environment.

We distinguish three components:

Figure 5: Here the teacher just logged himself on a machine. Now, he can compile and debug a program that modified through the editor.

3.5 The Multi-Applet Server

The Multi-Applet Server implements synchronous communication among clients.

Client and server communicate by two independent TCP/IP connections that are established by applets when the HTML page embedding them is loaded into a Web browser.

As the teacher performs actions in the workspace, applets send commands to MAS that provides to transmit them to the whole classroom. Each client interprets the command received and performs the associated operation, thus permitting to students to see the results of teacher's actions on their screens.

MAS has a highly modular structure that allows to extend its capabilities in order to support new client's configuration reflecting new exigencies.

MAS consists of three modules:

In this configuration, ServerInterfaceTeach and ServerInterfaceChat act respectively as communication interfaces between MAS and ClientTeach and between MAS and ClientChat.

Modularity is, here, particularly helpful since it allows to integrate new facilities into Teach++ by simply writing new applets and the corresponding specialized interfaces without altering the architecture. So, a cooperative workgroup environment that needs particular functionalities can adapt Teach++ to its exigencies.

4. Conclusions and future work

This paper offers a brief report of our studies concerning distance learning and CSCW. Such studies led to the development of Teach++, a cooperative educational environment specialized for programming languages teaching. The obtained results seem to be very promising:Teach++ is a portable, distributed, multi-user, scalable system that realizes a collaborative virtual classroom. Recall that Teach++, apart from being used by a teacher and some students to have an interactive lesson on-line, can also be used by students themselves as an instrument to develop group projects, with the support material provided by an instructor. Besides, a teacher can use Teach++ as a courseware editor to select course material to show to students during a lesson.

We planned several extensions to Teach++, namely:


Authors gratefully acknowledge several helpful and stimulating discussions with Vincenzo Auletta, whose support and encouragement were crucial for the success of the project. Authors also thank referees for several useful comments and suggestions.


[Barra 1998] M. Barra, S. Ferrandino, V. Scarano. "WebSlide: A Slide Projector on World Wide Web". Journal of Science Educatione & Technology, Vol. 8, No.1 (March 1999). See also Proc. of 14th International Conference on Advanced Science and technology (ICAST) 1998.

[Bentley 1996] R. Bentley, U. Busbach, K. Sikkel. "The Architecture of the BSCW Shared Workspace System". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[Berners-Lee 1992] T. Berners-Lee, R. Cailliau, J.F.Groff. "The World Wide Web". Computer Networks and ISDN Systems, Nov. 1992, vol.25 (no.4-5), 454-9.

[Comer 1987] D.E. Comer. "Internetworking with TCP/IP. Principles, Protocols and Architecture". Prentice-Hall International, Inc., 1987.

[Dasai 1997] T. Dasai, H. Koizumi, K. Yokochi, S. Moriya. "Proposal of an Interactive Distance Learning of CCV Educational System and Verification Experiments". Submission to ICCC.

[Decouchant 1996] D. Decouchant, M.R Salcedo. "Alliance: A Structured Cooperative Editor on the Web". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[DeBra 1996] P. De Bra, A. Aerts. "Multi-User Publishing in the Web: DRess, A Document Repository Service Station". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[Digby 1997] "MIT 110, Introduction to Distance Learning". http://www.faytech.cc.nc.us/ kdigby/home.html

[Dix 1996] A. Dix. "Challenges and Perspectives for Cooperative Work on the Web". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[Dovgiallo 1997] A.Dovgiallo, V.Bykov, V.Kolos, S.Kudrjavtseva, Y.Tsybenko, N. Vlasenko. "WWW- based distance course on the Communication and Informations Technologies".

[Ferrandino 1997] S. Ferrandino, A. Negro, V. Scarano. "Cheops: Adaptive Hypermedia on World Wide Web". Proceedings of the European Workshop on Interactive Distributed Multimedia Systems and Telecommunicazion Services (IDMS '97), 10-12 Sett. 1997. Ed. Springer-Verlag (LNCS).

[Griera 1996] J.I. Griera. "Managing CSCW". In: Proceedings of the ERCIM workshop on CSCW and Web. Sankt Augustin, Germany, February 1996.

[Habanero 1997] Center for Supercomputing Applications University of Illinois at Urbana-Champaign. 25 July 1997 http://www.ncsa.uiuc.edu/SDG/Homepage/habanero.html

[Legget 1990] J. Legget, J.L. Schnase, C.J. Kacmar. "Hypertext and learning". In Designing Hyper text/Hypermedia for Learning". D.H. Jonassen, H.Mandl (Eds.). Springer-Verlag, Heidelberg, Germany, 27-37, 1990.

[Negro 1998] A. Negro, V. Scarano, R. Simari. "User Adaptivity on WWW through CHEOPS". Proc. of 2nd Workshop on Adaptive Hypertext and Hypermedia, held in conjunction with HYPERTEXT '98 (Pittsburgh, PA, USA, June 20-24, 1998).

[Nicol 1988] A. Nicol. "Interface design for hyperdata: Model, maps and cues". In Proc. of Human Factors Society 32nd Annual Meeting, pp. 308-312, 1988.

[Peters 1995] R.Peters, C.Neuss. "CrystalWeb - A Distributed Authoring Environment for the World Wide Web". Proc. of WWW95, 3rd International Conference on World Wide Web.

[Rochelle 1998] J.Rochelle, C. Digiano, R. Pea, J. Kaput. "Educational Software Components of Tomorrow (ESCOT)". http://www.escot.org/escot/External/MSET_ESCOT.HTML

[Stern 1997] M.Stern, J. Steinberg, H.I. Lee, J. Padhye, J.F. Kurose. "MANIC: Multimedia Asynchronous Networked Individualized Courseware". University of Massachusetts Tech. Rep. (Submitted for publication) 1997.

[Slein 1997] J.A. Slein, F. Vitali, E.J. Whitehead Jr, U.C. Irvine, D.G. Durand. "Requirements for Distributed Authoring and Versioning on the World Wide Web". WEBDAV Working Group. Internet Draft February 1997.

[Streitz 1992] N.Streitz, J.Haake, J. Hannemann, A.Lemke, W.Schuler, H.Schutt, M.Thuring "SEPIA: a cooperative hypermedia authoring environment". Proc. of ECHT '92, 4th ACM European Conference on Hypertext, Milan (Italy), pp. 11-22, 1992.

[TeamWave 1998] TeamWave Software Ltd. "Collaborative Education with TeamWave Workplace". In: http://www.teamwave.com/. Calgary, Alberta Canada 1998.

[vanWelie 1996] M. van Welie, A. Eliens. "Chatting on the Web". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[Walther 1996] M.Walther, "Supporting Development of Synchronous Collaboration Tools on the Web with GroCo". In: Proceedings of the ERCIM workshop on CSCW and the Web. Sankt Augustin, Germany, February 1996.

[Yeh 1996] P.Yeh, B.Chen, M.Lai, S.Yuan. "Synchronous Navigation Control for Distance Learning on the Web". [WWW5] Fifth International World Wide Web Conference, 1996.