Algorithms, Computation, and Elections (ACE) — Fall 2025
Course Description
This an inquiry-based course that introduces students to the computational aspects of collective decision-making, i.e., computational social choice (COMSOC). Students will learn to study and design algorithms or prove the lack thereof, to tackle problems in tournaments, fairness in resource allocation, strategic/manipulative voting, electoral control (e.g., gerrymandering and voter suppression), bribery, and coalition formation, among other topics. Students may elect to take this course as a Theory or Applied elective.
Prerequisite: CS 271 (Data Structures and Algorithms) or equivalent with instructor permission.
Learning Goals
- Learn the basic aspects of voting theory, preference aggregation, and COMSOC, e.g., voting rules, electoral manipulation, and fair allocations.
- Devise algorithms for problems in COMSOC, using standard computing techniques, e.g., using reductions, dynamic programming, or greedy algorithms.
- Explore the connection between computational hardness and real-world problems, e.g., gerrymandering or bribery.
- Adapt to studying new computational problems using known strategies.
- Learn how to devise and critique appropriate models in COMSOC.
Instructor Information
-
Name: Dr. Michael C. Chavrimootoo (he/him/his)
-
Email: chavrimootoom (at) d e n i s o n (dot) e d u
(Students can generally expect a response within 24 hours
on weekdays. This does not apply to homework questions sent within 24 hours of the due date. I highly recommend you start your work early.)
-
Office Location: Olin 214.
-
Office Hours: Mondays 2–3PM, Wednesday 3–4PM, and Friday 9–10AM, in my office.
Course Policies
Schedule and Textbooks
- Schedule (subject to change)
- Reference Textbooks (both books are available for free through the library):
- J. Rothe (eds.), Economics and Computation, second edition. Springer Cham, 2024.
- F. Brandt, V. Conitzer, U. Endriss, J. Lang, and A.D. Procaccia (eds.), Handbook of Computational Social Choice. Cambridge University Press, 2016.
- Additional readings will be assigned on an as-needed basis.
Grading
Grades will be based on the following cutoffs.
| Category |
Activities & Participation |
Weekly Quizzes |
Homework (~6) |
Final Project |
Final Oral Exam |
| % |
30 |
10 |
20 |
20 |
20 |
| A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D+ |
D |
D- |
F |
| ≥ 93 |
≥ 90 |
≥ 86 |
≥ 83 |
≥ 80 |
≥ 76 |
≥ 73 |
≥ 70 |
≥ 66 |
≥ 63 |
≥ 60 |
< 60 |
-
The assessments are scaffolded based on
Bloom's Taxonomy;
the best way to succeed in the high-scoring assessments is to put in earnest effort into the other assessment categories.
-
This class will be heavily interactive, and a sizeable portion of your grade will come from in-class activities, so consistent participation will be essential for your success.
But fear not as you will be given regular feedback (using rubrics), so you will have plenty of opportunities to grow in that category.
If you must miss a class session for a foreseeable reason, you must inform me at least 3 days in advance to be given an opportunity to make up for any missed in-class assessment.
-
Your final project will involve applying the core concepts developed in this course to real-world problems and scenarios. For example, you may end up devising a new model or applying an existing model (or algorithm) to a new setting.
-
Quizzes will be on Mondays, during the first 10 minutes of class, and cannot be made up.
-
All deadlines are firm, unless specific extenuating circumstances apply.
Words of Advice
-
Ask for help early and often. Come to drop-in hours regularly, even if it's just to chat.
-
Approach the material with curiosity and be prepared to critically engage with it. Ask lot of questions as that is a cornerstone of learning.
-
Often, when a problem seems too hard, it is a good idea to take a step back to clear your head before returning to it; endlessly hacking at a problem is rarely productive.
-
"After solving a challenging problem, I solve it again from scratch, retracing only the insight of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that would have led me to approach the given problem in the most efficient way the first time." – Robert Floyd
-
Solve before optimizing: Your first solution will usually be messy and complicated. Subsequently, try to see if there's a simpler way, by developing deeper insights.
Disclaimer
This page is subject to change throughout the term. Important changes will be announced in class.