David Van Horn

Associate Professor
5250 Iribe Center
(301) 405-6722
Ph.D., Brandeis University (Computer Science)

David Van Horn is an associate professor of computer science and a member of the Maryland Cybersecurity Center and the Lab for Programming Languages.

Van Horn’s research centers on program analysis and how it is applied to programming languages, software engineering, verification and security. He specifically works on the design and implementation of programming languages that go towards building secure, reliable, efficient and reusable high-quality software.

His book, “Realm of Racket: Learn to Program, One Game at a Time," was selected as a 2013 Notable Book in Computing by ACM Computing Reviews. The book teaches readers to program by leading them through the creation of a series of increasingly complex games.

Before joining the University of Maryland, Van Horn was a research assistant professor of computer and information science at Northeastern University.

He received his doctorate in computer science from Brandeis University in 2009.

Go here to view Van Horn's academic publications on Google Scholar.



J. Johnson I, Labich N, Might M, Van Horn D.  2013.  Optimizing Abstract Abstract Machines. arXiv:1211.3722 [cs].


Earl C, Sergey I, Might M, Van Horn D.  2012.  Introspective Pushdown Analysis of Higher-Order Programs. arXiv:1207.1813 [cs].


Tobin-Hochstadt S, Van Horn D.  2011.  Higher-Order Symbolic Execution via Contracts. arXiv:1103.1362 [cs].

Tobin-Hochstadt S, Van Horn D.  2011.  Semantic Solutions to Program Analysis Problems. arXiv:1105.0106 [cs].


Van Horn D, Might M.  2010.  Abstracting Abstract Machines. arXiv:1007.4446 [cs].

Chang S, Van Horn D, Felleisen M.  2010.  Evaluating Call-By-Need on the Control Stack. arXiv:1009.3174 [cs].

Might M, Smaragdakis Y, Van Horn D.  2010.  Resolving and Exploiting the k-CFA Paradox: Illuminating Functional vs. Object-oriented Program Analysis. PLDI '10 Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation.



Van Horn D, Mairson HG.  2008.  Deciding kCFA is Complete for EXPTIME. ICFP '08 Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming.

Van Horn D, Mairson HG.  2008.  Flow Analysis, Linearity, and PTIME. Static Analysis.


Van Horn D, Mairson HG.  2007.  Relating Complexity and Precision in Control Flow Analysis. ICFP '07 Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming.


Skalka C, Smith S, Van Horn D.  2005.  A Type and Effect System for Flexible Abstract Interpretation of Java: (Extended Abstract). Electronic Notes in Theoretical Computer Science. 131:111-124.