Assignments

You can and should work in groups of 2 for all assignments. Both members will recieve the same grade. You may not switch partners after the previous assignment is due (and the current one is therefore released). You may use different partners for each assignment. Unless you are a CVN student (in which case, contact the TA), no special consideration will be given if you choose to work alone. Note that we may make minor changes to these assignments as the course progresses. In general, you should assume an assignment is released when the previous one is due, and that the basic idea won't change so please don't hesitate to START EARLY. In particular, assignment 1 is now released.

I want to reemphasize the point about STARTING EARLY. These assignments are designed for two people groups to spend 3-4 weeks steadily working on them (the length of time between assignments), not for people to cram them in the last week. The workload is likely to be manageable only if you work in a steady disciplined fashion on the homeworks. For the written questions, they are not long but it might be a little stressful to try them at the last moment; you should try to answer them as and when they come up in the lectures for that unit.

Assignment 0 (10 points) [RELEASED]

Tell us about yourself and send us a picture. For this purpose, send an e-mail to the TA cs4162@cs.columbia.edu telling us your name, e-mail address, login name, whether on-campus or CVN student, primary software development platform (Unix, Mac, Windows, type of Unix etc.), and any other info you'd like us to know such as URL, goals in taking this course, background etc. Also, include a digital photograph of yourself. This will enable us to try to put names to faces and have a photographic record of who is taking the class. If you don't have a digital photograph or a way of obtaining one, find someone (like the instructor or TA) with a digital camera. We will use this information to set up the class mailing list, so failure to send us a note and your picture in a timely manner will lead to your missing important announcements.

Please note that this does not replace registering for the course; you must still do that.

Assignment 1: Image and Signal Processing (75 points) [RELEASED: DUE FEB 16, 11:59pm]

The assignment includes a detailed specification available as a PDF file. From the length of the document (8 pages), it should be clear that you need to START EARLY on the assignment, checking with the instructor or TA if you run into problems. However, don't be alarmed. One of the reasons for the length of the text is to specify the assignment clearly and reduce ambiguities. In principle, the programming assignment should be completely self-contained, viz. you should be able to understand and make progress simply by reading the assignment. Of course, the materials in lecture are important for fully understanding the relevant concepts. The written assignment isn't too difficult (about half of it will be directly covered in lecture) but is important in making sure you understand the mathematical foundations. The work can be rewarding; after completing the assignment you will have an image processing program that can do many of the features of software like xv or ImageMagick. In some cases, you will provide better antialiasing and resizing than widely available programs like xv, thereby better understanding their algorithms and shortcomings.

The assignment comes with support. There is skeleton code available as a zip file, which should include a dsp file for Visual C++ as well as a Makefile for Unix. The first step is to download the ZIP file and make sure you can compile it. The distribution also includes a sample solution for both Windows and Unix that you can use for reference.

Assignment 2: Geometric Modeling and Mesh Simplification (75 points) [RELEASED: DUE MAR 19, 11:59pm]

The assignment specification, including written questions is available as a PDF file. Note that the assignment is due at the end of spring break. While you can work on it during break if you want, you do so at your own risk. Instructor/TA support should not be relied on during the break. As always, stay in touch with the instructor or TA. Since this assignment requires implementing some fairly modern ideas, and does not come with support, it is understandable if you get confused or stuck somewhere. In that case, please ask for help. We have placed a number of models here . This is also available as a Zip file (16M). Finally, the most relevant papers on which this assignment is based are by Hoppe 96 and Garland 97 . You are also encouraged to look at the web pages of Garland and Hoppe for additional support material. In particular, note the appendix in Garland's thesis on implementation details for quadric error metrics.

Assignment 3: Simple Raytracer (75 points) [RELEASED: DUE APR 11, 11:59pm]

The assignment specification, including written questions is available as a PDF file. Remember that raytracers can be slow and difficult to debug, so start early and stay in touch with the instructor or TA if any problems arise. The support for this assignment consists of an opengl viewer and executables and test scenes for it. This is available as a zipfile which should unzipped in a separate directory.

Assignment 4: Final Project (65 points) [RELEASED: DUE MAY 1, 11:59pm ; Intermediate Milestone due April 21, 11:59pm, Proposal presentations due April 10 in class, Proposal e-mail due April 5, 11:59pm, Project presentations due April 24, 26]

You have wide flexibility in terms of designing the final project. The assignment is here. There is no skeleton code.