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)

Catch-Up or Get-Ahead Day  (Mar 13)

Spring Break  (Mar 14-22)

Weeks 8-9: Mathematical Programming  (Mar 23, 25, 27; Mar 30, Apr 1, 3)

Weeks 10-11: Dynamic Programming  (Apr 6, 8, 10; Apr 13, 15, 17)

Week 12: Soft Constraints Term Rewriting?  (Apr 20, 22, 24, 27)

Term Project

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


Recitation Materials


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