The WWW access mechanism to Ceilidh was implemented jointly by the Computer Science Department at the University of Nottingham and the Maths and Science Centre at Ngee Ann Polytechnic.
Using "Netscape", first select the Ceilidh home page on the WWW. The page at your site may have a different URL. This page displays the current Ceilidh system general "message of the day" (set by the Ceilidh system manager) and offers various facilities.
It offers hyper-links ("hot spots") to several general Ceilidh text files. These include user guides to Ceilidh for students and teachers, and an overview of its design. [The current versions are mostly in crude preformatted ASCII, but HTML versions will be installed as soon as possible.] All of these files are relevant to Ceilidh generally, not just to a particular course within Ceilidh. The "Student Guide" and "Overview 1996" files will be of most general interest.
It offers access to a selection of the courses currently available. Through these you can see course and unit notes, and details of the exercises.
You are now in a specific Ceilidh course. The screen will display the course "message of the day" (set by the course leader) and will offer the following facilities.
The next ("unit level") screen offers the following facilities.
The new ("exercise level") screen offers the following facilities.
Submission of your program causes Ceilidh to perform various operations. It keeps a copy of your program, compiles and marks it (see the Student's Guide for details of how it is marked), and keeps a copy of the marks awarded. It then brings a new ("submission") screen showing the following.
1. The dates and times of your most recent submission to this exercise.
2. The dates, times and marks awarded of your previous submissions to this exercise.
3. The results of Ceilidh's marking of your program. See the Student's Guide for more details of what the marking output means.
If the results indicate a perfect submission (for example "Overall mark awarded" over 90, or "Overall grade awarded" of A or B or C) you may leave Netscape now. Otherwise you should return to the previous screen, and correct (edit) the program to submit it again. Alternatively you could leave Netscape completely while you plan the corrections you will make, and return to Netscape and choose the same exercise at a later time.
The initial screen is in the HTML file "~ceilidh/index.html" (by "~ceilidh" we mean the Ceilidh username's home directory) referred to by the CBT WWW server as "cbt.np.ac.sg/ceilidh".
Note: Most of the screens you see are generated by CGI scripts. They are not in ordinary static HTML files. You will have to search carefully through the CGI scripts to find items of text which need amendment. You may need to understand the operation of CGI shell scripts.
The list of available courses must be set up by editing this file "~ceilidh/index.html". It is not automatic.
The "Go to course" button on "~ceilidh/index.html" uses an HTML
form to activate the CGI shell script in
file "course.cgi" in an appropriate CGI permitted directory
(using "method=post" and passing details of the
student's name [identified by "Name="], ID ["Student="], password
["Password="] and requested course ["Course="] on standard
input). For the present crude implementation, a file
"~ceilidh/course.
The "course.cgi" shell script generates an HTML page (the course
level page) which includes a form which activates the unit level
"~ceilidh/bin-cgi/unit.cgi" shell script.
Within the "course.cgi" script,
the student's full name is stored in the shell variable NAME,
the ID in STUDENT,
the password in PASSWORD,
and the course name in C_COURSE.
Following Ceilidh conventions, the variable C_COURSED
is set to point at the directory for the current course.
The list of unit
numbers and titles is generated by "course.cgi" during execution.
It searches for "unit.*" directories,
and shows their number and title.
If it finds no units at all,
a "course under development" message is displayed.
The number of the chosen unit is passed to the script [identified
by "Unit="], together with the previously entered ID and chosen
course.
The "unit.cgi" script again generates an HTML page (the unit
level page), which in turn includes a form activating the
exercise level "~ceilidh/bin-cgi/ex.cgi" shell script.
The unit number is stored in the shell variable C_UNIT,
and the unit directory pathname in C_UNITD.
The
exercise names and titles are generated by "unit.cgi" during
execution.
[Perhaps if it finds no exercises,
we should display a "unit under development" message.]
The hyper-links to the unit notes are arranged so that
HTML notes in "notes.html" are used if available
(viewed using the script "vn.cgi").
Otherwise the plain pre-formatted ASCII notes
in "index.cat" are accessed with a simple
hyper-link.
The HTML notes can include hyperlinks to exercise solution
if required (see below).
This time the input data and the
number of the chosen exercise ["Exercise="] are passed over to
"ex.cgi".
The "ex.cgi" shell script in turn generates an HTML page
including a form activating the "~ceilidh/bin-cgi/solve.cgi"
shell script.
The exercise name is stored in C_EX,
the the directory pathname in C_EXD.
The form includes the program skeleton (or a
retrieved copy of the most recent submission if the student has
already submitted). The program is an HTML object
of type "text area", and is passed
over using the identifier "Program="; all such data is subject
to many text conversions, all special characters are converted
to hexadecimal in the form "%2B" for the character "+".
"ex.cgi" looks for interesting
files which may be of interest to set as hyper-links, including
the program skeleton, the test data, etc. It should be possible
later to read details from the exercise "setup.act" file (the
setting up actions in the student menu of Unix Ceilidh) to decide
which files to view.
If the "ex.cgi" script finds a "model.cgi" file in the exercise directory,
it executes that instead of completing the "ex.cgi" execution.
This means that exercise menus can be personalised to that particular
exercise.
The "model.cgi" should consist of the code from the point in "ex.cgi"
at which it searches for the existence of "model.cgi" onwards.
There is an example in course "c" unit "2" exercise "ccl",
i.e. in the file "~ceilidh/course.c/unit.2/ex.ccl/model.cgi".
[Perhaps we should have a similar system for personalised unit
pages.]
The "solve.cgi" shell script converts the program to the proper
characters (using the stream editor "sed"),
and stores it in the exercise solutions directory
("~ceilidh/course.?/unit.?/ex.?/solns") under the name
"
The "vn.cgi" script is for viewing the HTML notes for a unit.
It replaces the string "$STUDENT" in the notes by the current
student ID, so that the exercise knows who is executing it.
For examples of how to refer to exercises from within the notes,
see the file "~ceilidh/course.c/unit.2/notes.html".
Each CGI script starts with extensive code to set the environment
and pick up the arguments passed to it. The code is the same for
all scripts, and differs only in the identification of the
arguments. They are so written that they work with both
"method=get" and "method=post" techniques. The particular code
for a particular script should be looked at following the line
Copyright
Eric Foxley.
ID:password:full name:date of first access:your IP address
A new line is added if the given ID has not been encountered
before. This is a temporary arrangement; a more formal system
will have too be inserted later.
case $KEYWORD
and then the line with the
AtEnd )
case itself. This determines the actions to take after all the
arguments have been read.