To Teaching Classes

Summary of Software

This document summarizes the software associated with Web classes.
Software includes HTML code, Javascript, Perl scripts, csh scripts,
makefiles, fortran programs, and aliases.
Locations
The instructor software and web pages are pushed below the
instructor's public_html directory during setup. There are also names
added to the .tcshrc file in the instructor's home directory.
Most general software is located below the mechanical engineering
web page subdirectory
/home/e96/httpd/coedocs/departments/mechanical/courses/web
Some of the public relations stuff as well as some fortran programs
are located higher up, below
/home/e96/httpd/coedocs/departments/mechanical
Then there are two perl scripts in the cgi-bin directory
/home/e96/httpd/cgi-bin
to wit, backchat.pl and loglink.pl
Currently, whiteboards are written to Dr. Van Dommelen's directory
to reduce class setup time.
Protections
The file
/home/e96/httpd/coedocs/departments/mechanical/courses/web/restperm
will reset almost all file permissions if someone messed them up.
You may need to make the file itself executable, of course.
However, backchat.pl and loglink.pl in the system cgi-bin directory will
have to be reset by a user with system privileges (to o=rw).
Purpose
The template directory is used to set up web pages for new web courses.
Summary
The web course coordinator will cd to .../courses/web/template and read
the instructions in copyit.
Implementation
-
First the coordinator adds the course to .../courses/web/listing.html
-
Next the coordinator creates a file
.../courses/web/template/data/[course].ind from the generic.ind file
over there, (where [course] is the unique course ID, eg eml5060) and
edits [course].ind to have the course specific information sustituted
for the substitution strings.
-
Then the coordinator does cd .. and executes copyit as per instructions
in that file.
-
Then the instructor logs into his/her Unix account and executes the
command as printed out by copyit.
-
The following aliases will be created for the instructor:
- events, addlec: these commands are used to process archived videos.
- gotop, golec, gocrs, golog: these commands cd to the lecture notes,
the lectures, the top course directory, and the loglink writable directory.
- buttons: creates the buttons that load the lecture note pages.
If the lecture notes are specified as .gif, .jpg, or .pdf files,
the buttons command will also put an .html wrapper around them.
- buttonsall: runs the buttons command for all the .html files in the
current directory.
- buttonsl2h: runs the buttons command for the .html files
created by latex2html.
- presence: checks attendence of the web students. The instructor will
need to edit presence.ind in his/her year-specific directory to
create a list of student chat box IDs (each at the beginning of a line,
and terminated by at least one Tab character.) Otherwise presence will
only show who logged into the chatbox, but not who is missing.
- savebrd: script that can be run to save the whiteboard dumps.
-
The instructor will want to edit the syllabus below his/her year-specific
directory and make other changes as desired. The instructor will want to
bookmark the test.html page in the live directory and his/her main course
page, get a scanner and software set up, etcetera.
-
The coordinator will want to add bookmarks to the Presenter and TA PCs
in 226.
Contents
Purpose
The buttons command creates buttons for the lecture notes on the
live lecture web page. It also has the capability of wrapping images
inside .html files.
Summary
The instructor will change to the directory with the lecture notes,
possibly with help of the command "gotop" (go topics) and the issue
the command "buttons files_to_add". This will add the specified files
to a text file in the course's live/ directory called buttons.txt.
The instructor is then put into an editor to allow him/her to edit buttons.txt
and get rid of the buttons for notes that are no longer used. He/she can
also add mnemonics for the various lecture note slides at the start of
their lines if desired. Based on what is in the buttons.txt file after
the instructor exits it, the lecture note buttons will be created.
Implementation
-
The buttons command is an alias in the instructor's .tcshrc file.
It points to the shell script buttons in the courses live/ directory.
In other words, the template to the buttons script can be found in
.../courses/web/template/crs_dir/live/ and the actual one being executed
in the instructor's live/ directory. Change both if a bug is found.
-
If some of the files specified by the instructor are .gif, .jpg, or .pdf
files, buttons will put an .html wrapper around them and link that.
Contents
Purpose
Put all the .gif (respectively .jpg) files in a directory in their own
.html wrapper and index them in a file index.html. This creates an
index of scanned lecture notes. Note that the "buttons" command,
used to prepare live lecture lecture note buttons, has equivalent
functionality.
Implementation
-
The commented two scripts are in .../courses/web/bin
Contents
Purpose
Idx will create chapter indices of a specified set of HTML files. It
will also color-code them. It will also chain them together so that
you can read them in series without going over the index each time.
Implementation
-
Copy .../courses/web/bin/idx and .../courses/web/bin/idxdata/ to the
topics directory of the instructor's year-specific directory. Make
the appropriate changes in idx.
-
See the comments in script idx
-
The chaining is done by the Fortran program .../substi/chainit.f
-
Pat Hollis' Spring 2000 EGM 5444 class was indexed using idx.
Contents
Purpose
Gif2ps is an executable in the .../courses/web/bin/ directory that
converts gif pictures (up to about 575 pixels wide) into
postscript. These can then be included in TeX documents. Typically,
this is done by putting \hbox{\epsffile{file_specification}} in
displaymath mode. Under X-windows, the xv command does a better job,
though.
Contents
Purpose
.../courses/web/live.rpm determines from which server live video streams
are sent.
Contents
Purpose
Loglink keeps a record of what web pages the instructor loads during
class, and at what time. The purposes are:
-
During live lectures, it allows the web students to load the same web
page as the instructor is on by clicking a "catch-up" button, (the
"N" button on the live lecture page.)
-
During live lectures, it allows the instructor to load the next slide
in the series by simply cliccking the same "N" button. This works
as long as the next slide is a logical numerical continuation of the
previous slide name. For example, slide004.html will go to
slide005.html.
-
The recorded data are used to auto-load the web pages when the
archived videos are played.
-
The recorded data are also used to add links on the web pages to the
videos.
Summary
Although the instructor's live lecture web page looks like the
ordinary live lecture page, it is internally different. The buttons
on the instructor's page do not directly load the lecture notes.
Instead they request the lecture-note web pages from the script
loglink.pl in the system cgi-bin directory. Loglink.pl tells the
instructor's browser to load the web page, so the final visual effect
is the same. But loglink.pl also logs the time and name of the
lecture note page in a [course].txt file. This provides the data to
link archived videos to lecture notes and lecture notes to archived
videos. Further loglink.pl creates a [course.html] file that
redirects the students to the web page. In short, when the students
click the catch-up button during live lectures, it loads [course.html]
and that file in turn loads the web page the instructor is discussing.
Implementation
-
loglink.pl in the system cgi-bin directory receives and records the
instructor's moves. See its comments. Note that .pl scripts only
work if the first line is ended by a Unix end-of-line (^J), not
if its ends in a MS Windows style end-of-line (^M^J).
-
The original to loglink.pl as well as all supporting files are in
.../courses/web/loglink/
-
The records are appended to .../courses/web/loglink/writable/[course].txt
and the self-relocating HTML file is
.../courses/web/loglink/writable/[course].html
-
The call to loglink (in the courses ../live/buttons2.html) will be of
the form /cgi-bin/loglink.pl?name=[course]&url=URL where [course]
is the unique name of the course, eg, eml5060, and URL is the location
of the lecture note page. URL must be an absolute reference (starting
with http://..., but you should leave the "http:" away, so URL should
always start with //)
Contents
Purpose
Backchat is the program that runs the chatbox during live lectures.
It also keeps records of everything said in the chat box, and allows
the instructor to check attendance of the web students.
Summary
The live lecture page loads .../courses/web/backchat/[course].html
into an appropriately-sized frame. [course].html itself further
subdivides its frame into two: the top part is the input frame
[course]form.html and the lower part loads
.../courses/web/backchat/writable/[course].html (showing what people
have last said in the chat frame). Whenever people input data through
the top part, it is send to the script backchat.pl in the system
cgi-bin directory. Backchat.pl then adds their input to the chat
shown in the lower part, and refreshes their top part. The chat in
the lower part self-refreshes every 3 seconds to keep current when
other people chat. In order to identify the person who makes a
remark, (picture, E-mail address, web page, ...) backchat.pl uses a
user data file .../courses/web/backchat/data/users.fil that organizes
the data on all users by user IDs. File users.fil must be updated
whenever new users and instructors join.
Implementation
-
backchat.pl in the system cgi-bin directory receives the data input
using the top frame. See its comments. Note that .pl scripts only
work if the first line is ended by a Unix end-of-line (^J), not
if its ends in a MS Windows style end-of-line (^M^J).
-
The original to backchat.pl as well as all supporting files are in
.../courses/web/backchat/
-
In particular, the combined html page in this directory is in
[course].html, where [course] is the unique
name of the course, eg, eml5060. The (initially loaded) input box
is [course]form.html. Note that backchat.pl will overwrite that input box
after the initial login. The chat data html file is writable/[course].html
The cumulative records are in writable/[course].txt
-
The user logs in through [course]form.html by entering an assigned
user ID. This ID is kept hidden in the subsequent top frame HTML code
produced by backchat.pl and identifies who says what. In particular
if someone with ID my_ID says something, backchat.pl looks up the ID
my_ID in the data file data/users.fil and retrieves the HTML code that
identifies the user my_ID (picture, E-mail address, etc.) from it.
File users.fil also contains an indicator to identify whether a users
is an instructor or a student. The chatbox turns black when a
students enters something, and blue when an instructor enters
something.
-
In order for the instructor to take attendance for the web students, a
shell script presence/presence is provided. When called appropriately
(an appropriate alias is set up when a new class web page is created)
presence will search the last 200 of the records in
writable/[course].txt for who has logged in. Provided an appropriate
list of student IDs is provided, presence/presence will also check who
is missing and who was late. This list is a file presence.ind in the
instructors year-specific course directory. This file must be edited
to insert the web student IDs, one on each line. Put the student ID
at the start of the line and terminate the ID by one or more Tab
characters followed by the student's full name. See presence/presence
and the comments in the Fortran program it runs, presence/exe/exe.f
for more.
Contents
Purpose
Savebrd is a command that the instructor can issue to save the whiteboard
dumps.
Summary
To save the whiteboards, the instructor will have to mount his/her
Unix disk to the presenter PC. The instructor also needs to use telnet to
start a Unix shell and issue the "savebrd" command from that shell.
Then, during the lecture, the instructor needs to save the whiteboard
as 0.gif to the whitebrd directory under the course directory.
As soon as the instructor has saved to this file, the whiteboard will be
available full size to the web students. Also, after about 5 seconds,
the whiteboard will be copied to a file with a different number, so that
it will not be lost when the instructor saves the next board.
Implementation
-
Caution: it takes about 5 seconds before a saved whiteboard is really saved.
Do not terminate the Unix shell too quickly after the last whiteboard
has been saved. Also, do not save a new whiteboard too quickly after
another.
-
Feel free to save partial boards if the web students need to have them
full size.
-
The saved whiteboards can be seen in the directory listing.
Contents
Purpose
cut.bat and ins.bat are DOS batch files that are used to process archived
lectures. cut.bat cuts junk from the start of the archived video.
ins.bat inserts the links to the lecture notes into the video,
causing the lecture notes to load automatically at the right times.
Implementation
-
Copies of the batch files are at .../courses/web/dos (The file eml5060.NTP
is a Neato CD-label source file.)
Contents
Purpose
Uses the loglink data to make a list of when the instructor loaded the
various lecture note web pages. This lists is then used to auto-load
the lecture notes for the archived videos.
Implementation
-
The events command is an alias in the instructor's .tcshrc file.
It points to the shell script make_events in the course's lectures/ directory
below the year specific directory (golec will go there.)
The template to the make_events script can be found in
.../courses/web/template/crs_dir/year_dir/lectures/.
Change both if a bug is found.
-
The used loglink data are in .../courses/web/loglink/writable/[course].txt
and the created list will be, assuming it is July 4, 2001, 070401.txt
-
The script runs a Fortran program, .../courses/web/loglink/maketxt/maketxt.f
that does the actual reading and chacking and converting of the
[course].txt file
-
The events command can be run from the TA's Unix account, assuming
he/she defines an appropriate alias equivalent to the one in the
instructor's .tcshrc file.
-
By defining separate names, eg, events1, events2, ..., more than one
class can be handled by the same instructor/TA.
Contents
Purpose
Addlec finishes the creation of an archived video.
Implementation
-
The addlec command is an alias in the instructor's .tcshrc file.
It points to the shell script add_lecture in the course's lectures/ directory
below the year specific directory (golec will go there.)
The template to the add_lecture script can be found in
.../courses/web/template/crs_dir/year_dir/lectures/.
Change both if a bug is found.
-
Addlec first moves the lecture's video to last.rm in the top course
directory, renaming any video already there into last2.rm. Last.rm
can be retrieved by plain http (through a button under LIVE LECTURE on
the course web page), and is used by students that cannot access files
through the Real Server because they are behind a fire wall.
-
Next addlec makes a directory for the archived lecture and creates
the web page for the archived lecture in that directory.
-
Next addlec attempts to add the lecture to the lectures index.
-
Next addlec moves any whiteboard dumps to a subdirectory "dump" of
the lecture directory, and wraps them into HTML files and indices them.
-
Finally, addlec executes another script, links, in the same directory.
Links adds the GOTO drop down box to the archived lecture page to
allow the viewer to relocate within the video. Links also creates
a link from each lecture note page back to the archived video.
Links may also add executable files to the directories with the lecture
notes, in case the links have to be remade when the lecture notes
are remade.
-
In the archived lecture directory, archvid*.html loads the video at a
time that depends on the number indicated by the *. (Each number
indicates the loading of a different lecture note web page.) buttons.html
is the modified lecture notes buttons file, with buttons.bak its
backup. Events.txt is a copy of the list of links, index*.html is the
total web page, the * depending on the starting time of the video,
linkit.*.done are the shell scripts that were used to put the links to
the video in the lecture note file, location.rpm is the location of
the archived video on the Real server, and logo.html is just a logo.
-
Addlec *must* be run from the instructor's Unix account.
-
By defining separate names, eg, events1, events2, ..., more than one
class can be handled by the same instructor.
Contents
Purpose
Makes a CD from the class after the semester is over.
Usage
-
The file is in .../courses/web/bin/createcd
-
Only Netscape, not Internet Explorer, will run correctly on
a CD-Rom under MS Windows. And to do so you need to create a starting
cdinit.html file and a shortcut "Start" in the CD top directory. The
shortcut should open cdinit.html using Netscape. In the "Properties"
dialog, you need to specify the target as:
"C:\Program
Files\Netscape\Communicator\Program\netscape.exe" "/cdinit.html".
-
Unfortunately, links that omit "index.html" trailers from the URL
do not work when loading files from a CD. A URL such as
"topics/" will load a listing of directory topics/, not file
topics/index.html if you run from a CD. You need to hunt
the links for missing "index.html" specifications and add them back in.
Typically, you will want to look at user-modified files, such as
in the topics/ and lectures/ directories of the year-specific
course directory. substi/substiindex/substiindex will attempt to locate
likely missing "index.html"s, but use with care. Only accept changes
if you are sure they are right.
-
You will need to manually edit bin/createcd (after copying to a
different name of course), figure out what it is doing, and make
appropriate changes. The file is as used to convert EML 5060 in Fall
1999.
-
Note that some URLs go to the the CD, while other URLs are still loaded
from the Web. Make sure only the right links go to the CD.
-
Use an edited nomailto.ind and the "substi" program to get rid of
student E-mail addresses.
Contents
Purpose
Substi is a general purpose substitution program. It is used all over
the place in other programs.
Implementation
.../substi/substi substitutes one string by another in a file. The string
and its replacement must be consecutive lines in an input file. You
can have more than one pair in the input file. The latest version is
sensitive to trailing blanks, watch out.
Contents

To Teaching Classes