Program verification: the very idea
Communications of the ACM
Social processes and proofs of theorems and programs
Communications of the ACM
How mathematical thinking enchances computer science problem solving
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Building a push-button RESOLVE verifier: Progress and challenges
Formal Aspects of Computing
Teaching mathematical reasoning across the curriculum
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Specification engineering and modular verification using a web-integrated verifying compiler
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
Program correctness is central to computing, with instructors striving to convey the importance of getting it right starting in CS1. Teaching this material carefully demands a uniform framework to specify, implement, and reason about software correctness. To make these ideas accessible to educators and students, the tutorial will use RESOLVE, an integrated specification and programming language with a toolset especially designed for building verified components. The tutorial will also discuss how to get students involved through hands-on activities with software construction and modular verification using a web-integrated environment that requires no software installation and that features a prototype 'push-button' verifying compiler. The proposers have taught the ideas contained here using engaging pedagogical methods in introductory and advanced CS courses to thousands of students and dozens of educators over the past 20 years, and this SIGCSE tutorial will leverage that experience.