David Evans - Courses

Udacity Courses

These courses are open to anyone, and you can start any time.

cs101: Introduction to Computer Science (Building a Search Engine)

This course uses building a search engine as a vehicle for learning about computer science and Python programming. As of April 2013, it has enrolled over 300,000 students (since launching in February 2012. Selected news articles: Prospect Magazine, Chronicle.

cs387: Applied Cryptography

Other Outreach Courses

Cryptography in World War II (4-class course for Jefferson Institute for Life-Long Learning)
Dragon Crypto (2-day cryptography course for middle school students)

UVa Undergraduate Courses

CS1120: Introduction to Computing: Explorations in Language, Logic, and Machines (also known as Computer Science: From Ada and Euclid to Quantum Computing and the World Wide Web)
Fall 2011 [Course Evaluation]
Fall 2009
Spring 2007 (as CS150)
Fall 2005 (as CS150)
Spring 2004 (as CS200)
Spring 2003 (as CS200) [Reviews]
Spring 2002 (as CS200) [SEAS Survey, Course Improvement Survey]

UTF Proposal (2001): University of Virginia Teaching Fellowship: Teaching Introductory Computer Science as a Liberal Art

Textbook (under development, 2007-2011): Introduction to Computing: Explorations in Language, Logic, and Machines

CS2220: Engineering Software
Fall 2010
Fall 2006 (as CS205)
Fall 2003 (as CS201J) [SEAS Evaluations, Course Improvement Survey]
Fall 2002 (as CS201J) [Evaluations]

Course Proposal: NSF CCLI: Teaching Software Engineering Using Lightweight Analysis

CS216: Program and Data Representation (Spring 2006)

CS302: Theory of Computation (Spring 2008)
CS3102: Theory of Computation (Spring 2010)

CS588: Cryptology: Principles and Applications

Spring 2005
Fall 2001 [SEAS Evaluation]
Fall 2000 (as CS551: Security and Privacy on the Internet: Keeping Secrets, Thwarting Imposters and Disarming Malicious Code) [SEAS Evaluation, Course-Specific Evaluation]

UVa Graduate Courses

CS655: Programming Languages
Spring 2001
Spring 2000 [SEAS Evaluation]
CS851: Biologically-Inspired Computing (with Jim Cohoon) (Spring 2003)

CS851/651: Cryptography Applications Bistro (Crab Seminar) (Spring 2004)

CS851: Malware Seminar (Fall 2004)

CS851: Web Applications Security Seminar (Fall 2007)

CS6501: Security Seminar (Fall 2009)

cs6501: Principles Of Knowledge Engineering and Reconstruction (Spring 2011)

cs6501: Great Works in Computer Science (Spring 2013)

Chronological List

Fall 2011: cs1120: Introduction to Computing: Explorations in Language, Logic, and Machines
Spring 2011: cs6501: Principles Of Knowledge Engineering and Reconstruction
Fall 2010: cs2220: Engineering Software
Spring 2010: cs3102: Theory of Computation
Fall 2009: cs1120: Introduction to Computing
Fall 2009: cs6501: Security Seminar
Fall 2008, Spring 2009: On Sabbatical
Spring 2008: cs302: Theory of Computation
Spring 2008: CS493: Web Browser Seminar (created and taught by Adrienne Felt)
Fall 2007: cs851: Web Application Security Seminar
Spring 2007: cs150: Computer Science: From Ada and Euclid to Quantum Computers and the World Wide Web
Fall 2006: cs205: Engineering Software
Spring 2006: cs216: Program and Data Representation
Fall 2005: cs150: Computer Science: From Ada ...
Spring 2005: cs588: Cryptology: Principles and Applications
Fall 2004: cs851: Malware Seminar
Spring 2004: cs200: Computer Science: From Ada ...
Spring 2004: cs851/651: Cryptography Applications Bistro (CrAB)
Fall 2003: cs201J: Engineering Software
Spring 2003: cs200: Computer Science: From Ada ...
Spring 2003: cs851: Biologically-Inspired Computing
Fall 2002: cs201J: Engineering Software
Spring 2002: cs200: Computer Science: From Ada ...
Fall 2001: cs588: Cryptology
Spring 2001: CS655: Programming Languages
Fall 2000: cs551: Security and Privacy
Spring 2000: cs655: Programming Languages