David Evans
Professor of Computer Science
University of Virginia

Contacting Me | Schedule a Meeting

Recommended reading for:
Prospective Students | Disgruntled Professors
3 Year-Olds | Googlers | Humans
Pessimists | Optimists | Illiterates

Research Group

My research group's current work focuses mainly on understanding and improving the trustworthiness of machine learning when used in adversarial contexts, including both privacy (what can adversaries learn about private training data from interacting with a trained model) and security (what can adversaries do to cause a model to misbehave in targeted ways). Other areas of recent interest include secure multi-party computation (including Obliv-C), and web security.

In Fall 2021, I am co-teaching cs3102: Theory of Computation with Nathan Brunelle. In Spring 2022, I will teach a new special topics course on cs4501: Computational Biology / Biological Computing. In Spring 2021, I taught a new course on Everyday Ethics and Quotidian Quandries for Computer Scientists.

Other courses I have taught recently include Markets, Mechanisms, and Machines (a joint Economics and Computer Science course, co-taught with Denis Nekipelov), a Pavilion Seminar on How will Artificial Intelligence change Humanity? (Fall 2018), a seminar on Security and Privacy of Machine Learning (Spring 2018), cs2102: Discrete Mathematics (co-taught with Mohammad Mahmoody in Fall 2017), a seminar focused on Understanding and Securing TLS (Spring 2017), cs1120: Explorations in Language, Logic, and Machines (Fall 2016, using a new approach mostly inspired by my then-three-year-old daughter's Tae Kwon Do classes), a course on cryptocurrencies and cs4414: Operating Systems (the first course to use the Rust programming language).

I have written two introductory computer science books, both of which are available as free downloads under a Creative Commons license, and as nicely printed color versions from Amazon.com:

Dori-Mic Cover Dori-Mic and the Universal Machine!
(With Illustrations by Kim Dylla), 2014
A Tragicomic Tale of Combinatorics and Computability
for Curious Children of All Ages

"The BEST babies' book about computational universality I've read."
Scott Aaronson [full review]

XLLM Cover Introduction to Computing:
Explorations in Language, Logic, and Machines

Introductory computer science coursebook, 2007-2012.
I co-authored, with Vladimir Kolesnikov and Mike Rosulek a book on secure multi-party computation:
A Pragmatic Introduction to Secure Multi-Party Computation NOW Publishers, December 2018. [PDF]

I developed two open on-line courses for Udacity: cs101: Building a Search Engine (Prospect Magazine, Chronicle, more...) and cs387: Applied Cryptography (according to InformationWeek, this the #1 Online Class To Pump Up IT Careers, although it is more meant as a fun introduction to cryptography).

I co-founded the Cville Math Circle (Secret Order of the Twin Primes).

I was Program Co-Chair for the 2017 ACM Conference on Computer and Communications Security (CCS). I organized the NSF SaTC PIs' Meeting 2015 and was program co-chair for the 30th (Oakland 2009) and 31st IEEE Symposium on Security and Privacy (Oakland 2010), where I initiated the Systematization of Knowledge (SoK) papers.


Funded Projects

All it took was for a University of Virginia student to finally outsmart the popular SMART cards... Falling into the wrong hands, this security loophole can be and will surely be used in high profile heists and break-ins, seemingly straight from a James Bond movie.
Hacked RFIDs Render Smart Cards Less Smarter, TrendLabs Malware Blog, 18 March 2008.

Except for the wire problem, the computer was a success. We could solve this with larger wires and by growing hair to cover our ears, a conspicuous style at the time, or persuade our reluctant wives to "wire up". We adjourned to consider.
Edward Thorp, on building computers with Claude Shannon

I am a little troubled about the tea service in the electronic computer building. Apparently the members of your staff consume several times as much supplies as the same number of people do in Fuld Hall and they have been especially unfair in the matter of sugar.... I should like to raise the question whether it would not be better for the computer people to come up to Fuld Hall at the end of the day at 5 o'clock and have their tea here under proper supervision.
Letter to John von Neumann (shown in George Dyson's talk on The birth of the computer)

More Quotes

I have the privilege of working with a team of extraordinary students, including both graduate and undergraduate students.

Security Research Group Lunch (5 May 2017)
Bill Young, Haina Li, Weilin Xu, Mohammad Etemad, Bargav Jayaraman, David EvansHelen SimecekAnant KharkarDarion Cassel

If you are a UVa undergraduate or graduate student interested in joining my research group, please look over our project pages (linked below), browse our group blog, and send me email to arrange a meeting or drop by my office hours.

If you are considering applying to our PhD program, please read my advice for prospective research students. If you think you are ready for graduate school, you may also want to try our previous pre-qualification exam [PDF].

Security Research Group (19 January 2016)
Jack Doerner, Samee Zahur, Mahnush Movahedi, Mohammad Etemad, Haina Li, Weilin Xu, Karen Pan

Everyone is welcome at the Security Research Group meetings. To get announcements, join our Slack Group (any @virginia.edu email address can join themsleves, or email me to request an invitation).

srg lunch
Research Group Lunch (6 May 2015)

Hoos at USENIX
UVa Students and Alumni at USENIX Security 2011

Our research is primarily funded by National Science Foundation research grants. We are also grateful for industrial research awards from Google, Intel, and Baidu, and in-kind support from Amazon and Microsoft.


XLLM Cover I won the Harold Morton Jr. SEAS Award for Teaching (2003-4), an All-University Teaching Award (2008), and an Outstanding Faculty Award (2009) from the State Council of Higher Education for Virginia. This essay explains my teaching philosophy.

I was the Founding Director of the Interdisciplinary Major in Computer Science, which became the most popular major taught by the Engineering School.

I believe public universities have a mission to provide open education, and make all of my teaching materials openly available. I published an open introductory computing textbook based on the cs1120 course.

Selected UVa Courses (Full List)

cs3102: Theory of Computation (Fall 2021 and Fall 2020, co-taught with Nathan Brunelle)
cs3501: Everyday Ethics and Quotidian Quandries for Computer Scientists (Spring 2021)
cs4501/econ4730: Markets, Mechanisms, Machines (Spring 2020 and Spring 2019, co-taught with Denis Nekipelov)
cs2102: Discrete Mathematics (Fall 2017, co-taught with Mohammad Mahmoody, and Fall 2016)
cs1120: Introduction to Computing: Explorations in Language, Logic, and Machines (Spring 2016, Fall 2011, Fall 2009, and earlier)
cs4501: Cryptocurrency Cafe (Spring and Fall 2015)
cs4414: Operating Systems (Spring 2014, Fall 2013)
cs2220: Engineering Software (Fall 2010 and earlier)

Science is the greatest of all adventure stories, one that's been unfolding for thousands of years as we have sought to understand ourselves and our surroundings. Science needs to be taught to the young and communicated to the mature in a manner that captures this drama. We must embark on a cultural shift that places science in its rightful place alongside music, art and literature as an indispensable part of what makes life worth living.
Brian Greene, Put a Little Science in Your Life (New York Times, June 1, 2008)

Selected External Courses

cs101: Building a Search Engine (open on-line course offered through Udacity that has enrolled over 500,000 students)
cs387: Applied Cryptography (open on-line Udacity course that has enrolled over 70,000 students)
What Every Hacker Should Know about Theory of Computation (lecture at HackerSchool, New York, October 2014)
Engineering Cryptosystems (4-class course on building cryptographic systems for working engineers, taught at Tyson's Corner AMC Theater, October 2013)

Dorina cs101


I've been at UVa since fall 1999, after completing my PhD, SM and SB degrees at MIT.

My most visited page is my Advice for Prospective Research Students. I have also written some advice for new (and disgruntled) professors on How to Live in Paradise, and collected my favorite advice from others.

My academic genealogy traces back to Gottfried Wilheim Leibniz.

I have taken some pictures including: Yellowstone, Glacier, Death Valley, Yosemite, Lawn Lighting, Nature near Charlottesville, China, and Bletchley Park. I also have pictures from my trips to World Cups: France 1998, Korea 2002, South Africa 2010. Now, I mostly take pictures of my son and daughter.


I live in Charlottesville, VA with my wife and two children.

Our daughter, Dorina Michelle, was born in June 2012. She made her first original computer science contribution at only eight months old, discovering the non-equivalence of the Kleene-* and Kleene-X operators. Since then, she has been focusing on languages and inputs and outputs, but hasn't completely neglected theoretical computer science.

Our son, Maxwell Nicholas was born in March 2015. His accomplishments so far have been focused on minimizing interruptions in distributed systems processes, collision-free hashing, odor-optimized garbage collection, and balanced climbing trees.

Family pages: NeuroKitchen Arts Collective (my sister's project), my brother's blog, Science Serving Society (my Dad's site, focusing on traffic safety), Art Talks (by my Mom).