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.
Fall 2011 [Course Evaluation]CS2220: Engineering Software
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
Fall 2010CS216: Program and Data Representation (Spring 2006)
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
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]
Spring 2001CS851: Biologically-Inspired Computing (with Jim Cohoon) (Spring 2003)
Spring 2000 [SEAS Evaluation]
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)