Syllabus
Overview
The main goal of this course is to provide an introduction to the interdisciplinary literature for students looking to identify research directions in this area. Along the way, we will also develop some technical background in game theory, economic modeling, algorithmic aspects of distributed platforms, and hopefully also more general skills related to reading papers and thinking about research problems. This is a seminar course and students will be expected to participate in class discussion, present one or more papers, and write a final course paper. Students are expected to achieve a comfort level with both economic and computational thinking, become familiar with the status quo in the area, and, to the extent possible, work on an open research problem.
Prerequisites
We will assume familiarity with probability theory, single-variable calculus, linear algebra, and the basics of theoretical computer science (e.g., complexity theory, and asymptotic runtime analysis). 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).
Materials and Resources
There is no required text. All readings will be distributed electronically and sometimes in class.
Support Resources
- Online Q+A: We will be using Ed. All announcements will be made on Ed, 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.
Philosophy
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, and promptly answering your questions. We expect that you will, in turn, be prepared to play an active role in your learning, 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.
CS 6501 is a 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!
Learning Outcomes
After successful completion of this course, you will be able to...
Apply principles of economics and computation 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.
Organize your learned knowledge in Econ/CS, by: - 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
Collaborate and communicate clearly, in particular: - 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
Grading
This course is primarily a seminar course. We will spend most of the term reading and discussing research papers. However, we will include lectures on some important background materials that will help with understanding the material in the papers that we will read.
The final grade in the class will break down roughly as: participation and comments 35%, presentation of research papers 25%, and project 40%. Students are expected to read the papers in advance, submit comments about the papers interact with peers on Perusall before class, participate in class discussion, and present and lead discussion on one or more sets of papers.
Submitting Comments
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) by midnight before class. We typically will post a few reading questions for each paper to help guide your reading.
For research papers, some example things to think about during your reading are: - what is the main contribution of the paper? - 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 the ideas in this paper?
Presenting Papers
Students will present papers and, in addition to the presentation, be ready to lead a discussion in class. Students presenting papers must come by to office hours one week before their presentation and talk with me about the paper(s) before their presentation. Students are also asked to propose reading questions for the papers they present.
Final Paper
The goal of the final paper is to develop a deep understanding of a specific research area related to the topic of the class, and to the extent possible to work on an open research problem. Although paper topics must be approved, students are free to pick a topic of interest in the general field related to the topic of the semester. Students are required to submit a proposal, give a short presentation, and submit a final paper (maximum 10 pages except for Appendix material). Papers may be computational, theoretical, experimental, or empirical. Students may write an exposition paper (maximum 10 pages) on at least three related technical papers of their choice that are related to the course material. Such a paper must include an exposition of formal results in these papers, provide a critical discussion of assumptions made by the authors and suggestions about future work, and provide a new perspective. Good papers can form a foundation for a research leading to a conference publication, or a senior thesis for undergraduates. Students are encouraged to work in pairs for final projects other than exposition papers.
- 10/15: project proposal presentation (5 min)
- 10/17: project proposal due
- 12/01, 12/3, 12/8: project presentation (20 min)
- 12/12: final paper due
Collaboration Policy
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 the instructor 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.