Panel: Engage in Reasoning with Tools

Document Type

Conference Proceeding

Publication Date


Publication Title

Proceedings of the 47th ACM Technical Symposium on Computing Science Education


A central goal of computer science education is to teach students how to reason about the correctness of the code they write. Typically, students use a trial and error process and check that their logic "works" by running it on test inputs. Typically, instructors encour-age them towards logical reasoning through manual tracing of the code. Rarely reasoning tools are used in the process, at least partly because few instructors are familiar with them and fewer have the time to investigate and experiment. The purpose of this panel is to introduce the attendees to a variety of reasoning tools the presenters have used in their classrooms. In some cases, the tools have been used in only one or two classes of a course to illustrate specific points. In other cases, entire projects have been done using the tools. The courses range from the introductory sequence and dis-crete structures to software engineering and graduate-level courses. The tools are freely available on the web and attendees will be encouraged to experiment with the reasoning tools on their own laptops to solve simple reasoning problems.


We acknowledge NSF grants CCF-1161916,CCF-1162331,DUE-0942542, and DUE-1022941.