We identify a set of basic reasoning principles for computer science students that are essential to the development of high quality software. These principles can be integrated in various courses throughout the CS curriculum so that students understand not just how to write correct software, but to reason about why their software is correct. This paper summarizes evaluation results from our attempts to teach some of these principles. It also presents results from a survey of faculty interested in teaching reasoning concepts. The results show the importance of specific principles and their applicability to a range of courses
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.