Total of 12 points. Assuming they strictly follow the suggestions, count them the following way. If they don't, do what seems appropriate based on this. 1.5 data representation of a state, helper functions to manipulate states 1 initial & final state 1 function: state -> list of successor states domain knowledge 1.5 function: list of states -> list of successor states foldr 1 function: state -> boolean (legal state?) domain knowledge 1.5 function: list of states -> list of legal states filter 1 function: state -> boolean (final state?) domain knowledge 1.5 function: list of states -> list of final states filter 2 function: finding solution given these pieces Don't forget the standard guidelines for templates, testing, etc. They don't need to use abstract functions, although point out where they could. A nonworking program can get up to 9 points.