Formal Methods in Computer Science

Wang, Jiacun, Tepfenhart, William



This textbook gives students a comprehensive introduction to formal methods and their application in software and hardware specification and verification. It has three parts: The first part introduces some fundamentals in formal methods, including set theory, functions, finite state machines, and regular expressions. The second part focuses on logic, a powerful formal language in specifying systems properties. It is composed of four chapters: propositional logic, predicate logic, temporal logic, and model checking. The third part presents the most popular formal language in system behavior modeling, Petri nets. It has three chapters: Petri nets, timed Petri nets and high-level Petri nets.


Jiacun Wang received a PhD in computer engineering from Nanjing University of Science and Technology (NJUST), China. He is Professor of Software Engineering at Monmouth University. He was previously with Nortel Networks in Richardson, Texas. Prior to joining Nortel, he was a research associate of the School of Computer Science, Florida International University (FIU) at Miami. Prior to joining FIU, he was an associate professor at NJUST. Dr. Wang has been teaching formal methods for both undergraduates and graduates at Monmouth University for more than 10 years.

William Tepfenhart was an Associate Professor of Computer Science and Computer Engineering at Monmouth University. His experience ranged across a broad spectrum of activities. He has performed in the role of instructor, researcher, software developer, and author. Trained as a physicist, his areas of expertise included object-oriented software development, artificial intelligence, and software engineering. His knowledge of modeling physical systems formed the basis for major contributions in the area of software development.