York University- Department of Computer Science and Engineering

SC/CSE 3401 3.00 – Functional and Logic Programming

 

Course Director: Vida Movahedi

Lectures: Summer 2010, Wednesdays 19:00-22:00, CLH 110

Office Hours: Mondays, 12:00- 14:00, CSEB 2002

 

Announcements and Schedule

 

Course Description: from 2009/2010 Supplemental Calendar

This course covers functional and logic programming. Together with the students' background on procedural and object-oriented programming, the course allows them to compare the development of programs in these different types of languages.

"Functional programs work with values, not states. Their tools are expressions, not commands. How can assignments, arrays and loops be dispensed with? Does not the outside world have states? These questions pose real challenges. The functional programmer can exploit a wide range of techniques to solve problems." (Paulson, 1996)

"Based on predicate logic, it [logic programming] allows computing problems to be expressed in a completely `declarative' way, without giving instructions for how the problem is to be solved. An execution mechanism, like the one embodied in implementations of Prolog, can then be used to search efficiently and systematically for a solution of the problem." (Spivey, 1996)

Topics on functional programming may include: recursive, polymorphic and higher-order functions; recursive types and type inference. Topics on logic programming may include backtracking, resolution and unification.

Prerequisites: General prerequisites, MATH1090 3.0

 

Important Dates:

First Class

May 5, 2010

Lab

June 16, 2010

Midterm

June 23, 2010

Drop date

July 5, 2010

Last class

July 28, 2010

Exam period

August 3- 13, 2010

 

Grading scheme:

Assignments & Lab

4 assignments, 1 Lab, 30% total

Midterm exam

30%

Final exam

40%

 

Textbooks:

·         Common LISPcraft, Robert Wilensky, W.W. Norton & Co. , 1986

·         Programming in Prolog, W.F. Clocksin, C.S. Melish, Springer-Verlag, 5’ed, 2004

Online books:

·         Ulf Nilsson and Jan Maluszynski, Logic, Programming and Prolog (2ed) 

·         Peter Seibel, Practical Common Lisp, Apress

Policies:

·         To get a passing final grade, you need to pass both parts of this course: Logic Programming AND Functional Programming.

·         NO LATE ASSIGNMENTS!

·         Each student will have to produce an individual assignment (marked “0” otherwise).

·         Missed tests with good reason (normally medical, and well documented) will have their weight transferred to the final exam. There are no "make up" tests. Tests missed for no reason are deemed to have been written and are marked "0" (F).

·         Follow these links to familiarise yourselves with Senate's expectations:

Important course information for students

Academic Honesty

Academic Accommodation for Students with Disabilities,

Religious Accommodation

Repeating Passed or Failed Courses for Academic Credit