Invited Talk: Weaving Formal Methods into the Undergraduate Computer Science Curriculum (Extended Abstract)
We can integrate formal methods into an existing undergraduate curriculum by focusing on teaching their common conceptual elements and by using state of the art formal methods tools. Common elements include state machines, invariants, abstraction mappings, composition, induction, specification, and verification. Tools include model checkers and specification checkers. By introducing and regularly revisiting the concepts throughout the entire curriculum and by using the tools for homework assignments and class projects, we may be able to attain the ideal goal of having computer scientists use formal methods without their even realizing it.
KeywordsState Machine Formal Method Homework Assignment Mobile IPv6 Abstract Data Type
Unable to display preview. Download preview PDF.
- [CGP99]Clarke, E.M., O. Grumberg, and D.A. Peled: Model Checking, MIT Press, 1999.Google Scholar
- [CSRC00]Compaq Systems Research Center, http://www.research.compaq.com/SRC/esc/Esc.html
- [DLNS98]Detlefs, D., K. Rustan M. Leino, G. Nelson, and J.B. Saxe: Extended Static Checking, Compaq SRC Research Report 159, 1998.Google Scholar
- [EGHT94]Evans, D., J. Guttag, J.J. Horning, and Y.M. Tan: LCLint: A Tool for Using Specifiations to Check Code, SIGSOFT Symposium on the Foudations of Software Engineering, December 1994.Google Scholar
- [Gr81]Gries, D.: The Science of Programming, Springer-Verlag, 1981.Google Scholar
- [GH93]Guttag, J.V. and J.J. Horning, editors: Larch: Languages and Tools for Formal Specification, Springer-Verlag, 1993.Google Scholar
- [JD96]Jackson, D. and C. Damon: “Nitpick Reference Manual,” Carnegie Mellon University Technical Report CMU-CS-96-109, Computer Science Department, Pittsburgh, PA, January 1996.Google Scholar
- [Ja00]Jackson, D.: “Alloy: A Lightweight Object Modelling Notation,” MIT Technical Report 797, February 2000.Google Scholar
- [JNW00]Jackson, D., Y. Ng, and J.M. Wing: “A Nitpick Analysis of Mobile IPv6,” to appear in Formal Aspects of Computing, accepted January 2000.Google Scholar