We want you to know up front that this will be a hard class, but we hope to make it interesting and exciting, such that the hard work will be worthwhile. During the early stages of development, before you begin to heavily implement your solutions, you need to come up with a strong design. Past experience suggests that poor design accounts for many of the difficulties that students encounter. Since there is no universally correct design for the problems, we cannot simply give you more of the design. See the project info page for more information about the projects.
Testing is one of the most important stages of development.
In order to get you started, and to give you an idea of what sorts of tests we will run while grading, we will provide some subset of our grading tests for each assignment. We will also give some indication of what our non-public tests will check for. These are intended to give you a good start to your testing, but you will still need to demonstrate some of your own test code. This will be based almost entirely on our test scripts. If your code breaks, do note that the TAs will not fix it .