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
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
Accommodation for Students with Disabilities,
Repeating
Passed or Failed Courses for Academic Credit