This is a class about the digital economy, specifically the interplay between economic thinking and computational thinking as it relates to electronic commerce, incentives engineering, and networked systems. Topics covered vary each year, but include a subset of:
game theory (including algorithmic game theory),
auctions (including internet advertising and combinatorial auctions),
incentive compatible mechanism design (including theoretical and algorithmic approaches),
human computation, crowd sourcing, and peer prediction,
matching algorithms,
trust and reputation,
cryptoeconomics,
networks (network formation, cascades, games on networks),
privacy (including differential privacy, privacy-protected advertising), and
ethical considerations.
Emphasis is given to fundamental topics, and the class involves the discussion of theoretical and empirical content, as well as algorithm design. We hope to convince you that economic considerations matter in many computational settings, and that computation matters in many economic ones.
We will assume familiarity with probability theory (MATH 3100/APMA 3100), multivariable calculus, linear algebra, and the basics of theoretical computer science (e.g., complexity theory, asymptotic runtime analysis), discrete mathematics (CS2120 or math equivalent). You should also be prepared to write multi-file programs in Python. No background in economic theory is assumed, although students without some economics background would benefit from a course that provides exposure to the basic ideas of utility maximization and rational behavior (e.g., from an AI course).
Chapters will be distributed during the course. Networks, Crowds, and Markets: Reasoning About a Highly Connected World, by David Easley and Jon Kleinberg, also provides a good introduction to many topics (this is not required reading).
Students should complete some simple comprehension questions before each class, these due by the beginning of class. It is very important to keep on top of the reading, and familiarity with the reading will be assumed during lecture. You should set aside two hours before each class for the reading.
I do not expect you to fully understand everything before coming to class. Rather, the goal you should set for yourself is to familiarize yourself with new terminology and definitions, and be ready to ask about things that you find especially confusing.
Online Q+A. We will be using Canvas. All announcements will be made on Canvas, and we encourage you to answer each other's questions (but without giving away answers to homework questions).
Office hours. Please make use of staff office hours! You are welcome to come with specific questions about the material, to discuss final project ideas, or just chat about things you find interesting.
You can expect the course staff to work hard to make the course useful for you, be available throughout the semester and look forward to meeting you in person, promptly answer your questions, and return assignments and midterms to you in a timely manner. We expect that you will, in turn, be prepared to play an active role in your learning, and come to class prepared (having done the assigned reading), and participate in classroom discussions. In this way, we can use class time to work together to develop a deeper understanding of the material.
This is challenging class because it covers interdisciplinary material. But we'll work together to try to get as much understanding as possible of the underlying principles and methodologies. If you feel confused about something and you have given yourself some time to try to understand on your own, you should seek help by discussing it with other students or with the staff, or asking a question in the classroom. Other students might well have the same confusion!
After successful completion of this course, you will be able to...
Understand, model and analyze the interplay between incentives and computation in the design of online platforms
Solve mathematical and conceptual problems involving such systems, including problems you have not seen before
Think about how to design (and justify) algorithms and protocols for new problems, using a range of skills, including formal modeling, analysis and simulation.
Articulating the big ideas from each lecture
Making connections between different concepts
Synthesizing concepts with ideas from other branches of computer science, including machine learning, complexity theory, and artificial intelligence
Having an appreciation for the way in which computational systems influence, and are influenced by, the aggregate behavior of groups of people
Justify your thinking by clearly articulating the principles that apply in a given setting
Explain your solutions, either written or orally to peers and instructors
You are required to read papers and other listed reading materials before each class. (Materials listed under Extra Readings on the Schedule Page are optional.) We will use Perusall for pre-class readings. You must complete the Perusall assignment (by interacting and commenting while you read) before class. We might post a few reading questions for each paper to help guide your reading. Some example things to think about during your reading are:
what is the main contribution?
is this important, and why?
what was the main insight in getting the result?
what is not clear to you?
what did the authors not do?
what are the most important assumptions, are they limiting?
if applicable, what applications does this suggest?
how does this relate to other things we have seen?
what extensions does this suggest?
can you suggest a two-sentence project idea based on these ideas?
You won't be graded on the correctness or the rigorousness of your comments. However, we'd like to emphasize that spending time to read papers before class is crucial for your learning in this course. We don't expect that you'll fully understand the papers before class. But you must come to class prepared and being prepared could mean bringing in your questions and points of confusion. I also recommend you read the blog post by Prof. Michael Mitzenmacher on How to Read a Research.
There are two types of assignments: theory and programming.
Practice theory assignments include qualitative discussion questions as well as formal, theoretical analysis. The qualitative questions will help you gain an understanding of the assumptions behind the models that we discuss, and the connections to real-world problems. The theoretical questions will teach you to formally analyze simplified economic and computational systems, and to reason precisely. Some problems will require you to write proofs. These assignments will not be graded but will be an invaluable resource to practice for midterms. We will provide sample answers to these assignments and you should critically evaluate your answers once the solutions is available.
Programming assignments are mainly in Python, and will let you experiment with simplified models of real problems. These flow into contests (and very good performance can lift up a grade at a grade boundary) where we pit submissions against each other. The assignments are designed to give you the chance to be creative and experiment with different ideas. You are strongly encouraged to work in pairs on the programming assignments.
There will be two in-class midterms --- one is half-way through the semester, and the second in the end of the semester (and non-cumulative).
There is a class project. The goals of the project and are to allow you to explore independent interests, learn more about a particular area, and practice teamwork and presentation skills. The project will result in a final paper that is due during reading week. Projects should be done in groups of 2 or 3, and may be primarily theoretical or primarily programming-based.
A project can also involve an exposition of a topic related to topics covered in class, but in this case should be done by a single student.
Submissions are to Perusall or Canvas. We will only give extensions for emergencies, and will need a note from your academic dean. In the case of regrade requests, the work will be regraded fully, and your grade may go up or down. Regrade requests are due 1 week after the grades are released.
We will evaluate the programming assignments according to the following criteria:
Correctness: does it work?
Write-ups: what did you do? Why? How well did it work? Why did you get the results you did? Is the writing clear?
In class contests: How does your approach compare to those of your classmates? Doing well in contests will be worth a large amount of glory (!) but will only factor into your grade at grade boundaries.
Your final grade will be determined as follows:
Programming Assignments: 15 %
In-class midterms: 40%
Final project: 15%
Participation (i.e., in class 5%, Perusall readings and quizzes 10%, homeworks 10%, peer review 5%): 30%
The course philosophy is that we want you to work together and feel comfortable talking about the problem sets. Discussion and the exchange of ideas are essential to doing academic work. However, at the same time, we want to be able to grade your own work, and not the work of your friends. Please reach out to David Parkes if anything is unclear or you have concerns.
Comprehension Questions: You can discuss the reading with others but your responses should be your own.
Single-person Assignments (theory): For the theory assignments, you are encouraged to discuss with your classmates as you work on problem sets. However, you should not share answers, and after discussions with peers, you should make sure that you can work through the problem yourself and ensure that any answers you submit for evaluation are the result of your own efforts. In addition, you must cite any books, articles, websites, lectures, and such that have helped you with your work. Similarly, you must list the names of students with whom you have collaborated on problem sets.
Group assignments (programming): For the programming assignments, we expect you and your partners to design and implement the solutions together. You may also discuss with your classmates in other groups, but not share code or answers. Make sure that your group can work through the problem yourself, and ensure that any answers you submit are the results of your own efforts. In addition, you must cite any books, articles, websites, lectures, and such that have helped you with your work, and list the names of students from other groups with whom your group has collaborated.
Class project: You are encouraged to consult with your classmates on the choice of topic and to share resources. You may also find it useful to discuss your class project with other students. Otherwise, the guidelines are as above, depending on whether your project is a single-person or multi-person effort.
Generative AI/LLM policy (1 of 2): If you find it helpful, you may use LLMs to study but not in answering problem sets, both theoretical and programming based. You should cite any tools that you use and you should be able to provide a full explanation of your answers, so that these tools are used as a learning aid but not a replacement for your own learning. You will not be able to access LLMs during the in-class midterms.
Generative AI/LLM policy (2 of 2): For your end of class projects, you may choose to use LLMs as a tool to help with your writing, but as with all other work, you are responsible for the content of your paper, including its correctness and that it does not plagiarize other sources. In particular, you must have a full understanding of the paper that you turn in, and be able to explain its content (away from your AI helper!). Also, it is essential that you cite any tools that you use, including a few sentences to explain how you used them.
Computers and other wireless devices should be turned off and stored during class, except such computers or devices that are approved accommodations for students with disabilities, or as otherwise permitted by the faculty member. You are allowed to take handwritten notes with a tablet or notes on your computer using the Obsidian editor in full screen mode.
UVA is committed to providing a safe learning environment where all students, faculty, and staff members feel welcomed and valued. Discrimination, harassment, and sexual misconduct is antithetical to our values and is therefore prohibited on our Grounds and in this class. UVA strongly encourages all members of the community to take action, seek support, and report these incidents to either the Title IX office or Office for Equal Opportunity and Civil Rights (“EOCR”).
Title IX/Sexual Misconduct
Title IX of the Education Amendments Act of 1972 and UVA policy prohibit sexual and gender-based harassment, sexual assault, intimate partner violence (dating/domestic violence), stalking, sexual exploitation, and retaliation. If you (or someone you know) has experienced or is experiencing these types of behaviors, know that you are not alone, and you deserve support.
At UVA, all faculty members and TAs are “responsible employees,” which means that if you tell me about a situation involving these forms of sexual misconduct (for example, during my office hours or in an email), I must share that information with the Title IX Office. This is to be sure you are connected with all the support the university can offer and learn about your options and rights. When you receive outreach from the University asking if you would like to meet, you choose if you want to respond and what resources you may need; you are under no obligation to respond.
Please know that I am not required to report disclosures students may make in academic coursework, including classroom discussions, papers, or other assignments, unless its shared for the purpose of obtaining help, such as academic accommodations, extensions, etc.
If you prefer to make a report directly to the University, you can do that through the online reporting system, Just Report It (“JRI”). Or if you would rather speak about it with a confidential resource (where what you share is not reported to the University), you can turn to Counseling & Psychological Services (“CAPS”) and the Women’s Center Counseling Staff and Confidential Advocates (for students of all genders). To learn more about the available resources and response options, visit cavcare, UVA’s comprehensive website regarding Title IX and sexual misconduct, or contact the Title IX office at titleixoffice@virginia.edu.
Discrimination/Harassment/Retaliation
UVA also prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status (which includes active duty service members, reserve service members, and dependents), national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation.
All faculty and TAs are also responsible employees for disclosures or reports of potential discrimination, harassment, and retaliation. But as explained in the prior section, I am not required to report disclosures you make in academic coursework, including classroom discussions, papers, or other assignments, unless you share for the purpose of obtaining help, such as academic accommodations, extensions, etc. Also, the same resources and options for individuals who experience sexual misconduct are available for you as well, which you can find at eocr.virginia.edu/resources. If you are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to JRI or contact EOCR.
Disability and Pregnancy Accommodations
If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me. If you have a disability, or think you may have a disability, you may contact the Student Disability Access Center (“SDAC”), to request reasonable accommodation(s) for this course. You can find more information about SDAC, including how to apply for services online, through their website. If you have already been approved for accommodations through SDAC, please make sure to send me your Faculty Notification Letter as soon as possible and meet with me so we can develop an implementation plan together.
Students may be entitled to reasonable accommodations for pregnancy, childbirth, or related medical issues. Please contact SDAC for additional information. Pregnant and parenting students are encouraged to contact SDAC or EOCR to discuss plans and ensure ongoing access to their academic courses and program. Information for pregnant and parenting students is also available on EOCR’s Pregnancy and Parenting Resources webpage.
Religious Accommodations
UVA also provides reasonable accommodations when a student’s sincerely held religious beliefs or observances conflict with academic requirements. Students who wish to request an academic accommodation for a religious observance should submit their request to me by email as far in advance as possible.
If you have questions or concerns about your request, you may contact EOCR at UVAEOCR@virginia.edu or 434-924-3200 or visit their Religious Accommodations webpage for additional information. Please note that receiving an accommodation does not relieve you of your responsibility to complete any coursework you miss as the result of the accommodation.