The Projects:

Project Assigned Due
Project 0: Compiling & Debugging on GL Wed, Aug 29 Tue, Sep 11
Project 1: Circular Buffer of Circular Buffers Mon, Sep 10 Tue, Sep 25
Project 2: Sally FORTH Mon, Sep 24 Tue, Oct 9
Project 3: QuadTrees for Life Fri, Oct 19 Thurs, Nov 1
Project 4: Median Heaps Sat, Nov 3 Sat, Nov 17
Project 5: Incremental Rehash Tue, Nov 27 Tue, Dec 11

Project Development

You are required to compile and run your projects on the GL servers (linux1, linux2 or linux3). However, you are free to use whatever development tools you want. Two options are the Eclipse Integrated Development Environment (IDE) and Microsoft Visual Studio C++. Eclipse is available on the PCs located in the OIT labs. If you prefer to work on your own PC, the ‘Eclipse IDE for C++ Developers” may be downloaded free of charge from

Program Compilation

You will be required to demonstrate that your code compiles and runs on GL using the specific Unix command string given for each project. Failure to do so means your project will not run with the grading scripts and will incur severe penalties.

Standards and Style

All projects should adhere to the C++ coding standards found in the course coding standards document unless otherwise directed. Projects will be evaluated on these guidelines. Projects that cannot compile or are unreadable because they deviate from the course coding standards will have points deducted.

Project Submission and Policies

Projects will be submitted for grading using the shared directories on GL:

Do familiarize yourself with these course policies:

Project Re-grades and follow-ups

If you believe there is an error in the grading of your project, you can see the TAs in person during their office hours. I.e., do not ask about regrades by email. This makes the overall regrade process much better. You must make your regrade request (in person) within a week of the receipt of your project grade.

Project Due date/time

A script automatically closes the submission directoy at 8:59:59 PM. This is not done by a human!! Please be diligent.