discussion lists, email and course notes. ... well-documented HTML tags integrate each tool into an ... HTML authoring software to generate the web page. It also.
A Framework and Reusable Tools for Developing Interactive Course Web Sites Henri Naccache, Timothy Lindquist, Susan Urban Multidisciplinary Initiative for Distance Learning Computer Science and Engineering Arizona State University Tempe, Arizona 85287 Abstract - Educational World Wide Web site creation systems currently exist which either assist in generating static web sites or offer interactivity without the freedom to personalize tools or web site aesthetics. In this paper, we briefly review several existing systems and present a set of tools that we've developed. Our approach differs from other efforts largely in that we provide the beginnings of a component-based framework that can be extended. The tools provide components that can be used to extend an existing web site. They can also be easily configured into a web site creation tool, such as Netscape's Composer. We discuss the nature of the tools we have developed and the application of these tools to existing courses.
Introduction and Related Work Today, a surprisingly high and ever-increasing number of learning resources are being implemented on the World Wide Web. Perhaps due to the nature of the Computer Science discipline, over thirty Spring 1998 course offerings from the Computer Science Department at Arizona State University have web presence. Today most of these represent largely passive repositories of information that are made available to students through the web. A few course sites are taking advantage of the web to: • • • • •
Aid in automating instructor or student learning tasks, such as distribution, submission and grading of assignments and posting and querying grades; Provide interactive or adaptive information that matches student learning style and pace; Provide self-assessment or evaluation of student learning; Employ media-rich sites with audio, video or animation; and Facilitate asynchronous or synchronous participant interaction and collaboration.
A wide range of support software is available for instructors wishing to utilize the web. Systems range from Microsoft's FrontPage to products based on university research systems, such as LearningSpace from the University of Washington. FrontPage exemplifies the many generalpurpose web site creation tools that aid in incorporating, formatting and integrating various materials for web presentation. LearningSpace is specifically oriented to
utilizing the web in learning. It provides instructors with support for creating and managing exercises, self-assessment quizzes and tests. LearningSpace supports the use of multimedia objects in creating template-based exercises. It also supports immediate feedback to the student as well as reporting and management of student progress. Information on LearningSpace is available at http:// weber.u.washington.edu/~lspace. WebCT, from University of British Columbia, (http://homebrew1.cs.ubc.ca/webct) provides a larger set of capabilities to the instructor. WebCT includes support for chat rooms, asynchronous conferencing and group project organization. Like LearningSpace, WebCT also supports creating, grading and reporting results of self-assessment exercises and quizzes. Additionally, WebCT tracks student progress and provides support for course calendars. TopClass and ToolBookII are two other systems aimed at creating web-based learning systems. TopClass (which can be found at http://www.wbtsystems.com/) provides tools for collaborative learning as well as managing and delivering courseware. Features include support for exercises, student progress tracking, access control to class information, discussion lists, email and course notes. ToolBookII (http://www.asymetrix.com ) is an authoring tool for weband CD-ROM-based courseware. ToolBookII provides templates for creating a web site based on a book and page model. It includes support for video, 3-D models and limited animation. Typically, with the tools mentioned above, web sites have been constrained to the default functionality, look and feel, and layout of the tool. Any modifications are serverwide and require complex programming and/or modification of the tools. Our framework, however, is Java-based, easily extendible and designed to meet the individual needs of courses. Our approach is that on-line learning resources should be viewed as evolving. It is unreasonable to expect that a course will be brought onto the web with full initial functionality or that a single set of tools will meet the needs of all courses. We view the existence of a large number of primarily passive course sites as a first evolutionary step toward more comprehensive web utilization. Rather than an all-at-once approach, we advocate tools and techniques that allow gradual adaptation of an existing site to utilize new features.
Our tools are packaged and generally available on the MIDL server (Multidisciplinary Initiative on Distance Learning) as a set of reusable tools that can be easily integrated into an existing course web site. These tools do not constrain the design of the site, nor do they require any programming on the part of the designer. Simple sets of well-documented HTML tags integrate each tool into an existing web page. This allows the designer to use any HTML authoring software to generate the web page. It also allows instructors to increase the functionality of their web sites as they feel comfortable.
Additionally, since servlets are only loaded into the server's memory once, they gain performance over their CGI counterparts. The server handles every new request by creating a new thread and invoking the correct method of the servlet. This allows the servlet to perform the most timeconsuming operations at startup while each new request runs with very little overhead. For example, the servlet can open a connection to a database and authenticate itself during startup; then, each new request only has to complete the transaction with the database. This is a considerable performance gain.
The Java Servlet Model
The MIDL Server
The default functionality of a web server is to accept a request for an existing document and return the document to the requesting browser. Server-side include tags allow the server to scan the document before returning it to the requesting browser and replace the appropriate tags with some computed value, such as the current time, the time the document was last modified or the type of browser that is requesting the document. Server-side includes are limited in capability. The traditional approach to the creation of interactive web pages has been the use of the Common Gateway Interface (CGI). The server executes CGI programs whenever a request is made to access the content of that CGI. There are two disadvantages to this approach; first, it is very difficult to incorporate the output of a CGI program into a web page. The CGI program itself creates the whole web page, so headers, links, and the rest of the page have to be written into the program. This makes reuse of a given CGI in more than one web site difficult, as the actual CGI program has to be rewritten to match the look and feel of each web site. The second main disadvantage of CGI programs is that there is no continuity -- every request starts a new invocation of the CGI program, which terminates when the program has successfully returned the information. This is a very big performance hit when the output of the CGI depends on information found in a remote database. Each invocation of the CGI program has to create a new connection to the database, authenticate itself with the database, and make the transaction request. The Java servlet model incorporates a good mix from both server-side includes and CGI programs -- servlets incorporate all the favorable features of the Common Gateway Interface but can be embedded in a web page, like server-side includes. Servlets are server-side Java applications that respond to a web page request. The ability of servlets to incorporate themselves into a web page allows them to be easily reused within the context of many web sites. To facilitate this reuse they take parameters, passed in the form of HTML tags, that specify what each instance of the servlet is to do.
The servlet model can be used in a variety of web servers. We have chosen to use the Java Web Server (Error! Bookmark not defined.). The Java Web Server is written in Java and can run on a variety of platforms, including Windows 95/NT and many Unix systems. It is simple to administer remotely and easily extendable. One of the main modifications to the Java Web Server is the addition of the Student Information Object (SIO) to the server core. This object contains all the information relevant to a student: first name, last name, school ID number, password, email address, URL, and a general field that can be used for the different needs of courses (section number, group number, etc.). SIOs are stored in a database and used both by the server's authentication service and by the various servlets. The SIO can be extended to meet the needs of specific courses. Authentication in the MIDL Server is accomplished through the Basic Authentication protocol, a WWW standard supported by all browsers. Passwords are checked using Crypt, the same scheme as most Unix systems. For added security, the MIDL Server may be run over Secure Sockets, which encrypt the passwords while they are being sent from the requesting browser to the server. The default login for a student is his or her school ID number. Once a student has authenticated, he or she can choose to use an alias of his or her choice rather than typing in a student identification number. Students can change their alias and password at any time.
Database Options Each course uses its own database. This allows the instructor to add tables and queries to the database without affecting other courses. Students can give different information for each course in which they are enrolled; for example, a student might wish to receive email from different classes at different email addresses, or a student might want to have a different homepage for each course he or she is in. The main advantage of individual course databases is that each instructor can choose the type and location of his or her database.
Figure 1 The choice of database is possible because the MIDL Server communicates with the database through standard Java Database Connectivity (JDBC) drivers. These drivers are available for most databases, making the choice of database a simple one-line parameter in the course configuration file. This allows for a heterogeneous MIDL Server environment; the server can be running on one system, such as a Sun Ultra 2, and the database can be running on another system, such as MS SQL Server on Windows NT. Database access performance is improved through the use of a simple transaction processing monitor. This monitor keeps open multiple connections to the different course databases and attempts to balance the load on the different connections. One of the only requirements of the database is that the JDBC driver be thread safe.
Available Tools Within this framework we have written a set of generic servlets. Each servlet has a set of well-documented parameters that specify what the servlet should do and what the output format should be. For example, the file upload servlet has a parameter called FileName, which indicates the full path and name under which the uploaded file will be stored. This parameter can contain the strings ID, FIRSTNAME and/or LASTNAME in any combination;
Figure 2 these key words are replaced with the student's information. Good use of parameters allows the servlets to be reusable in a variety of web sites. All the generic servlets have an optional format parameter; this allows the designer of the web page to match the output of the servlet with the overall look and feel of the web page. Figures 1 and 2 show two different output formats of the same servlet, the StudentListing servlet. As a matter of security, the servlet tag and parameters are not viewable through a browser. At this time the following servlets are available: • ReadFile - searches a server based file for a pattern and displays any lines that match that pattern (e.g., to return a student's grades) • WriteFile - writes the contents of a web form to a file • UploadFile - uploads a file • RetrieveFile - retrieves a file specific to the student who requested it (e.g., to return a graded assignment) • StudentListing - lists all students in the course, optionally displaying email and URL information. • StudentInfo - allows a student to modify his or her personal information and password • Quiz - allows a student to take a multiple choice quiz. The result can be saved on the server and/or returned to the student after completion.
public class TestAssignmentServlet extends MIDLServlet { /** This method will respond to a post request **/ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // this stream writes to the web page ServletOutputStream HTMLout = resp.getOutputStream(); // Get the Student Information Object Student student = getStudent(req, res); String fileName = getFileName(student, req); // Get the name of the file (ID, LASTNAME, and FIRSTNAME String compiledFileName = fileName + ".exe"; // have been replaced w/ the student's information) String testCommand = req.getParameter("testCommand"); // get the command that the students executable is Process compile = Runtime.exec("gcc -o " + compiledFileName + " " + fileName); if (compile.exitValue() != 0) { HTMLout.println("Your code did not compile correctly"); } else { HTMLout.println("Your code has compiled correctly"); Process run = Runtime.exec(compiledFileName + " " + testCommand); if (run.exitValue() != 0) { HTMLout.println("Your code failed the test case."); } else { HTMLout.println("Your code passed the test case."); } } HTMLout.close(); return; } }
Figure 3 Course-specific servlets are easy to create; a base class MIDLServlet has been created that deals with the database connectivity and allows for easy access to the Student Information Object of the student who has authenticated. Creation of a new servlet is usually no more that a dozen lines of Java code. A commonly extended servlet is the automated grading servlet, useful in programming courses to compile and run each student's code (see Figure 3). An instructor or teaching assistant would extend the MIDLServlet to create a customized grading servlet. The final web page would have two servlets in it, the file upload servlet followed by the grading servlet. The first servlet would upload the file to a specific directory with a file name based on the student’s information. The second servlet would then compile the code and run it. The output would then be compared to a correct solution and the final result would be logged in file and displayed to the student.1 1
Any time code is being run on a machine, security issues must be addressed. Malicious code could damage an
A Real-Life Example Among the courses in which the MIDL Server has been tested are two database courses at Arizona State University. operating system or open a machine up for attack. Operating system level solutions exist to counter most attacks but are platform-dependent and in many cases require special privileges on the part of the user who is testing the program, in this case the web server. The Java programming language does much to help remove the possibilities of a malicious Java programs with its configurable security manager. The security manager can limit Java programs from reading or writing to the hard disk, creating socket connections to other computers, or executing any other programs. Still, the security risks are real and must be addressed; a malicious programmer with rudimentary knowledge of the web server host could do a great deal of damage. The inherent risk of automated grading must be considered very carefully.
CSE412 is an undergraduate course that provides an introduction to relational database systems. The course typically comprises about 35 undergraduates as well as 20 graduate students. CSE510 is an advanced database course with about 60 graduate students that covers advanced topics such as deductive, object-oriented, and distributed database systems. Both classes require that students submit assignments related to the expression and execution of database queries. The grading process in both classes involves the execution of the assignments by the teaching assistant. Prior to the use of the MIDL server, such assignments were submitted through the use of email. Email submission of assignments proved to be a quite unreliable as well as time-consuming. Some email submissions are always "lost" in the mail. Furthermore, even though students are reminded that they are allowed only one email submission, students invariably send multiple copies ("I found an error after I mailed the first copy!"). Multiple email submissions of the same assignment in large classes creates difficulty for the teaching assistant when extracting assignments from the mailbox. The MIDL server was quite easy to integrate into the existing home pages for both database courses. The use of the server also solved the problems with email submissions and made several other tasks related to class communication much easier. At the start of the semester, MIDL utilities are used to access the on-line university information about class enrollment to set up individual student accounts. Student email addresses are also initialized using the university registration information. At any time during the semester, students can access the student information link to change their individual information, such as their password or their email address. The teaching assistant also uses the MIDL utilities to access the class email addresses, in order to broadcast messages to the class. Unlike the email approach, students can submit the file multiple times before the assignment deadline and only the final copy is maintained. All files are uploaded to a specific directory where the files are automatically identified by individual student identifiers. The problems associated with email submissions, such as identification of assignments and extraction of multiple copies, are therefore eliminated, and the teaching assistant saves the time previously spent saving and naming the emailed files. All this was easily accomplished with no coding and very little extra work on the part of the teaching assistant.
Future Work Currently, a complete web site can be built using any commercial application and the required servlet tags can be entered by hand. Some web site creation tools, such as Netscape Composer, are extendible and allow for insertion of personalized tags, so that all the basic servlets offered by the
MIDL Server can be added to a web page without the need to edit the document by hand. There are Netscape Composer plug-ins for all the existing generic tools. We are working to automate the creation of Composer plug-ins for new servlets. This will allow the instructor to create a servlet and add that servlet to the tool bar in Composer with no additional work. At this point the output of the servlet can not be seen while working in Composer; however, we are also working to address this issue. The MIDL Server's feature of remote database access also allows instructors to enhance their web sites using third party software, such as O’Reilly Software’s WebBoard 3.0 (still in Beta version at the time of this writing). WebBoard offers students the ability to interact via threaded discussion forums and real-time chat using their web browsers. The MIDL Server can be set up to use WebBoard’s authentication database, allowing students to use the same login and password for both areas. Unfortunately, this couse of the database by both systems costs instructors the freedom of database and platform choice and the ability to modify and extend the information contained in the database.
Conclusion The generic tool base is continuously growing; as instructors create new course-specific tools that could be useful to others, these tools are promoted to the generic tool set. Currently the server is a bit slower than web servers written in C, such as Netscape FastTrack, but servlet performance gains make up for the lack of overall speed. As Java technology matures and computer hardware improves, the speed at which the server runs will approach that of servers written in C. The Java Web Server is still new; as the server evolves, new technologies will allow for even better tracking of students and offer greater possibilities of interaction.
Appendix MIDL Server homepage: http://www.eas.asu.edu/~webadmin Tools for Developing Interactive Web Courses: http://www.umanitoba.ca/ip/tools/courseware