There are several filesystems associated with each course, each intended for a specific purpose. The top-level filesystems are as follows:
Individual courses within these directories are located under semester directories, e.g. /usr/project/courses/fall09/cps001/, /usr/project/cwd/spring10/cps215/, /usr/project/coursearchive/cwd/spring05/cps149s/. The courses/ directories are also symlinked into the top-level directory, so the directory for the current semester CPS110 class can also be found at
/usr/project/courses/cps110/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 2009 semester directory can be found at
/usr/project/cwd/cps110/fall09/(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.
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.
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/fall09/cps130 % chgrp cps130 newfile % chmod g+w newfile
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!)
A default mailing list is set up for each course: simply create the file MailingList in your courses/ directory, and add one email address per line using any text editor. For example:
/usr/project/courses/fall09/cps110/MailingListThe email address of this mailing list is: cps110@cs.duke.edu. Additional lists can be set up upon request; e.g., cps110-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 are available for each class; most 100-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. And, of course, Blackboard@Duke is available, please see blackboard.duke.edu. And, Blackboard's replacement, Sakai: sakai.duke.edu.
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.