The significance of the project is that it will enhance the logical reasoning ability of students, and thus improve the quality of the software they develop after graduation. To make this possible, the project will employ an integrated system of engaging interactive reasoning guides to help overcome individual and collective learning obstacles. These guides will facilitate incremental learning for students and incremental adoption for educators. The automation inherent in the guides will make them an ideal vehicle for impacting learning in personalized and online settings and for reaching a diverse audience.<br/><br/>The project goals include enabling students to reason correctly about code compositions on all valid inputs, pinpointing fine-grain learning obstacles using a logical reasoning approach aided by an automated verification engine, and tailoring the tutoring necessary to help students overcome those obstacles. The scope includes common code idioms from the introductory programming repertoire and more advanced component-based software engineering concepts such as contracts. The underlying verification engine makes it possible for the interactive guides to offer a class of learner activities and directed logical feedback not possible with standard IDEs (Interactive Development Environments) such as Eclipse. Research and evaluation will focus on how well the guides engage students and how learning is improved.