Johns Hopkins Computer Science Home
Johns Hopkins University The Whiting School of Engineering

Declarative Methods
Prof. Jason Eisner
Course # 601.432/632 - Spring 2026

search tree

Announcements


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)

Weeks 2-3: Satisfiability  (Jan 28, 30, Feb 2; Feb 4, 6, 9)

Weeks 4-5: Constraint Programming  (Feb 11, 13, 16; Feb 18, 20, 23)

Project proposals due on Feb 27

Weeks 6-7: Logic Programming  (Feb 25, 27, Mar 2; Mar 4, 6, 9)

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)

Weeks 11-12: Dynamic Programming  (Apr 10, 13, 15; Apr 17, 20, 22)

Week 13: Catch-up, Review, or Guest Lectures (Apr 24, 27)

Final Exam  (Tue, May 5, 9am-noon)

Term Project


Recitation Materials (available on Piazza)


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.)