Integrating formal verification into computer organization and architecture courses

The high complexity of modern hardware and software systems necessitates the use of formal methods for checking the satisfaction of desired properties and the absence of design flaws. Numerous methods have been developed, and some, such as model checking and the ?-automata approach, have found wide acceptance in the computer industry and have led to the development of powerful verification tools. However, the popularity of these methods has not been firmly established in the Computer Science and Engineering curriculum. This paper presents an approach to integrating current verification research results into a typical, small-college Computer Organization and Architecture course.

[1]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[2]  Robert L. Kruse,et al.  Data structures and program design in C , 1986 .

[3]  Gillian Dobbie,et al.  Supporting and evaluating team dynamics in group projects , 1999, SIGCSE '99.

[4]  Zvonko G. Vranesic,et al.  Computer Organization , 1984 .

[5]  Michael G. Main,et al.  Data structures & other objects using C++ , 2001 .

[6]  L. Ivanov,et al.  Modeling and analysis of noniterated systems: an approach based upon series-parallel posets , 1999, ISCAS'99. Proceedings of the 1999 IEEE International Symposium on Circuits and Systems VLSI (Cat. No.99CH36349).

[7]  L. Ivanov,et al.  Modeling and verification of cache coherence protocols , 2001, ISCAS 2001. The 2001 IEEE International Symposium on Circuits and Systems (Cat. No.01CH37196).

[8]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[9]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[10]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[11]  Dong Wang,et al.  Formal Verification of the PCI Local Bus: A Step Towards IP Core Based System-On-Chip Design Verification , 1999 .

[12]  Glynn Winskel,et al.  Petri Nets, Event Structures and Domains , 1979, Semantics of Concurrent Computation.

[13]  Glynn Winskel,et al.  Petri Nets, Event Structures and Domains, Part I , 1981, Theor. Comput. Sci..

[14]  L. Ivanov,et al.  Formal verification: a new partial order approach , 1999, Twelfth Annual IEEE International ASIC/SOC Conference (Cat. No.99TH8454).

[15]  Betty H. C. Cheng,et al.  Moving industry-guided multimedia technology into the classroom , 1999, SIGCSE '99.

[16]  Dennis Butler,et al.  Giving computer science students real-world experience , 1998, SIGCSE '98.

[17]  Walter J. Savitch Problem solving with C++ - the object of programming , 1995 .

[18]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[19]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[20]  Arvind Srinivasan,et al.  Verity - A formal verification program for custom CMOS circuits , 1995, IBM J. Res. Dev..

[21]  Suzanne W. Dietrich,et al.  Integrating the practical use of a database product into a theoretical curriculum , 1997, SIGCSE '97.

[22]  Doron A. Peled,et al.  Combining partial order reductions with on-the-fly model-checking , 1994, Formal Methods Syst. Des..

[23]  Tsun-yan Hsieh,et al.  Teamwork across Time and Space , 1997 .

[24]  Michael J. Lutz,et al.  Undergraduate software engineering laboratories: a progress report from two universities , 1992, SIGCSE '92.

[25]  Michael J. Flynn,et al.  Computer Organization and Architecture , 1978, Advanced Course: Operating Systems.

[26]  Michael Main Data Structures and Other Objects Using C , 1994 .

[27]  Ganesh Gopalakrishnan,et al.  A new partial order reduction algorithm for concurrent system verification , 1997 .