DOs: 1. Simplify -> 2D. Use this to work out your algorithm. 1a. Start by considering simplest arrangements of circles that have/have not voids and/or cavities. 2. Visualize. Rasmol. 3. Put your protein on a regular cubic grid. That will address the resolution question. 4. Bounding box (parallelepiped). Will need to d to distinguish cavity from void. 4a. Box boundary = outside. 5. Analysis of the problem (and possibly even algorithm building) will simplify if you bloat each atom by the probe radius. Then, voids are points in space not occupied by the bloated atoms. 6. Create lots of test cases for which you know the answer by construction. 7. Team work is key. Regular meetings! Division of labor (e.g. one team member builds test cases, etc. ) 8. Stay away from complex algorithms. The simple the better. Simpler algorithms are usually more robust. Brute force may just be OK. DONTs: 1) Do not assume the atom positions have any regularity to them. 2) 1D. Too simplified, throws baby away with bath water. 3) Do not try to find the actual exact boundary of the protein. Hard. The bounding box gives you the natural, easy to find outside. 4) Under no circumstance start working on the exatra credit unless the main problem has been worked out and tested thoroughly!