Technical Report
jsufall97

Introduction

In this project, the Northeast Parallel Architectures Center (NPAC) taught a course at Jackson State University using the TANGO collaboratory system. The course was called "Programming for the Web" and was based on a course developed at Syracuse University. The goal of the project was to investigate the use of the TANGO tools in teaching a traditional lecture-based course in a distance learning environment.

CSC 499, Programming for the Web

The Jackson State University course CSC 499, Programming for the Web, begin on August 18, 1997 and ended on December 10, 1997. The course materials for this course were developed for an equivalent Syracuse University course CPS 406, which is also taught as a graduate course (CPS 606) at Syracuse. The materials were developed by NPAC and the College of Engineering and Computer Science at Syracuse University. The goal of this course is to provide the basic programming skills for students to develop World Wide Web applications. The topics include the Architecture of the Web, processing HTML forms with CGI scripts, and programming dynamic web pages in the language Java. For CGI scripts, the students learn a little of the language Perl. Approximately two-thirds of the course is devoted to the Java section, where students learn to write Web pages with user interfaces written in Java. See
http://www.npac.syr.edu/projects/jsufall97/information.html
for a detailed syllabus and course description.

The course was organized as a JSU credit course. It included regularly scheduled lectures that were delivered via TANGO. In these lectures, the instructor would show lecture slides on a workstation in Syracuse. The students attended class in a lab at JSU. Each lecture slide would appear on the students' workstations as the instructor displayed them. The instructor would deliver the lecture via an audio link, and the students would ask questions either through a chat tool or through the audio link.

The course also inclued on-line mentoring with the instructors at Syracuse and a local JSU instructor to monitor student progress. Students were assigned weekly homework which they submitted via web pages, and could check their grades in an on-line grading system.

The course "met" twice a week on Tuesdays and Thursdays from 2:30 to 4pm central time. In hindsight, this was a less-than-optimal time of the day, since the Internet is usually quite congested during the afternoon hours.

Other distance learning programs have recommended three face-to-face meetings with instructors and students to facilitate the class/instructor bonding process. These program found much higher completion rates by students than if no face-to-face meetings take place.

Accordingly, the first class was a traditional face-to-face meeting of instructors and students. Instructors went over the syllabus and tudents were introduced to the Tango software. (Little or no time was spent on browser technology since almost all students had the necessary experience.) In particular, students were asked to connect to an online database application (a link was put on the course assignment page for this purpose) and complete a sign-up form. This information was to form the basis of the online student database. In addition to basic indentifying information and demographics, students were asked a series of questions regarding their technical background. This questionnaire was specifically designed for the students in this class.

The syllabus was adjusted somewhat based on the background of students that was learned from the questionaire. First of all, these students (as a group) had almost no experience coding Web pages in HTML. Secondly, almost all of the students were familiar with C. So more time was spent introducing the course and care was taken that the students understood basic Web mechanisms, in particular, HTTP and CGI. On the other hand, the fact that these students were confortable with C made it easy to introduce Java, whose syntax is similar to C.

At the beginning of the term, after students completed the online sign-up form, a majordomo mailing list is created. The mailing list facilitates asynchronous discussion of course-related topics, such as assignments. Some time was spent at the beginning of the course to encourage students to use email for their primary instructor contact medium. This was largely successful, although students were more comfortable using email for individual conversations with the instructors, than they were with group email discussions.

In addition to the traditional mailing list, a "Post Office" page was created:

   http://www.npac.syr.edu/projects/jsufall97/postoffice.html
The Post Office is a more visual, browser-based approach to e-mail. (Note: The Post Office is created by script, from the information typed into the online sign-up form.)

Students in CSC 499 had access to a wealth of asynchronous learning material on the Web. From the course home page

   http://www.npac.syr.edu/projects/jsufall97/
students could link to resources covering HTML, CGI (including Perl), and Java. These pages have links to lectures, tutorials, documentation, and examples.

Example programs are an integral part of learning any programming language. The examples must be carefully designed to illustrate the essential features of the language without introducing unnecessary detail. To facilitate the showing of examples, a dual-panel presentation window was designed in which the code appears in the bottom panel and the output of the code simultaneously appears in the top panel:

   http://www.npac.syr.edu/projects/tutorials/Java/examples/HelloWorld/
Notice that the code is line numbered, which facilitates the explanation of the example.

The course home page is a record of both student and course progress. Lectures, for example, are added to the lecture page on a weekly basis. The lecture foils also have optional "addons", that is, links to related examples and background material. If a student misses a lecture, he or she can consult the lecture page for missed material.

Assignments are also archived on the course home page. Any student with Web access can find out immediately what assignments have been given and which are coming due. Moreover, each assignment includes links to background material that the assignment presupposes.

As a student completes his or her assignments, links are added to their homework page. (The creation of this homework page is the first assignment a student receives in the course.) On or after the assignment due date, a TA or instructor consults each student's homework page and grades the assignment. The grades are entered into a database, which a student accesses with a browser.

This Web-based database is an integral part of the course. From the student's point of view, the database provides a near-instantaneous answer to the perennial question: "What is my grade in this course?" From an administrative point of view, the database centralizes student records and automates certain routine tasks. For example, an instructor may produce summary statistics at mid-term or at the course's end. Student tracking is thus simplified, and is easily made available to instructors located at both SU and JSU.

Grades must be kept in a secure online database accessible to both teachers and students. This is especially important in a distance-learning course where access to instructors is limited.

Tango

Tango is a Java-based Web collaboratory implemented in standard Internet technology using a Netscape browser for the participant's interface. Although TANGO's original design was to support collaborative groups who wish to share and discuss their work, in this project, TANGO was used to deliver synchronously course materials stored in an otherwise asynchronous repository.

The primary Tango window is called the control application. From this window, participants have access to many tools such as

A tool called SharedBrowser is used to "push" learning material onto client screens. The SharedBrowser is similar to an ordinary browser window: there is a textfield for typing URLs, a "Back" button, and a history list. When the "master" (i.e., the user doing the "pushing") loads a web page into the SharedBrowser, that web page is automatically and simultaneously loaded into all client browsers. Clients may activate links, scroll the window, or otherwise interact with the page as usual, but as the master SharedBrowser loads a new page, that page is automatically loaded into all client browsers. In this way, an instructor may show examples or a student may demonstrate a project.

WebWisdom is a tool for showing lecture slides (or foils). Each foil may have an "addon", which is a link (or links) to supporting material such as online documentation or example programs. In an electronic classroom where there is only one computer controlled by the instructor, showing addons with WebWisdom is routine. However, in the current implementation of WebWisdom, the addon feature was unreliable at the client browsers, so we relied on the SharedBrowser to show example programs and other Web documents.

One of the first things we noticed when working with Tango for instruction was that the instructor would often want to "point" at particular lines of slides of parts of examples. (Evidently, this is an important, almost unconscious mechanism for conveying information in a traditional classroom.) Pointing mechanisms that we proposed, such as showing the location of the instructor's mouse on the student's workstation, were not possible under current Netscape browser event structure. To compensate for this, WebWisdom was equipped with a "highlighter" that the instructor could use to emphasize bulleted material on a foil. For the same reason, sample programs were line numbered (automatically, by using a Perl script developed specifically for this purpose), which facilitated verbal descriptions of the code.

The WhiteBoard is a handy tool for conveying small amounts of information, say, a code fragment or a simple diagram. Tango's WhiteBoard is full duplex, however: any number of clients can write on it at a time. Although this is useful in collaborations, for instruction, we found ourselves wanting an instructor/student mode that would prevent students from inadvertantly messing up our meticulous real-time creations.

The WhiteBoard's text tool was inadequate for our purposes. Text fragments should be object-based so they may be cut, pasted, and otherwise moved around on the whiteboard surface. Text on our whiteboard was pixel-based, that is, it could be written and erased, but not easily modified. For example, it was impossible to add a missed word in the middle of an already-typed sentence. The only editing that could be done was backspacing, and that only on the current line.

It would be useful if the WhiteBoard tool had open and save commands, so that displays could be prepared beforehand.

It is easy to join remote clients to a Tango session. The master of any given tool can force-join any or all Tango users. At first it may appear that this feature could be abused, but we didn't have any problems with it. Indeed, it is one of Tango's premiere session-management features.

We discovered early on in the course that audio conferencing capabilities are crucial. Teachers need audio for lecturing and explanations, while students need audio to ask questions and engage in problem solving activities. To facilitate the latter, a RaiseHand tool was devised, whereby students can signal their desire to ask a question.

Lessons Learned

Overall, the course was successful. That is, almost all of the students completed their homework assignments, participated through email with the instructors, completed a final project and received a passing grade in the course. However, there were some difficulties with either the tools or the process of remote lecturing that were not as successful as an actual face-to-face lecture would be.

First of all, the bandwidth of the network setup did not support video pictures of the instructors and students during the lectures. For the most part, the audio worked well, but in approximately 5 of the 30 lectures over the semester, part of the class was disrupted by low audio quality. Only once was an entire class missed due to an Internet closeout. The situation was improved over the semester, and network traffic observations led us to believe that other times of day would be more successful.

As detailed above, the TANGO collaborative tools that were used were mostly successful and capabilities needed for the instructional use were identified. These new capabilities will be added.

In addition, some people felt that the TANGO window design in which each tool used a separate window is too cumbersome for instructional use. This was not actually seen as a problem by the JSU students themselves, who were quite good at manipulating the windows on their desktop, but still we feel that a more unified window design may be more attractive for instructional use.

At the end of the course, the students were given a short questionaire about the course, including questions on the value on the instructional components. Here are the results of this part of the questionaire:

Course Components Rated from 1(poor) - 4(adequate) - 7(excellent)
-- Mean Standard Deviation
Textbooks 5.18 1.19
Web Materials 5.91 1.31
Tango Software 3.55 1.78
Accessibility of Instructors 5.0 1.9
Remote Lectures 3.27 1.35
Programming Examples 5.72 1.05
Programming Assignments 5.36 1.30
Final Project 5.73 1.14

In addition to the questions, the students gave comments about the course:

Good class.

I think in the future the class will be better since this was the first time a class like this has been offered.

For the next class, there should be an instructor that stays in class the whole time and not only the technical operator. Overall the class was a nice class. There's one exception, there was too much homework given at one time, since there is not an instructor assisting us.

The class overall is great. It just has a lot of Tango software and communication problems.

This class is an excellent introduction into Internet components but the time alloted was not enough to encompass all the materials. I feel that our background in the different languages isn't so solid as I would like. I'm however grateful for the class. It was fun and challenging. I suggest the class be broken down into two semesters: one for HTML and CGI/Perl, and the second for Java.

I think that this was a very important class to enroll in. However, for the amount of material covered, I think the course should be broken down to a two semester course. Or at least cut down on the amount of assignments and information given to students because we have other classes and this course is very time consuming.

So overall, the students found the class challenging, but learned a lot. They felt that the weakest part were the remote lectures using the Tango software, giving these components just almost adequate, whereas the other components were rated about halfway in-between adequate and excellent. These comments correspond to the shortcomings that we identified in the Tango tools used in lectures and the network performance.

Conclusions

The JSU course CSC499 was successfully taught using the TANGO collaborative software. Important changes were identified in the use of TANGO tools for instructional use and will be modified.

An important open question remains as to whether current Internet bandwidth will support two-way audio and video to the extent that students feel as comfortable with remote lectures as they do with traditional classroom lectures.