Managing Class-course Lockers for Instructors and TAs

Description

Instructions for performing the administrative tasks involved in teaching a course using features of the UCSC UNIX system. These instructions assume familiarity with basic UNIX commands and AFS access control lists (permissions).

Once you have read the introduction, feel free to jump around in this document. If you need to perform a particular function, such as updating a class list or contacting a student, go directly to the appropriate section for instructions, rather than trying to learn all of the separate functions at once.

If something is not clearly described below, or if you need something that isn't described here, feel free to contact ITS. We realize that different instructors have different needs for their classes, and ITS is here to help you work out the details. Instructors and TAs can contact the ITS Support Center.

Introduction

We start by defining the terminology used in this handout, then we describe how ITS sets up a course under UNIX. We also list some of the additional resources provided by UNIX that an instructor might find helpful.

Some definitions

Course:
What is described in UCSC's catalog. It has a long name (e.g. Political theory and power), and a short name (e.g. poli101). The course exists as long as it is listed in the catalog.

Class:
An instance of a course. A class is a course taught in a particular quarter. A class exists only during a single quarter.

Locker:
A directory that can be used with any of the platforms supported by ITS/UNIX (e.g. the compute server unix.ucsc.edu). There are usually two lockers associated with each course: a course locker, and an optional class locker.

The course locker contains material that the instructor uses from year to year to teach their course. The course locker remains even after the class has ended. The name of the course locker is the short name of the course as listed in UCSC's catalog followed by the initials of the instructor. All course lockers are located in /afs/cats.ucsc.edu/courses. Course lockers may contain web pages in their public_html directory (and in some cases that's their only use).

The class locker contains material that can be discarded after the quarter is over, and the student evaluations have been turned in. The name of the class locker is the same as the course locker but with a suffix added to it reflecting the quarter and the year (e.g. .f00, .w01, and .s01 for Fall 2000, Winter, and Spring 2001. All class lockers are located in /afs/cats.ucsc.edu/class. The class locker for the current quarter can also be attached to /cats/coursename-fl.hwk.

If this doesn't fit the need, we can provide other variations.

List:
A list of account names and/or other lists (i.e. a list may contain another list). A list can be used to send e-mail to many people at once, or as a group or both. To modify the list, whether attributes or membership, use either the listmaint or the blanche programs. Listmaint works from a menu and can change one member at a time. Blanche works from the command line and can make changes in batches, using files containing the list of members.

The blanche and listmaint commands are only found on unix.ucsc.edu.

Moira:
A database that holds information about accounts, groups, mailing lists, and other administrative areas. Listmaint, mailmaint, and blanche are programs that make changes in the Moira database.

The blanche, listmaint, and mailmaint commands are only found on unix.ucsc.edu and meow.

Administrators:
The people responsible for maintaining the course and class lockers. This includes the instructor of the course, and may also include the TAs at the instructor's discretion.

Permissions:
Permission settings control WHO may do WHAT to the files in a directory. The "who" is determined by username, or groups of users. The WHAT is "lookup" (list files), "read," "insert," "delete," "write," "lock," and "administer." Groups of users are managed with listmaint. Permissions are set for users and groups with AFS commands that begin with "fs".

How ITS sets up course lockers and lists

First, ITS creates a list named coursename-fl-admin; the owner is the instructor. The owner controls who is on the list--they need to add themselves to the list, and their TAs if desired. This list is for the administrators of the course. The list can become a mailing list if desired, use listmaint to add that capability. All of these lists are also groups, which are used in setting access permissions on various directories.

Second, ITS creates a list named coursename-fl; the owner is the list coursename-fl-admin. The members of coursename-fl-admin are the administrators of coursename-fl, and therefore can change the attributes and membership of coursename-fl. This list is also a UNIX group, and can become a mailing list if desired. The administrators will add all the students in the class to coursename-fl using a list from the Office of the Registrar.

Third, ITS creates a locker named coursename-fl in /afs/cats.ucsc.edu/courses. The locker contains a directory called public_html for publishing web pages. The owner of the locker is the instructor. This locker will stay around forever, and is intended to store the course material. ITS asks that you don't let the students write into this locker but we can't stop you if you do. The instructor can make the locker writable by the group coursename-fl-admin so that any administrators can write into it as well.

Fourth, if requested, ITS creates a locker named coursename-fl.w05 in /afs/cats.ucsc.edu/class (the suffix reflects the quarter the class is taught). For the current quarter, the locker can also be attached to /cats/coursename-fl.hwk; the owner is the instructor. The instructor can make the locker writable by the group coursename-fl so that any member of the class can write in it. When the quarter is over ITS will start nudging the instructor to empty it out so that we can delete it, and recover the disk space.

There are some scripts for managing homework such as submit and others. The explanation for how to use these is described below. These scripts assume things are set up as described above; that is, the students are listed in the coursename-fl class list, and that the coursename-fl.hwk locker is writable by the coursename-fl group.

Other UNIX resources

Some classes use local newsgroups for communication among the students, instructor, and TAs. Use the local newsgroup request form to set up a newsgroup for your course.

If you want to communicate with the students by e-mail then you can make the coursename-fl list a mailing list with listmaint and mail to it; and everybody on the list will receive the mail.

The listmaint command is only found on unix.ucsc.edu.


Quick Reference

How names are formed

Faculty create coursenames when they originally request the course locker. We suggest using the same abreviation as the Registrar's schedule of classes.

The course locker is permanent, and its name is equal to the coursename followed by a hyphen and the instructor's initials. There is usually one locker per faculty, per course.

The class locker is temporary, and its name is equal to the coursename followed by a hyphen and the instructor's initials, followed by a three letter code denoting quarter in the form qyy. f00 is equal to fall 2000.

To request a locker

Complete the Course Locker Request Form

To accept homework (administrators only)

From any AFS locker on any UNIX machine:

  % accept_homework coursename assignment

For example:

  % accept_homework cmps12A-fl hw1

The owner of the locker (i.e. the instructor) must issue this command the very first time it is used for a specific locker. Thereafter anyone in the course admin list (i.e. the TAs) can use the command.

To stop accepting homework (administrators only)

From any AFS locker on any UNIX machine:

  % noaccept_homework coursename-fl assignment

For example:

  % noaccept_homework cmps12A-fl hw1

To submit homework

From any AFS locker on any UNIX machine:

  % submit coursename-fl assignment file(s)

For example:

  % submit cmps12A-fl hw1

To see homework (administrators only)

From any AFS locker on any UNIX machine:

  % cd /afs/cats/class/coursename-fl.qyy/assignment

For example:

  % cd /afs/cats/class/cmps12A-fl.f01/hw1


How to administer teaching assistants and graders

We show below how to use blanche to change the group membership of TAs and students; the same can also be done interactively one at a time with listmaint. It is up to you to decide which method you prefer.

The blanche and listmaint commands are only found on unix.ucsc.edu.

Graders require the same group membership as TAs in order to read the class (homework) locker.

Granting administrative permission

To add a TA to the group that owns the course locker, use the command:

  % blanche coursename-fl-admin -add username

where username is the TA's UCSC/UNIX login name.

Removing administrative permissions

To delete a TA from the group that owns the course locker, use the command:

  % blanche coursename-fl-admin -delete username

where username is the TA's UCSC/UNIX login name.


How to maintain a class list

There are usually two lists associated with a class. The first is the master list, a regular unix file editable with your favorite editor, such as vi, or pico that contains the login names of every student in the course, one to a line.

The master list can be created from information created by the NES system. When you request to get the Narrative Evaluation System (NES) for your class electronically, it will include the e-mail addresses of all the students taking your class.

The second list is the class group list as maintained by listmaint or blanche. The two lists should be identical virtually all of the time but, for administrative reasons it is easier to keep them separate. The class group list can be used as both a mailing list and a UNIX group.

The point of the master list is to make it possible to update the class group list in batches using blanche instead of listmaint.

The blanche and listmaint commands are only found on unix.ucsc.edu.

Creating and maintaining a master list

The master list is usually kept in a subdirectory of the class (homework) locker which is writable by just the owner, and the administrators. It can be edited with vi, and a reasonable effort should be made to keep it up to date. This handout assumes you've named the file master, but it can be named anything you want.

Adding students to the class

To add a student to the class, add their name to the master list, then update the class group list from there. See "update" below. The changes may take up to two hours to completely take effect.

Deleting students from the class

To delete a student from the class, remove their name from the master list, then update the class group list from there. See "update" next. The changes may take up to two hours to completely take effect.

Updating the class group list

To update the class group from the master list, use the command:

  % blanche groupname -file master

where groupname is usually the name of the course locker, and master is the name of the master class list. The changes may take up to two hours to completely take effect.


How to maintain the course locker

The course locker is the central area for files for the class. By default it belongs to the instructor and is writable by members of the group coursename-admin. That group may already have the instructor in it--please see Granting administrative permissions for more information about how to let TAs set it up.

If sparcbin and man directories are not needed, that is, the lockers are not for a programming course, but perhaps used only for web page creation, the lockers can be accessed by

  % cd /afs/cats.ucsc.edu/courses/coursename-fl

Making web pages available to students

Web pages should be placed in the public_html directory of the course locker (/afs/cats.ucsc.edu/courses/coursename-fl). The pages placed therein are immediately visible on the web at this URL:

  http://www2.ucsc.edu/courses/coursename-fl/

(the trailing slash is mandatory, until mid-Fall 2000 when the server upgrade will handle missing trailing slashes correctly).

By default the public_html directory is publicly readable; if you want to restrict its access to campus network users, or by password, create a .htaccess file. The files you place in public_html will inherit the permissions of the directory as set by the locker administrators, so there is usually no need to modify them.

Making text files available to students

Text files should be placed in the main directory (or in subdirectories) of the course locker (/afs/cats.ucsc.edu/courses/coursename-fl). The directories should be readable by the group coursename-fl. The files will inherit the permissions of the directory as set by the locker administrators.

To check the access control list of a directory (i.e. who can access a directory), type:

  % fs listacl directoryname

Here is an example:

  % fs listacl /afs/cats.ucsc.edu/courses/coursename-fl
  Access list for coursename-fl
  system:coursename-fl rl            [rl means "read" and "lookup" (list)]
  system:coursename-fl-admin rlidwka    [rlidwka means all rights]

Subdirectories created in coursename-fl will inherit the permissions of the parent directory, and therefore be readable by the group coursename-fl. If you want to remove the read permission of the group coursename-fl from a subdirectory of the course locker give this command:

  % fs setacl subdirname coursename-fl none


How to maintain the class (homework) locker

The class (homework) locker for a course is named coursename-fl.hwk and stored in /afs/cats.ucsc.edu/class/coursename-fl.w01 (the suffix indicates the quarter the class is taught). It has the same characteristics as the course locker. It has two main purposes: the first is to collect homework assignments, and the second is to let students store files, if they need more room that what their quotas allow.

How to accept homework

To start accepting an assignment in the class (homework) locker, use the command:

  % accept_homework coursename-fl assignment

The assignment can be a name, a number, or a combination of the two. It should only consist of numbers and letters, however: do not use punctuation marks.

The owner of the locker (i.e. the instructor) must issue this command the very first time it is used for a specific locker. Thereafter anyone in the course admin list (i.e. the TAs) can use the command.

How to stop accepting homework

To stop accepting an assignment in the class (homework) locker, use the command:

  % noaccept_homework coursename-fl assignment

How students should submit homework

Students submit homeworks with the following command:

  % submit coursename-fl assignment file(s)

Submitting a second time overwrites the first submission, so students can use this command as many times as they wish.

How students can look at homework already turned in

Students can see the homework they've already turned in with the following command:

  % peek coursename-fl assignment

A sample script to print homework

Shell scripting is useful to know, but like many things about UNIX, it's often a lot easier to learn by following an actual example. The script below prints all the files that have been submitted as assignment one to the class cmp101 to the printer -Pmo_lab.

Although this is presented as a script, the same sequence of commands typed at the keyboard will have the same effect (provided the C-shell is your default shell).

  #!/bin/csh
  cd /afs/cats.ucsc.edu/class/cmp101.w01/one
  foreach student (*)
    cd $student
    lpr -Pmo_lab *
    echo "Done with $student"
    cd ..
  end

Briefly, this script changes directory into the proper assignment directory (for assignment one), then enters a for-loop. The * in the parentheses means "everything in the current directory", so the loop goes through once for each item in the directory, with $student set to equal the current item.

Note that in the loop, we change into the current student's subdirectory, do what we need to do (i.e. print), and then change back to the directory we started from. If you forget to reset the directory back to where you started, the results can be confusing.

The directory containing the script must be readable and executable to the user attempting to run it.

To actually run the script, just type its file name and press the RETURN key.


How to Contact students

Mail

To send mail to an individual student, use the command:

  % mail username

or use pine username.

To send mail to the entire class, use the command:

  % mail coursename-fl

or use pine coursename-fl.

The class newsgroup

If a newsgroup has been requested, a USENET newsgroup exists for the class. The name is usually ucsc.class.coursename-fl, and it can be accessed with the normal news commands or newsreaders (Newswatcher, FreeAgent, or Mozilla. To read the newsgroup from the command line type:

  % rn ucsc.class.coursename-fl

To post a message of your own:

  % Pnews ucsc.class.coursename-fl

Matching real names to login names

There is actually a white pages service under UNIX. If you use the command:

  % finger username/name

You get a listing of all the users with that name and their phone numbers, if they have allowed it. The name can be either a first name or a last name or a user name. Or you can use the web search form.


Need more help?

For general help, please contact the ITS Support Center . For more specific course/class locker information, please contact Instructional Computing.


Credits

Tim Kolar
Jacques Delsemme
Jim Haynes