Updated 3/27/1998 By Brad Cox
This explains the web-based infrastructure that supports the Taming the Electronic Frontier course. The intellectual property contact that was negotiated when I began this work specifies that this work is the property of George Mason University so long as I remain with this university and reverts to me should I leave. Mike Morrisey, GMU's copyright director, can provide contractual details.
This infrastructure is designed as a general-purpose coordination tool, capable of coordinating structured activities within academic or industrial settings. It has been applied to several courses and, in a limited and incomplete way, to managing student enrollments for the MS in Organizational Learning degree program. The web-based student assessment techniques used in this course have been reviewed by Donna Potter (a student) in Evaluation Methods Used in Web-based Instruction and the Online Course, Taming the Electronic Frontier. Ê
This document is best read using two browser windows, one to read this document and the other to explore the course. To open this course in a new window, click this link. Then click the "Virtual School Entrance" button that will appear then, then the "TTEF" button to enter the course as a visitor. Continue reading this document in the original window.
Please do this before proceeding. The hotlinks that follow assume you've logged in as a visitor via the above instructions, which will install a temporary visitor's pass, called a "cookie", in your browser. The following hotlinks won't work if you've not done this or if the login process fails to install a valid cookie. If the program fails it will present instructions on how to proceed.
The course infrastructure consists of twenty computer programs written in in the perl programming language. These programs are run on behalf of the web server via a standard interface called CGI (common gateway interface) when a URL ending with the extension .cgi is received. The entire course is mediated by these programs; the only static html document is the course entry page. This is the page that is displayed when you visit the URL http://virtualschool.edu/now.
Only three of these twenty cgi programs are used by students. The rest are inaccessible to students and are used for grading and administrative personnel. One of these programs, nph-CGI.cgi, provides the source to these programs online to students who are interested in learning how to develop CGI programs on their own. You may use this tool to browse the directory and class hierarchies but access to the actual source files is restricted to registered students.
Publicizing source to students in this manner isn't the security risk it may seem. The browser doesn't allow access to private student information, and there are no student accounts on the virtual school machine. The program is written so that unregistered visitors cannot access source and the class and directory hierarchy doesn't expose enough informaton to be a security risk.
The four programs that form the backbone of the course are explained below (use the hotlinks to see what they do):
Perl is a serviceable object-oriented programming language and object-oriented features like encapsulation and inheritance have been used quite heavily. The registration record of each person is an instance of the Person class. Each course is an instance of the Course class, and so forth. Inheritance organizes such classes into hierarchies. For example, Person and Course are both subclasses of Entity. This is in turn a subclass of Object which is the base class for all classes in the system.
Since no funds were available to buy a commercial object-oriented database, the Object class provides methods whereby instances can maintain their state between sessions as unix files. This is hardly optimal for computer performance. But performance has never been a priority because performance has not been a problem with the maximum enrollment to date, 100 students. Several simple optimizations are available that should at least double the number of students per server without redesigning the programs (FastCGI, using Perl databases in lieu of flat files, etc).
Userland Frontier would have been better choice, had it been portable when this work began. Now that it is available on Macs and PCs, we should consider switching.
The unit of internal reuse in the TTEF course is a task. Each task is a self-standing unit of instruction and learning that is delivered to students as a sequence of web pages. From the task author's perspective, each task is text file that the author divides into pages with specially marked lines of text that define the title for each page.
The contents of each page is not static data but a computer program written in the Perl programming language. Since most task pages simply deliver static instruction, most of such programs simply print HTML text. For example, this is the entire first page of the skills assessment task in which students report on their educational level and inventory the skills they bring to the class:
##Background and Interests print qq[ <p> This task gathers information I'll need to tailor this course to the diverse needs and interests of this distributed learning community. It uses the same web-based task infrastructure that we covered in the previous task and thus works exactly the same way. It should take about an hour to answer these questions. This tool will present your answers where other students can read them. ];
Students register for the course by completing a web-based registration form in the last page of the course syllabus. Separate instructions are provided for for-credit (who register and pay fees in person with the GMU registrar's office) and not-for-credit students (who register and pay fees electronically by entering a credit card number into a secure web form).
In both cases, the next step is to register the name and password that is used to authenticate them throughout the course. They do this by completing a web-based form that collects their name, address, phone numbers, email addresses. The program that process this form creates a object-oriented database record, keyed by the student's name. This database is managed, at the lowest system level, as text files in a unix directory that students think of as their "locker".
...more to come