Official name: Introduction to Information Technologycs1120: 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)
Spring 2024
Spring 2016cs2102: Discrete Mathematics
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
Fall 2017 (co-taught with Mohammad Mahmoody)cs2220: Engineering Software
Fall 2016
Fall 2010 [Classes]cs216: 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
Fall 2021 (co-taught with Nathan Brunell)
Fall 2020 (co-taught with Nathan Brunell)
Fall 2019 (co-taught with Nathan Brunell)
Spring 2010
Spring 2008 (as cs302)
cs3501: Everyday Ethics and Quotidian Quandries for Computer Scientists
Spring 2021 (this was a fully virtual pandemic-lockdown class, with most sessions meeting using Rally). [Schedule] and [Final Projects].
Introduction to Operating Systems, using the Rust programming language and focusing on building secure, robust, and scalable computing systems.cs4501: Computational Biology / Biological ComputingSpring 2014 (includes edited video lectures)
Fall 2013
Spring 2022cs4501: Cryptocurrency
Cryptocurrency Cafe, Spring 2015cs4501/econ4559: Markets, Mechanisms, and Machines
Cryptocurrency Cabal, Fall 2015
Spring 2020 (co-taught with Denis Nekipelov from Economics)cs588: Cryptology: Principles and Applications
Spring 2019 (co-taught with Denis Nekipelov from Economics)
Spring 2005PAVS 4500: How will Artificial Intelligence change Humanity?
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]
Pavilion Seminar offered through the College of Arts and Sciences.
Spring 2001Special Topics Seminars (listed as cs651, cs6501, or cs851)
Spring 2000 [SEAS Evaluation]
cs6501: Evaluation Crisis in Computer Science (Fall 2024)
cs6501: Risks and Benefits of Generative AI and LLMs (Fall 2023)
cs6501: Security and Privacy of Machine Learning (Spring 2018)
cs6501: Understanding an Securing TLS (TLSeminar) (Spring 2017)
cs6501: Data Hacking "Show-and-Tell"inar (Fall 2014)
cs6501: Great Works in Computer Science (Spring 2013)
cs6501: Principles Of Knowledge Engineering and Reconstruction (Spring 2011)
cs6501: Security Seminar (Fall 2009)
cs851: Web Applications Security Seminar (Fall 2007)
cs851: Malware Seminar (Fall 2004)
cs851/651: Cryptography Applications Bistro (CrAB Seminar) (Spring 2004)
cs851: Biologically-Inspired Computing (with Jim Cohoon) (Spring 2003)
cs101: Introduction to Computer Science (Building a Search Engine) (Course Notes)
This course uses building a search engine as a vehicle for learning about computer science and Python programming. It has enrolled over 500,000 students (since launching in February 2012. Selected news articles: Prospect Magazine, Chronicle. Blog post describing my experiences developing cs101: CS101: One Year Later.
cs387: Applied Cryptography [Course Materials]
According to InformationWeek, this the #1 Online Class To Pump Up IT Careers, although it is more meant as a fun introduction to cryptography. It has enrolled over 70,000 students. Daniel Winter, with help from other students in the class, produced a textbook for the class.