Due Dates

All assignments are due at 6:15pm on the specified due date. Do not leave assignments until the last minute. Most of them will require a significant amount of design or planning time before you begin programming.

If there is a reason that you cannot turn in the assignment on time, please talk with me before the due date. Late assignments will receive a penalty of 20% of the total points possible for the assignment and must be completed within a week of the original due date. Assignments that miss the one week deadline will receive a grade of 0.

Submission Format

Assignment submissions must be emailed to me. The e-mail must include your name (all the names for group projects), the assignment number, and the due date. The submission should be attached to the e-mail. If the submission consists of multiple files, it must be emailed as an archive in tar format. The name of the archive file should include your username and the assignment number. The files should unpack into a directory whose name is the same as the filename of the tar file, minus the .tar suffix. For example, to create a submission for assignment #2 for user username:

$ tar cvf username-as2.tar username-as2 

The "c" (Create) option tells tar to create a new archive, while the "f" (File) option tells tar to create the archive with the name following the "f" (in this case, username-as2.tar). The "v" (Verbose) option provides verbose output, which will include the pathname of each file as it is included in the archive. The last argument (username-as2) is the name of the directory containing files to include in the archive.

To extract files from the archive to verify that everything is correct, you would use the "x" (eXtract) option to tar:

$ cd /tmp
$ tar xvf username-as2.tar 
$ ls -al username-as2 

Compiled program submissions must include a Makefile, as well as any source files, test files, and documentation that was required. Be sure that you can unpack your submission with tar and build your program with make before submitting it. You don't want to receive a zero on an assignment because of a mistake in submitting it.

Kernel Patch Submission Format

Alterations to kernel source code must be submitted in unified diff format usable by the patch command. To make creating patches easy, keep two kernel source trees in the same directory, one of which is the pristine kernel (named linux-2.6.10 and the other of which contains your modifications (named linux). Use the following command to create a patch:

$ diff -urN linux-2.6.10/ linux/ >username-as#.patch

To apply such a patch (a good idea to check that your patch creation worked), change your working directory to the root of the pristine source tree and use the following command:

$ patch -p1 < ../username-as#.patch

Note that some e-mail clients such as Outlook will break patch files by changing the formatting of text files by wrapping lines and other transformations. Submitting your patch files inside a tar archive should protect them from such alterations as will attaching the patch file as a plain text file without encoding.

Digital Document Submission Format

Write clearly, using correct grammar and spelling. Print or type your answers; do not use cursive handwriting. Digital documentation must be in a secure format accessible on multiple platforms, such as ASCII text, HTML, DVI, PDF, RTF, or Open Office XML document format (.sxw extension.) Microsoft Office documents are not accepted, as they are proprietary formats that can carry viruses (see MS-Word is not a document exchange format for further details.)

Programming Exercise Guidelines

Programs will graded primarily on correctness (60% of the grade.) The program should compile and run, but if it does not, you can still receive partial credit for a mostly correct algorithm. Documenting your design and your program will help you receive more partial credit.

Programs will also be graded on design, style, and documentation (40% of the grade.) Taking time to design your programs carefully will not only save you hours of programming and debugging, it will also be factored directly into your grade. I expect your code to exhibit high standards of programming style and layout, including appropriate use of functions, good naming practices for functions and variables, and limited scoping of variables. Coding style should follow that of the Linux kernel (see Documentation/CodingStyle for details.)

Grade Appeals

If you believe that there was an error in grading an assignment, you must contact me within a week of the date that the assignment was handed back in class. Picking up the assignment late will not give you an extension on the appeal deadline.

Academic Honesty

The work that you submit in this course is subject to Northern Kentucky University's Student Honor Code. Issues involving academic dishonesty are taken very seriously by this instructor and are dealt with according to College and Department policy. Academic dishonesty includes but is not limited to:

  1. Improper access to evaluation material or records.
  2. Submission of material which is not the student's own work.
  3. Conduct which interferes with the work or evaluation of other students.

Some specific examples of dishonesty include:

  1. Copying from another person, book, magazine, or other electronic or printed media.
  2. Obtaining another person's exam answer or answers.
  3. Assisting another student in submitting work that is not the student's own (this includes giving your password to another student or making your files readable by another, as well as more obvious actions such as giving another student your assignment to read over.)

It is unacceptable to share program code. It is unacceptable to share homework solutions. It is acceptable and often a good idea to talk about program algorithms and homework solution strategies, but it is not acceptable to use the same code or code segments, or to share actual solutions to homework problems. Any act of academic dishonesty will result in a grade of zero (0) for the assignment for the first occurrence. A second offense will result in an F in the course and potential suspension or expulsion from the university. This policy holds for homework assignments and programs, as well as for tests.


©2006 James Walden, Ph.D.