Course Details
|
Textbooks:
Other book chapters and papers will be linked through this
website.
Programming Language:
For programming assignments, the language of our choice is Python 3.
You are free to use any IDE, but Visual Studio Code is recommended.
Grading:
Prof. Irfan has designed an evaluation scheme specifically for this course with the following goals:
- Incentivizing learning and engagement (which itself is a game theory problem)
- Weighing student growth more than test scores
- Embracing hard topics (including latest scientific papers) without fears of losing grade
Goal 1 will be achieved by an in-class exam as well as viva voce, which means "with the living voice" in Latin and is usually translated as an oral exam. However, in this course, viva voce will mean face-to-face conversation with Prof. Irfan. You will get points on viva voce by demonstrating that you have an adequate understanding of the course materials.
Goals 2 and 3 will be achieved by ungraded assignments. You will get detailed feedback on the assignments. The ungraded assignments will be connected with viva voce through the feedback, as described in the bullet points below. Goal 3 will also be achieved through a final project.
Overall, the majority of evaluation will be ungraded, as detailed below.
-
20% points for exam: There will be an in-class midterm exam. You may bring a 1-page, single-sided, handwritten or typed cheat sheet to the exam.
-
20% points for formative assessment: The formative assignments (FAs) will be ungraded, but you will receive feedback on them. You will get the points for FAs after you understand the feedback and in some cases (to be specified by Prof. Irfan), after you resubmit corrections.
-
Ungraded summative assessment: The summative assignments (SAs) will be signficiantly harder than the FAs. The SAs will constitute of problem solving and programming assignments. These assignments will be ungraded, but you will receive detailed feedback. The SAs will be connected to viva voce as described next.
-
40% points for viva voce: After you receive the feedback for each SA, you will meet with Prof. Irfan during office hours (or by appointment) for a few minutes and talk to him about the SA. You should come prepared with any necessary corrections to the SA and having reviewed the relevant topics. You will get points based on your understanding of the materials. In addition to SA-related viva voce, you will be asked for viva voce on materials for which there is no SA (e.g., topics in Unit 3). While viva voce will normally be one-on-one, we will occasionally do viva voce in groups.
-
15% points for final project: The final project can be theoretical (addressing a theoretical question that's not already answered in a paper) or practical (implementing a solution -- perhaps from a paper -- for a problem of your interest). You will submit a project report.
-
5% points for good citizenship: Attendance, adherence to the screen policy, and active participation in class, including note taking. Taking handwritten notes is highly recommended for its many benefits.
-
Points to letter grade conversion:
94% A, 90% A-, 85% B+, 80% B, 75% B-, 70% C+, 65% C,
60% C-, 55% D, below 55% F
|
Late Policy:
Extensions will be given if there is any health or other emergency situation. Otherwise, late submissions will be accepted up until 24 hours
after the deadline with a penalty.
Each hour after the deadline would cost 4% (for SAs, this cost will be charged to viva voce).
|
Course Schedule
|
Week |
Unit |
Topics |
Reference |
Links and Notes |
Week 1
(9/3)
|
Unit 1: Foundation
|
1. Course intro: Why study game theory?
2. Example: Braess's paradox
|
[Easley-Kleinberg] Ch 8, Sec 8.1 and 8.2
|
1. Slides
(Course Intro)
2. 2012 Olympics badminton scandal
3. Why were they trying to lose?
|
Week 2 (9/8, 9/10) |
Unit 1: Foundation
|
Intro to game theory: solution concepts and examples
|
[Easley-Kleinberg] Ch 6
|
1. Slides (Intro to game theory)
2.
Why the movie A Beautiful Mind got Nash equilibrium wrong!
|
Week 3 (9/15, 9/17) |
Unit 1: Foundation
|
Intro to game theory: mixed-strategy NE
|
[Easley-Kleinberg] Ch 6
|
Slides (continued)
|
Week 4 (9/22, 9/24) |
Unit 1: Foundation
|
1. Intro to game theory: formal definitions with examples
2. Discrete math
|
1. [EGT] Ch 1-2
2. Set Theory Sections A and C.1
|
1. Slides (continued)
2. Nash's Paper
3. Prof. Irfan's
explanation
|
Week 5
(9/29, 10/1)
|
Unit 1: Foundation
|
1. Solution concepts incl. correlated equilibrium
2. Connection to linear programming
|
1. [EK] Ch 6
2. [AGT] Ch 1 |
Slides (continued)
|
Week 6 (10/6, 10/8) |
Unit 2: Adv. Topics
|
Computational complexity of games
|
1. AGT [Ch 1, 2]
2. Algorithm Design Ch 8 [Canvas]
3. Gottlob et al. paper
|
Slides (Complexity)
|
Fall Break |
|
|
|
|
Week 7 (10/15) |
Unit 2: Adv. Topics
|
Market equilibria: Intro
|
[AGT] Ch 5
|
Slides (Market Equilibria)
|
Week 8 (10/20, 10/22) |
Unit 2: Adv. Topics
|
Market equilibria (continued)
Nonlinear optimization
KKT conditions
|
[AGT] Ch 5
KKT conditions
|
Slides (continued)
|
Week 9 (10/27, 10/29)
|
Unit 2: Adv. Topics
|
Network flow |
Algorithm Design Ch 7 [Canvas]
|
1. Slides (Network Flow)
2. Ford-Fulkerson Demo
|
Week 10 (11/3, 11/5) |
Unit 2: Adv. Topics
|
Graphical games
|
[AGT] Ch 7
|
Slides (Graphical Games)
|
Week 11 (11/10, 11/12)
|
Unit 3: Selected Topics
|
Influence games
|
Influence games paper
Sections 1—3 (up to pg. 86), Sections 4.5, 5 (no proof),
6
|
Slides (Influence Games)
|
Week 12 (11/17, 11/19)
|
Unit 3: Selected Topics
|
Congestion games
|
Papers posted on canvas
|
Slides (Congestion Games)
|
Thanksgiving Break |
|
|
|
|
Week 13 (12/1, 12/3)
|
Unit 3: Selected Topics
|
Mechanism design
|
|
Slides (mechanism design)
|
Week 14 (12/8, 12/10)
|
Unit 3: Selected Topics
|
Coputational social choice
|
|
Slides (computational social choice)
|
Projects |
Unit 3: Selected Topics
|
See Canvas for details
|
|
|
|
Collaboration Policy
With some exceptions, summative assignments (SAs) will normally be done individually. In contrast, formative assignments (FAs) will be group work, but you must write your own submission individually.
Students are expected to follow Bowdoin's Academic Honor Code.
Following is the collaboration policy for individual assignments. You are encouraged
to discuss ideas and techniques broadly
with your classmates, but not specifics of assigned problems. Discussions should be
limited to
questions that can be asked and answered without using any
written medium (e.g., pencil and paper, board, or email). This means that at
no time should a student read anything written by another
student. Violation of this policy
is grounds for me to initiate an action that would be filed with the
Dean's office and would come before the Conduct Review Board. If you have any
questions about this policy, PLEASE do not hesitate to contact me.
This will be a zero-tolerance policy.
If in the future you provide your work to other students, this will also
constitute a violation of Bowdoin's honor code.
|
Github Policy
Making assignment solutions publicly available through Github or other media will constitute a violation of the honor code for this course.
|
AI Policy
We will follow the DCS AI policy in this course.
What counts as Generative AI?
Generative AI refers to all the AI systems that can create new content like text, code, images, audio, and other types of media. This includes but is not limited to:
- Large language models (ChatGPT, Claude, Gemini, etc.), apps and agents derived from them, and aggregator interfaces (Amplify, LibreChat, etc.)
- Code generation tools (GitHub Copilot, Google Colab, Cursor, etc.)
- Image generators (DALL-E, Midjourney, etc.)
- AI-powered writing assistants and autocomplete features
- NotebookLM, Quizlet AI features, and other AI-enhanced study tools
Always acknowledge what generative AI tools were used to help you complete assignments.
How can generative AI help you to learn in this course?
- Converting slides and notes to study guides and podcasts (e.g., NotebookLM)
- Creating practice materials like flashcards and mock quizzes or exams (e.g., Quizlet)
- Proposing a study plan
- Providing alternative explanations or examples
- Suggesting refinements to grammar and corrections to spelling
- A guide to debugging code
How can generative AI impair your learning in this course?
- For coding projects, AI often misses design layers, making results hard to debug
- Reduces critical thinking and problem-solving abilities
- Can limit creativity
- Creates a sense of false confidence
- Creates dependency
- Reduces retention
- Limits research skills
- Denies you the possibility of self-expression in a constructive environment
Other costs of using AI
- Environmental impact – large energy use
- Labor exploitation – poorly paid workers for moderation and labeling
- Digital colonialism – reinforces inequalities and Western perspectives
- Digital divide – widens gaps in tech access
- Aggregation – concentrated power in few companies
- Privacy – inputs may be stored despite disclaimers
Why do we give you assignments?
"We don’t assign essays because the world needs more student essays." - Emily Bender
Assignments are designed to help you develop essential skills and ways of thinking that will serve you throughout your education and beyond. Each assignment is an opportunity to practice critical thinking, develop your unique voice, learn from struggle, engage with material, demonstrate learning, and prepare for future challenges.
Academic Integrity Expectations
- Be transparent about AI use
- When in doubt, acknowledge it
- Submit your prompts with assignments
- Understand that overreliance hinders learning
- Violations will be treated as academic dishonesty
When is generative AI not allowed?
- To generate code. AI code lacks structure and context and is often too complicated to debug (Prof. Irfan can give you many examples). You must write the initial draft of code yourself.
- To generate text; e.g., to flesh out an outline, leading to an initial draft that you intend to revise
- To brainstorm – your background is richer than AI’s
- To solve problems – designed to strengthen critical thinking
- As a search engine for facts – verify independently
- To analyze data or interpret results without your own reasoning
- To generate ideas for creative projects or research questions
- To complete exams or quizzes unless permitted
- To translate assignments or materials without permission
When can generative AI be used?
- Polishing text by checking for grammar, spelling, and styling suggestions
- Outlining, i.e., preparing an initial structure with AI to be expanded with your own perspective (note that the opposite is not allowed)
- Debugging your code, including generating test cases
- Getting help on a software tool (e.g., how do I do X?)
- Finding resources to support research
- Testing discussion questions for class
- Checking your work and getting preliminary feedback
|
Screen Policy
We will follow the DCS screen policy.
No screen use is permitted in class unless explicitly stated by the instructor or in cases of learning accommodations. This includes phones, tablets, and computers. Most courses will display a symbol during presentations that indicates when screen use is allowed. When screens are not permitted, all devices should be put away and out of sight.
If you have a documented accommodation that allows the use of a laptop or tablet for note-taking, please make sure to submit the appropriate materials to the professor.
|