General notes on Project 1, phase 1 These are my comments after reviewing all phase 1 designs. General - The user enters one probability between 0 and 1. This probability is used to set the initial condition of each cell. - After that the number of neighbors determines the cell's fate in the next generation. Algorithms - A good algorithm in English is detailed enough that you could go find a programmer and they could code it up without asking questions. Frequently these algorithms come in outline form and not in full sentences because they read like code flow instead of like a paragraph. UML - Watch the arrows and lines in your UML. If you have the wrong ones and you handed it to a programmer, you'd get back a completely different product than you intended. Test Cases - Test cases should test out the probability on the initial number of live/dead cells - Test cases should also make sure each cell updates correctly from one generation to the next. Needs a specific thing to look for. Example: cell alive, 1 live neighbor --> cell dead - Test cases should try out a number of generations to see if it actually runs that many generations. Example: try 5 generations (and count the pictures that print to get 5). - A few sample test cases using the CS203 test plan: Test Data What's being tested Expected Results ------------------------------------------------------------------- alive cell, 2 neighbors generation update dead cell dead cell, 3 neighbors "" "" alive cell probability 1 initial probability all cells alive 3 generations generation number 3 generations OR <3 gens and all dead