|Title||Logic and Programming|
|Lecturer||Sára Jellinek, Attila Molnár, Péter Mekis|
|Codes||BMA-LOTD-311.05, BMI-LOTD-311E.05, BBN-FIL-301.06|
|Prerequisites||The course assumes familiarity with the basic concepts and methods of standard first-order logic. No programming experience is assumed.|
|Description|| In this course we will explore a few ways programming can be used in logic.
In the first 6 classes we will introduce Haskell, a purely functional
language that has its roots in the lambda calculus, while in the second half
we will use Prolog, a relational language that has its roots in first-order
predicate logic. Both of these languages differ considerably from the
mainstream paradigm of imperative languages (like C or Python), so the course
might be interesting to students who already have experience in programming.
Students with a lot of experience in Haskell and Prolog will probably find
our discussion a bit elementary.
∗ Important! ∗
Students will work on their own laptops, please bring yours! (We can provide one or two computers, so don't worry if you don't have one.) Before the first session, please install the Haskell Platform on your device. You can find it here.
Functions defined in session 1 (annotated!)
Homework 1 (deadline: September 17)
Functions defined in session 2 (annotated!)
Homework 2 (deadline: September 25)
Functions defined in session 3 (annotated!)
A few simple recursions with strings (annotated!)
Homework 3 (deadline: October 9):
3 more functions from the Homework 2 sheet, and 3 new functions.
Functions defined in session 4 (annotated!)
Homework 4 (deadline: October 16)
Functions defined in session 5 (annotated!)
Homework 5 (deadline: November 6):
3 more functions from the Homework 4 sheet, and 3 new functions.
Functions defined in session 6 (heavily annotated!)
No more Haskell homeworks! :)