
|
Declarative Methods
Prof. Jason Eisner
Course # 601.432/632 - Spring 2026
|
|
Announcements
- 2/2/26 Homework 1 is ready for you. Due on Mon 2/16 at 2pm. Start now—it's long!
- 1/19/26 Welcome! Class starts
Wednesday 1/21, 3-4pm, in Hodson 213.
Key Links
Schedule
Format: A typical unit will last two
weeks. The first week will cover a particular declarative language.
The second week will look at strategies used by modern solvers for
that language. Your homework (assigned at the end of the first week)
will ask you to program in the language, using specific solver
software.
Warning: The schedule may change. Future
lectures (and homeworks) may also change, especially for topics
later in the course.
.
Week 1: Introduction (Jan 20, 22, 26)
- Lectures: intro,
little languages,
formal languages
- What is this course about?
- A broad view of computer languages, including "little languages."
- Some examples of declarative languages.
- How could you build a new language?
- A review of formal languages and reductions.
- Readings
- Resources
Weeks 2-3: Satisfiability (Jan 28, 30, Feb 2; Feb 4, 6, 9)
- Lectures
- Homework 1
(assigned 2/2, due 2/16)
- Solving logic puzzles
- Constructing dense crossword puzzles
- Readings
- Resources
Weeks 4-5: Constraint Programming (Feb 11, 13, 16; Feb 18, 20, 23)
- Lectures
- Homework 2
(assigned 2/16, due 3/2)
- Readings
- Resources
Project proposals due on Feb 27
Weeks 6-7: Logic Programming (Feb 25, 27, Mar 2; Mar 4, 6, 9)
- Lectures
- Homework 3
(assigned 3/2, due 3/23)
- Readings
- Resources
- SWI Prolog (the most
popular open-source Prolog, if you want to use something
other than ECLiPSe)
- Prolog Programming in Depth, an online book by Michael A. Covington, Donald Nute, and Andr� Vellino
- The Art of Prolog, by Richard O'Keefe, and its sequel, The Craft of Prolog
- Prolog
and Natural Language Analysis (online edition), by Fernando
Pereira and Stuart Shieber—for NLP fans and the NLP-curious,
a classic published in 1987 just before the statistical revolution hit NLP
Midterm Exam (Mar 11)
Spring Break (Mar 14-22)
Week 8: Soft Constraints (Mar 13, 23, 25)
Weeks 9-10: Mathematical Programming (Mar 27, 30, Apr 1; Apr 3, 6, 8)
- Lectures
- Homework 4
(assigned 4/1, due 4/15)
- Readings
- Resources
Weeks 11-12: Dynamic Programming (Apr 10, 13, 15; Apr 17, 20, 22)
- Lectures
- Homework 5
(assigned 4/15, due 4/27)
- Readings
- Resources
Week 13: Catch-up, Review, or Guest Lectures (Apr 24, 27)
Final Exam (Tue, May 5, 9am-noon)
Term Project
Old Materials
Here are some materials that we covered in past years but
will probably omit this year.
Satisfiability Modulo Theories
(Ken Roe gave a guest lecture on this topic in 2013.)
Linear Classifiers
(This topic is now covered well in 600.475 Machine Learning.)