Technical report TR08-12. Computer tools for education, particularly those that allow a learner to work through many examples of a problematic type of exercise, can be helpful to that learner's understanding. Functional dependencies and their use in finding candidate keys are an area with which learners often have difficulty in undergraduate database courses. In addition to helping the students, a learning tool could help the instructor if it collected information about learner attempts of the exercises. This project makes an effort to develop such a tool, helpful to both learners and educators.