This seminar is a computational look at a variety of games, focusing mainly on combinatorial games (e.g. Chess), games of chance (e.g. Backgammon), and games of imperfect information (e.g. Poker). Students will come to understand not only how we mathematically model such games, but also how we compute optimal (or approximately optimal) play for such games. Sophocles wrote, “One must learn by doing the thing; for though you think you know it, you have no certainty, until you try.” Thus, students will not merely read about game-playing techniques from fields such as Game Theory and Artificial Intelligence, but will also apply them through both handwritten and computer programming exercises. No prior programming experience is necessary; students will be introduced to simple programming languages and techniques as part of the course. By the completion of the course, students will understand the fundamentals for reasoning about many games, gain a sense of how the computer can serve as a power tool for the mind, and experience the joy of discovering new and deep insights into the artificial micro-worlds of games.
- Gain the ability to mathematically model combinatorial games, games of
chance, and games of imperfect information.
- Learn basic algorithms for reasoning about the play of combinatorial
games, games of chance, and games of imperfect information.
- Develop a greater ability to verbally communicate game specifications,
and utilize the computer as a tool to yield insights to game
This course fulfills the Gettysburg College
Qualitative, Inductive, and Deductive Reasoning (QIDR) curricular requirement.
No text is required. Readings
will be provided.
Section A - Glatfelter 112 Tu, Th 1:10-2:25PM:
Office: Glatfelter 209
Office Hours: Mo 3-4PM, Tu 2:30-5PM, We 3-5PM, Th 2:30-3:45PM, Fr 3-5PM or by
appointment. Note: Generally, feel free to drop in if my office
door is open (i.e., most of the time beyond class).
A Video Explainer about Office Hours for Students
15% Game Book Writing (4th Hour Requirement)
10% Quizzes / Exams
5% Class Attendance / Participation
You are responsible to know the material from each lecture and reading
assignment before the start of the next class. Homework is due at
the beginning of lecture on the due date. Late homework will not
necessarily be accepted.
Class attendance and participation is
required. If you attend all classes and are willing to
participate, you'll get 100% for this part of your grade. Even if
you know enough to give a particular lecture, please consider the value
of helping your peers
during in-class exercises.
Woody Allen is quoted as saying
"80% of success is
just showing up." While our class attendance/participation grade
is not 80% of the final grade, it is critical that late arrivals and unexcused
absences are not excessive. Missing more than half of class unexcused is
considered being absent. An unexcused late arrival is counted as a half
absence. If the total number of absences counted this way exceeds
20% of class meetings, i.e. 6 absences or more, the student will have failed
Work Time Expectations
College policy on work expectations: “Each course should claim an
average of 12 hours of student time per week (four class hours and eight hours
of preparation or homework) over the course of the semester.”
Since our course meets only 3 hours (the fourth class hour being replaceable
by an approved fourth hour project beyond the classroom), this means that all
assigned readings, assignments, and game book writing should take an average
of 9 hours beyond the classroom per week. My goal is to help you learn the
best, most up-to-date, high-utility material on games and computation within
that time budget. If you happen to be doing more than 9 hours of work on FYS
187-4 outside of class on average, please meet with me so I can help
understand and help you work towards the intended time budget.
Honesty, Integrity, Honor. These are more important than anything
we will teach in this class. Students can and are encouraged to help
each other understand course concepts, but all graded work must be done
independently. Submitted work
should be created by those submitting it. Submission
of plagiarized work is a violation of the Honor Code, which I
strictly enforce. For
detailed information about the Honor Code, see
What is permitted:
- Discussing problem specifications with other
students, i.e. helping others understand the problem
- Discussing high-level strategies to solving problems
- Showing other students how to solve substantively different problems
- Seeking assistance (as needed) from CS professors, students assistants,
and approved tutors
- Use of references, code, or other aids supplied by your professor
What is not permitted:
- Group assignment work where solutions/answers are not derived
- Failing to cite sources in your research writing
- Viewing and/or using unauthorized code/sources (e.g. solutions found online,
downloads from repositories, etc.)
- Submitting work that implicitly takes credit for work that should be
credited to others
- Efforts to obscure the source of unauthorized work
- Outsourcing work
Put simply, students may discuss assignments at an abstract level (e.g.
specifications, algorithm pseudocode), but must actually form concrete solutions
independently. Credit should be given where credit
is due. Let your conscience be your guide. Do not merely focus on
the result; learn from the process.