• Publications
  • Influence
Computational thinking
It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use.
Linearizability: a correctness condition for concurrent objects
This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
Computational thinking and thinking about computing
  • Jeannette M. Wing
  • Engineering, Medicine
    Philosophical Transactions of the Royal Society A…
  • 31 July 2008
In thinking about computing, the authors need to be attuned to the three drivers of their field: science, technology and society, to revisit the most basic scientific questions of computing.
A behavioral notion of subtyping
This paper presents a way of specifying types that makes it convenient to define the subtype relation, and discusses the ramifications of this notion of subtyping on the design of type families.
Automated generation and analysis of attack graphs
This paper presents an automated technique for generating and analyzing attack graphs, based on symbolic model checking algorithms, letting us construct attack graphs automatically and efficiently.
Formal methods: state of the art and future directions
The state of the art in specification and verification, which includes advances in model checking and theorem proving, is assessed and future directions in fundamental concepts, new methods and tools, integration of methods, and education and technology transfer are outlined.
An Attack Surface Metric
The notion of a system's attack surface is formalized and an attack surface metric is introduced to measure the attack surface in a systematic manner and is useful in multiple phases of the software development lifecycle.
Larch: Languages and Tools for Formal Specification
This monograph discusses the use of formal specifications in program development and introduces the notation of mathematical logic in formal specification languages and supporting tools.
A specifier's introduction to formal methods
Formal methods used in developing computer systems are defined, and their role is delineated, and certain pragmatic concerns about formal methods and their users, uses, and characteristics are discussed.
Two formal analyses of attack graphs
This paper presents an algorithm for generating attack graphs using model checking as a subroutine, and provides a formal characterization of this problem, proving that it is polynomially equivalent to the minimum hitting set problem and presenting a greedy algorithm with provable bounds.