General | Syllabus | Assignments | Final Project | Exercises
There will be 4 programming assignments, which will count for 40% of 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 Mac OS X (via the
makecommand from the Unix shell), and Microsoft Visual Studio 2005. Mac computers with the appropriate tools installed are in Friend 016; PCs with Visual Studio are in Friend 009 and 017 (in 017, only the PCs numbered 4384, 4385, 4386, 4387, 4388, 4389, 4395 have Visual Studio). We will not grade assignments written in other build environments.
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 (
.tar.gz) named with your username (e.g.
af.tar.gz) and submit it via ftp to
ftp.cs.princeton.edu/incoming/cos426. Log in with user
anonymousand your email address as password.
This archive should contain:
Be sure to maintain the directory structure you used when creating the zip (or tar) file.
- Makefile or Visual Studio Project File;
- all source code necessary to run you program;
- any necessary data files;
The writeup should be a HTML document called
assignment#.htmlwhich may include other documents or pictures. It should be brief, describing what you have implemented and your results.
Make sure the code compiles on one of these configurations:
- the Windows machines in Friend 017 under Visual C++
- the Macs in Friend 016 using "make"
Assignments are due at 11:59PM on the due date. Late assignments are marked down 1/4 of the full grade per day. One minute late is the same as one day late. Exceptions will be given only in extreme circumstances, only in advance, and only by the instructors.
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 cos426
If 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.