CSL: Policies: Academic Course Services

Each semester, the Lab Staff provides directories for each course in addition to several other services. Instructors and their TA's are advised to familiarize themselves with this process to make the transition to each new semesters as seamless as possible.

Course Filesystems

There are several filesystems associated with each course, each intended for a specific purpose. The top-level filesystems are as follows:

/usr/project/courses/
This filesystem is for course work, eg, programs, homework submissions, etc.
/usr/project/cwd/
The Course Web Docs (cwd) filesystem is intended for course documents made available on the web.
/usr/project/coursearchive/
Past contents of the courses and cwd filesystem are archived here indefinitely. Contents are moved, after an announcement is made, at the end of each semester. Contents of this filesystem are read-only; if content must be modified, please contact the Lab Staff.

Individual courses within these directories are located under semester directories, e.g. fall05, spring06, summer07. The courses directories are also symlinked into the top-level directory, so the directory for the current semester CPS110 class can be found at

/usr/project/courses/cps110

The cwd employ a slightly different linking strategy: the top-level directory contains directories for each class which in turn contain links for all past and current semesters. For example, the Fall 2005 semester directory can be found at

/usr/project/cwd/cps110/fall05

While somewhat obscure, this system has persisted for some time due to historical reasons and faculty preference. In each case, the instructor of the course (as noted in the files /u/dept/schedules/sched???) is made the owner of the directories for that course.

Course Permission Group

Each of the above directories are assigned a UNIX permission group, and the group read/write permissions are enabled. This group is intended primarly for the sharing of files between the instructor and their TA's (and UTA's), though in some circumstances may be used to share files within the class. By default any listed TAs are added to the group. If you do not want your TA to have read/write access to any of these directories, please make sure to use the chgrp and chmod commands as needed. Alternatively you can contact the Lab Staff for changes to the group membership.

Note: each user should be aware of the group permissions on their files. Files must have group write permission enabled in order for other within the group to modify them.

The current status of the group can be determined using the getent command.

% getent group cps110
cps110:*:1110:angela,carla

Commands such as these can be used to set access:

% cd /usr/project/cwd/fall05
% chgrp cps130 newfile
% chmod g+w newfile

Usually, this will have already been done.

Course Accounts

Instructors can request term accounts for TA's, UTA's or general class use.

Course Mailing List

A default mailing list is set up for each course: simply add one email address per line, to the file MailingList in your course directory. For example:

/usr/project/courses/fall05/cps110/MailingList

The email address of this course list is: cps110@cs.duke.edu. Additional lists can be set up upon request.

Note: the MailingList file must have world-read permission in order to work. Additionally the enclosing directories must all have the world-execute bit set, in order for the mail server to read the file.

Course Bulletin Board

Course bulletin boards are available for each class; most 100-level classes are already set up, others are available upon request.

Submit/Listen

Submit/Listen binaries are built for each course by the Lab Staff. Listen processes are normally run on the host submit.cs.duke.edu and should have a crontab entry to ensure the process is always active. Binaries are also built for the ACPUB systems.

Note: make sure the submit directory does not have world read permission! This allows anyone with a CS account to read the submissions of others.

If you have any questions, or have a problem with your course setup, please let us know.