Self-Directed Learning and Diagnostic System