326.054: Functional Programming: Lisp
Summer Semester 2009.
The course is an introduction to programming in Lisp and it will be based on the book:
Programming in Common Lisp, R. A. Brooks, John Wiley 1985.
The students will be expected to perform practical programming in Lisp. A lisp interpreter and an editor, as well as various source code can be downloaded from the ftp site.
Purpose
Understand the principles of functional programming and aquire the skills for writing Lisp programs.
Organization
The lecture takes place on
Wednesdays from 16:30 to 18:00 in KG 712. If the lecture does not take place in a certain week, this will be announced on this page.
The final grade is 20% based on homeworks. Homeworks will be assigned every week and each one is due the next week. It is preferred to submit the homeworks in electronic form by e-mail, especially the Lisp code. Paper format is also accepted, especially if it contains drawings.
When you submit the homework by e-mail, please send it as attached file and use as name of the file your name and the number of the homework (examples: schreiner-hw-3.txt, mittermayr-hw-2.pdf) and use include the name of the file in the subject field of the e-mail.
Lectures
Lecture 1: Mar 4:
Functional programming in relation to logic and to other programming styles;
Case study: reverse.pdf.
Homework (optional): develop similar programs for the function which computes the lenght of lists.
Lecture 2: Mar 11
Book sections 1.1 - 1.2. Chapt. 1.
Homework 1, due Mar 18: E1.2.1, E1.2.2.
Lecture 3: Mar 18
Book sections 1.3 - 1.8. Chapt. 1.
Homework 2, due Mar 26: E1.3.1, E1.3.2; E1.5.1, E1.5.2, E1.5.3, E1.5.4; E1.7.1, E1.7.2, E1.7.3.
Lecture 4: Mar 25
Book sections 1.9 - 2.2. Chapt. 1. Chapt. 2.
Homework 3, due Apr 1: E1.9.1, E1.9.2; P1.1, P1.2, P1.3, P1.4, P1.5; E2.1.1, E2.1.2; E2.2.1, E2.2.2.
Lecture 5: Apr 1
Design of tail recursive programs reverse.pdf.
Book sections 2.3 - 2.4. Chapt. 2.
Homework 4, due Apr 22: E2.3.1, E2.4.1.
Lecture 6: Apr 22
Book sections 2.5 - 2.6
Loss of portability due to specific builtin types
Programs as logical formulae
Homework 5, due Apr 29: E2.5.1, E2.6.1.
Lecture 7: Apr 29
Book sections 2.7 - 2.9
Homework 6, due May 6: E2.7.1; E2.8.1, E2.8.2, E2.9.1, E2.9.2; and (Attention!) P2.1, P2.2, P2.3. (Attention!)
Lecture 8: May 6
Book section 2.10.
Homework 7, due May 13: P2.4, P2.5, P2.6.
Lecture 9: May 13
Book sections 3.1 to 3.3 (partial, see file Chapt. 3.)
No homework.
Lecture 10: May 20
Book sections: 3.3, 3.4 Chapt. 3.
Homework 9, due Jun 3: E3.3.1.
May 27: no lecture.
Lecture 11: Jun 3
Book sections: 3.5, 3.6 (partial) Chapt. 3.
Homework 10, due Jun 10: E3.6.1, E3.6.2, P3.1, P3.2, P3.3.
Lecture 12: Jun 10
Book sections: 3.6 (end of chapter 3) Chapt. 3.
Homework 11, due Jun 17: P3.4, P3.5, P3.6.
Lecture 13: Jun 17
Review of the material and preparation for the exam.
EXAMINATION: Jun 24
Written examination with exercises similar to homeworks.
Received homeworks: hw-lisp.txt.