P415/P515 Homework Procedures

This class uses Subversion (SVN), a version-control system for multi-person projects. We do not require all of SVN's functionality in this course; it just serves as a homework depository. To turn an assignment in, you will post ("up-load") a local copy of your work SVN. The instructor will also post grading information, which you can retrieve periodically by updating your local copy.

You will need to conform to a standard file organization for the homework, but you may also create additional directories for maintaining other activities relating to the course, such as presentations.

Homework Organization

The SVN repository contains a directory called class/ For each participant, there is a password-protected subdirectory class/logid/, where logid is your IUCS login name. class/logid/ is initialized with subdirectories 0/, 1/, ... 10/, and project/ for your homework assignments and course project.

Note: Homework assignment number n must be deposited in sub-directory class/logid/n

For a typical PVS assignment, you should post

  1. the .PVS and .PRF files.
  2. a PVS proof status file. One way to do this is to
    1. Open (M-x ff) X.pvs in PVS;
    2. Invoke either the command M-x status-proof-pvs-file, or the command M-x prove-pvs-file (which re-runs X.prf first).
    3. Save the resulting PVS Status buffer (C-x C-w as X.status)
  3. You can do your work in you working copy of the repository. Alternatively, you can do the work elsewhere and transfer it to your working copy.
  4. Important: For each file or directory you transfer into your working copy, you must inform SVN that it should be added to the repository by invoking svn add file, or svn add directory, respectively.
  5. No changes, additions, or deletions "take effect" until you invoke the command svn commit -m "your message here".

Example

There are on-line SVN user manuals on the web [HTM]. Chapter 2 (Basic Usage) covers the commands we need. In fact, the example that follows should be adequate for posting homework.

  • SVN reports everything that has been changed in the repository. You can also verify the content of your sub-directory, class/loginID/* through your browser.