:
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
Time Monday 18:00-19:30
Venue i-104
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.
Literature
Session 1 Functions defined in session 1 (annotated!)
Homework 1 (deadline: September 17)
Session 2 Functions defined in session 2 (annotated!)
Homework 2 (deadline: September 25)
Session 3 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.
Session 4 Functions defined in session 4 (annotated!)
Homework 4 (deadline: October 16)
Session 5 Functions defined in session 5 (annotated!)
Homework 5 (deadline: November 6):
3 more functions from the Homework 4 sheet, and 3 new functions.
Session 6 Functions defined in session 6 (heavily annotated!)
No more Haskell homeworks! :)