Andrew W. Appel

Eugene Higgins Professor of Computer Science
Department of Computer Science
Princeton University

On sabbatical at Cornell University July 2021 - June 2022

Andrew Appel Bio & Contact



My students

Research Interests: program verification, computer security, programming language semantics, machine-checked proofs, compilers, and election technology.

Verified Software Toolchain
VST project page
CertiCoq project page
Verified Network Toolchain
Voting machines

Selected articles on voting: (more here and here)
Securing the Vote — National Academies report
Serious design flaw in ESS ExpressVote touchscreen: “permission to cheat”
Florida is the Florida of ballot-design mistakes
Pilots of risk-limiting election audits in California and Virginia
BMDs are not meaningfully auditable
Democracy Live internet voting: unsurprisingly insecure, and surprisingly insecure
NJ agrees No Internet voting in July, vague about November
Voting by mail in NJ 2020
Vote-by-mail meltdowns in 2020?
New Jersey gets ballot-tracking only half right
Did Sean Hannity misquote me?
Georgia’s election avoided an even worse nightmare that’s just waiting to happen next time
Juan Gilbert’s Transparent BMD
Internet Voting is Still Inherently Insecure
Accommodating voters with disabilities
New Hampshire Election Audit, part 1; and part 2
Four 2020 lawsuits over internet voting
Another 2020 lawsuit over internet voting

   Internet Voting? Really?

Technology Policy

Center for Information Technology Policy

My blog at Freedom to Tinker

Other technology policy work I've done

Previous research projects

Standard ML of New Jersey, a compiler for the type-safe functional programming language ML.
Foundational Proof-Carrying Code for security of untrusted code.
Enterprise Network Security Analysis.