CSL: Policies: Academic Course Services

Each semester, the CS department provides disk space and other services for each CS course currently being offered. Instructors and TAs may want to familiarize themselves with these services to help make the transition to each new semester as seamless as possible.

Course renumbering: Effective for the Fall 2012 semester, Duke Arts & Sciences has renumbered courses; please see this Course Renumbering page for details. In addition, the CS department has transitioned to use of compsci rather than cps for course naming, and this is now reflected in our naming conventions for course URLs, directories, permission groups, mailing lists, etc. This page has been updated accordingly.

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; e.g., programs, homework submissions, etc.
/usr/project/cwd/
The Course Web Docs (cwd) filesystem is intended for course websites.
/usr/project/coursearchive/
Contents of the courses/ and cwd/ filesystem from prior semesters are archived here indefinitely. Announcements are made via e-mail around the end of each semester, and then around 1-2 weeks after the end of the semester, the directories are migrated.

Instructors and TAs should perform any maintenance on files in these areas before they are moved to coursearchive/. This might include: removing object files, temporary files, personal information; adjusting permissions; etc.

Contents of coursearchive/ 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. /usr/project/courses/fall12/compsci091/, /usr/project/cwd/spring13/compsci515/, /usr/project/coursearchive/cwd/spring09/cps149s/. The courses/ directories are also symlinked into the top-level directory, so the directory for the current semester CompSci210 class can also be found at

/usr/project/courses/compsci210/

The cwd/ partition employs 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 2012 semester directory can be found at

/usr/project/cwd/compsci210/fall12/

(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 is made the owner of the directories for that course.

Course permission group

Each course directory is assigned a Unix permission group, with group read/write permissions enabled. These groups are intended primarly for the sharing of files between each instructor and their TAs (and UTAs), though in some circumstances may be used to share files within the class. By default, TAs for a course are added to that course's 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 may contact the Lab Staff for changes to the group membership or directory permissions.

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

Note: Course groups now include a suffix to indicate fall, spring, or summer semester; this supports the creation of groups for the next semester before the end of the current semester without conflict.

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

% getent group compsci210.sp
compsci210.sp:*:6021:hewner,rcd
% getent group | grep compsci210
compsci210.fa:*:6002:chase
compsci210.sp:*:6021:hewner,rcd

Commands such as these can be used to set access:

% cd /usr/project/cwd/fall12/compsci330
% chgrp compsci330.fa newfile
% chmod g+w newfile

Course accounts

Instructors and TAs can request term accounts for UTAs or class members, assuming that they don't already have CS computer accounts. (Anyone registered as a Computer Science first or second major or minor should already have a CS account, please check!)

Course mailing lists

A default mailing list is set up for each course: simply create the file MailingList in your courses/ directory, and add one e-mail address per line using any text editor. For example:

/usr/project/courses/fall12/compsci210/MailingList

The e-mail address of this mailing list is: compsci210@cs.duke.edu. Additional lists can be set up upon request; e.g., compsci210-staff.

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 be able to read the file.

Course bulletin boards, wikis, etc.

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

Wikis and other communication methods can also be set up for classes. Please contact the Lab Staff for more details. In addition to local wiki support, Duke has added wiki support. See wiki.duke.edu for more details. For course management software, Blackboard is no longer available at Duke; please see Sakai@Duke: sakai.duke.edu.

Online assignment submission

Many instructors are now using the Ambient system for course assignment management and submissions. Please see the online documentation for details.

Upon request, Submit/Listen binaries can be built for each course by the Lab Staff. This is an old system, and is depricated. Please see the online documentation for details.

Note: Make sure the submit directory does not have world read permission, which would 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.