COS-461 Assignments


Programming Assignments

All assignments are due at 11:59pm of their assigned days.

Collaboration Policy

Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate; the program must be your own work.

Do not, under any circumstances, copy another person's program, comments, README description, or any part of the submitted assignment. This includes character-by-character transliteration of another works (whether inspected visually or copied digitally), but it also includes derivative works (i.e., by renaming variable names or subtlety shifting around statements in order to try to hide that copying has occurrred). You are also not allowed to use other people's code, comments, or results, even when "citing" them -- all work must be your own. Writing code for use by another or using another's code in any form is academic fraud and will be dealt with harshly. You are also responsible for ensuring that the code you write for the assignments is not readable by others.

Computing Facilities

The assignments must compile in the Linux environment on the provided VM. We'll be compiling your source code in that environment when testing, so if your source doesn't compile in it, you'll get major point deductions.

Virtual Machine

  1. Download VirtualBox. Make sure it's version 4.3.
  2. Download the appliance file.
  3. Open Virtualbox and do File-> Import Appliance. Select the OVA file you just downloaded (the defaults are fine).
  4. Once imported, delete the OVA file.
  5. Select "cos461_2014" within VirtualBox and press Start.
    1. login credentials are mininet/cos461
    2. For a desktop, execute "startx"
Notices:

Programming Tools

You may use whatever editor you want to write your programs, but take care to make sure your programs have proper indentation. Using emacs is a simple way to ensure proper spacing. You can place the .emacs configuration file in your home directory to use the emacs configuration from the COS 217 course. You may choose to run emacs in "no window" mode (i.e., "emacs -nw", good when using a low-bandwidth connection when away from campus) or using X windows (taking care to use ssh -Y when you connect to the Friend lab PCs from a Mac, or setting the "Connection | SSH | X11 | X11 Forwarding | Enable X11 forwarding" box if using Putty on a Windows machine).

Assignment Submission

We will use CS Dropbox to submit assignments. You can create the correct gzipped tar file by running "tar zcvf [filename.tgz] *" within the directory containing your files.

Late Submission

You should submit your work on an assignment (electronically) before its due time. All assignments will be due at 11:59pm on their selected days. We will be giving special prizes for the first student to submit work for full credit per assignment. If you submit your work late, we will give you credit for it on this scale:

We will grant extensions only in the case of illness (with a doctor's note) or extraordinary circumstances. If illness or an extraordinary circumstance will cause you to submit an assignment late, then you should discuss the matter with your instructor as soon as possible. Please plan your work on the assignments so that travel, interviews, athletics, religious holidays, etc. do not cause you to submit it late. Note that heavy workload is not an extraordinary circumstance.

That said, you are allowed one "free" late day during the semester (that can be applied to one of assignments 1 through 3). You do not need to tell us that you are applying your "late day" -- we'll remove the late penalty at the end of the semester from the assignment that benefits you the most.

Note that reasonable work must be done for all submitted assignments in order to achieve a passing grade, so even if it is more than 7 days late, you should still submit the assignment by Dean's Date.

The final assignment is due on the Dean's Date, and we are not permitted to accept work after that date. Thus you may not turn in the final assignment late.

Coding Style

All of the code you turn in for this course should have good style. Make sure that your code has proper indentation, descriptive comments, and a comment header at the beginning of each file, which includes your name, userid, and a description of the file. In addition, your code should not leak memory and should properly check the return value of function calls.

Version Control through Bitbucket

Because accidents can happen and it is good practice, we require you to use a version control system to maintain your code for this course. We ask that you setup an account with Bitbucket, a web-based hosting service for projects that use the git revision control system. Bitbucket allows you to have an unlimited number of free private repositories, so please take advantage of this and do not make your code public. We have put together instructions on how to set up an account with Bitbucket as well as pointers on how to use git.

Instructions for setting up a Bitbucket account

How do I git?

This page has some useful tutorials on git: Git Tutorials
In particular, tutorials 1 and 5 will be most useful for this course.

The basic git workflow in the shell (assuming you already have a repo set up):

Finally, Bitbucket 101 is another good resource.


Last updated: Tue May 13 09:10:26 -0400 2014