<!--#set var="name" value="Assignments" -->
<!--#include file="header.html" -->

<h3>Programming Assignments</h3>
<p>
There will be 4 programming assignments, which will count
for 40% of the final grade.

<ul>
<li><a href="assn1/">Assignment #1</a>: Image Processing (due Wed Feb 21) <a href="assn1/art_files/">(Results)</a>
<li><a href="assn2/">Assignment #2</a>: Modeling (due Sun Mar 11) <a href="assn2/results/">(Results)</a>
<li><a href="assn3/">Assignment #3</a>: Ray Tracing (due Sun Apr 15) <a href="assn3/results/">(Results)</a>
<li><a href="assn4/">Assignment #4</a>: Animation (due Sun Apr 29)
</ul>

<hr>
<h3>Final Project</h3>
<p>
There will be a final project, which will count for 20% of the final grade.

<ul>
<li><a href="projects/index.html#Proposal">Written proposal</a> (due Apr 26)
<li><a href="projects/index.html#Presentation">Proposal presentation</a> (in class on Apr 26)
<li><a href="projects/index.html#Report">Final report</a> (due May 15)
<li><a href="projects/index.html#Demo">Demo day</a> (May 15, 2PM, CS105)
</ul>
<p>

<hr>
<p>
<a NAME="Art Contest"></a>
<h3>Art Contest</h3>

<blockquote>
For each of the assignments, there will be an art contest. You will get one point just for submitting something to the contest, so you definitely should participate! In addition, if you win the contest you will get up to two more points, and your entries will be posted on the
web pages. Submissions may be any images or movies that somehow used your program from the assignment, including particularly interesting artistic images or movies, visualizations of your algorithm, or bloopers (funny-looking pictures that you created by accident due to bugs or logical errors). Multiple submissions are allowed from each student, although a point will be awarded only for one of them. The judges (Professor, TA) will look for creative submissions, so use your imagination!
</blockquote>

<hr>
<a NAME="submit"></a>
<h3>How to Submit</h3>
<blockquote>
	<p>Create a single archive (<code>.zip</code> or <code>.tar.gz</code>) named with your username (e.g. <code>funk.tar.gz</code>) and submit it via ftp to <code>ftp.cs.princeton.edu/incoming/cos426</code>. Log in with user <code>anonymous</code> and your email address as password. </p>
	<p>This  archive should contain: </p>
	<ul> 
		<li> Makefile or Visual Studio Project File;
		<li> all source code necessary to run you program;
		<li> any necessary data files;
		<li> writeup.
	</ul>
	Be sure to maintain the directory structure you used when creating the zip (or tar) file.

	<p>The writeup should be a HTML document called <code>assignment#.html</code> which may include other documents or pictures. It should be brief, describing what you have implemented and your results.

	<p><b>Make sure the code compiles on the machines in Friend 017 under Visual C++.</b> &nbsp; 
</blockquote>
 
<hr>
<a NAME="Late Policy"></a>
<h3>Late Policy</h3>
<blockquote>
	Assignments are due at 11:59PM on the due date. Late assignments are marked down 1/4 per day. One minute late is the same as one day late. You are given 5 free late days that you can use any time during the semester. Exceptions will be given only in extreme circumstances, only in advance, and only by the professor.
</blockquote>

<hr>
<a NAME="Collaboration Policy"></a>
<h3>Collaboration Policy</h3>
<blockquote>
<i>The COS 426 collaboration policy is the same as that of Princeton's COS 126
and COS 217 courses ...</i>
<p>Programming in an individual creative process much like composition. You must
reach your 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 code that solves the problem, such discussions are no longer
appropriate - the program must be your own work. If you have a question about
how to use some feature of C++, VisualStudio, etc., you can certainly ask your
friends or the teaching assistants, but <strong>do not, under any circumstances,
copy another person's program.</strong> Writing code for use by another or using
someone else's code in any form is a <strong>violation of academic regulations</strong>.
&quot;Using someone else's code&quot; includes using solutions or partial
solutions to assignments provided by commercial web sites, instructors,
preceptors, teaching assistants, friends, or students from any previous offering
of this course or any other course.
<p>You may, however, use any code from the COS 426 lectures, precepts, or course
texts, providing that you explain what code you use, and cite its source in your
&quot;assignment#.html&quot; file or in comments. For each assignment, you <strong>must</strong>
also specifically describe whatever help (if any) that you received from others
in your &quot;assignment#.html&quot; file, and write the names of any
individuals with whom you collaborated. This includes help from friends,
classmates, lab TAs, and COS 426 staff members.
<p>You are responsible for keeping your solutions to the COS 426 programming
assignments away from prying eyes. If someone else copies your program, we have
no way to determine who's the owner and who's the copier; the Discipline
Committee gets to decide. If you are working on a public cluster machine, be
sure to delete your local source files and logout before leaving. You should
also store all of your assignment files in a private directory.&nbsp; You can
create a private directory using commands similar to these:
<blockquote>
  <pre>% mkdir cs217
% chmod 700 cs217</pre>
</blockquote>
<p>If you have a question about what is allowed and what is not, please consult
the professor.&nbsp;
</blockquote>

<hr>
<a NAME="Facilities"></a>
<h3>Facilities</h3>
<blockquote>
We suggest that you use the machines on Friend 017 for the programming assignments. Please do not use the 
graphics lab (418)
in the CS building for working on your projects. It is intended for research
projects only.
</blockquote>


<!--#include file="footer.html" -->
