COS 426:
|
|
|
General | Syllabus | Assignments | Final Project | Exercises
There will be 4 programming assignments, each of which will contribute 10% to the final grade.
There will be a final project, which will count for 20% of the final grade.
We will be using C++. The project files supplied with the assignments build
under linux or Mac OS X (via the make command from the Unix shell),
and Microsoft Visual Studio 2005 (via a solution file). Mac computers that
boot either Mac OS X or Microsoft Windows are in Friend 016 and 017.
You are welcome to use them or any other computer with the appropriate
C++ development tools. However, your programs must compile and run on the
computers in Friend 016 and 017.
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!
Create a single archive (in
.zipformat) namedPUID_cos426_assnN.00.zip, wherePUIDis your Princeton University ID andNis the assignment number, (e.g.funk_cos426_assn1.00.zip) that contains thePUID_cos426_assnNdirectory you have created as defined in the assignment description.Especially, this archive should contain:
Be sure to maintain the directory structure you used when creating the zip file.
- Makefile or Visual Studio Project File;
- all source code necessary to run you program;
- the
writeup.htmlthat references your result images in theart/andoutput/directories. It should be brief, describing what you have implemented and your results.- a
runme.shorrunme.batfile that recreates all images in your output directory when called- any necessary data files used in the
input/directoryMake sure the code compiles on one of these configurations:
- the Windows installations in Friend 016 or 017 under Visual C++
- the Macs installations in Friend 016 or 017 using "make"
You can submit your archive via ftp to
ftp.cs.princeton.edu/incoming/cos426. Log in with useranonymousand your email address as password. Windows, Mac OS and Linux come with a command line tool calledftpthat you can use to submit your code. Use thecdcommand to change to the directoryincoming/cos426, thebinarycommand to switch to binary file transmission mode (especially important under Windows) and theput PUID_cos426_assnN.zipcommand to save your file.Note that you cannot overwrite or modify a zip file once it has been uploaded. If you want to update your submission, please name it
PUID_cos426_assnN.UPLOAD.zip, whereUPLOADis the two-digit number of the upload attempt (i.e., 01, 02, 03, etc.). During grading, the files will be unzipped in order of that number (so, funk_cos426_assn1.02.zip would overwrite the contents unzipped from funk_cos_assn1.01.zip etc.). Please try to keep the total number of uploads small, though, and note the special format for submitting late, as defined below.
Assignments are due at 11:59PM on the due date, as determined by the
file date of the file upload. Late assignments are marked down 1/4 of
the full grade per day. One minute late is the same as one day
late. Each student can use up to a total of three "free late days"
during the semester. Exceptions beyond these free days are rare --
they will be granted only for medical reasons, and only by the
instructor. Important: if you decide to submit late, name the file
PUID_cos426_assnN.late.zip, and submit exactly one file.
The COS 426 collaboration policy is the same as that of Princeton's COS 126 and COS 217 courses ...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 do not, under any circumstances, copy another person's program. Writing code for use by another or using someone else's code in any form is a violation of academic regulations. "Using someone else's code" 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.
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 "assignment#.html" file or in comments. For each assignment, you must also specifically describe whatever help (if any) that you received from others in your "assignment#.html" 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.
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. You can create a private directory using commands similar to these:
% mkdir cos426 % chmod 700 cos426If you have a question about what is allowed and what is not, please consult the professor.
We suggest that you use the machines on Friend 016 and 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.