York University- Department of Computer Science and Engineering

SC/CSE 3401 3.00 – Functional and Logic Programming


Course Director: Vida Movahedi

Lectures: Winter 2012, Mondays and Wednesdays 16:00-17:30, CLH 110

Office Hours: Mondays, 14:00- 16:00, CSEB 0002B


Course Outline

Unofficial Grades- tentative, unofficial, and subject to change at the Department's or Faculty's request!


On this page:


Course Schedule

Assignments & Solutions



Page updated on Apr 16, 2012 at 4:00pm

News (latest on top):

·         Apr 16: It was a great pleasure teaching your class. Thank you for the honour. My best wishes for each and every one of you. Any feedback on, e.g. the course material, the assignments and exam questions, or the way the course was taught would be much appreciated.

·         Apr 14: Your marks for the course are submitted to the department.

·         Apr 11: Marks for final exam and Part II are posted. If you need to see your papers, I am available on Wednesday, Apr 11 from 2.30pm-4.30pm and Friday, Apr 13 from 12pm to 1pm. I will submit the final marks on Friday.

·         Apr 3: Assignment 4 marks are posted.

·         Apr 2: Solutions to assignment 4 are posted.

·         Mar 28: Assignment 3 marks are posted.

·         Mar 22: Solutions to assignment 3 are posted.

·         Mar 18: Assignment 4 is updated.

·         Mar 17: Part 1 of assignment 4 is posted.

·         Mar 10: Assignment 3 is posted.

·         Mar 6: The marks for Part I- Logic programming are posted. Here is some notes on marking the midterm and solutions to some questions: test1A

·         Mar 5: Assignment 2 and test 1 marks are posted (see link at the top of the page). I will post a mark for PART I: LOGIC PROGRAMMING soon.

·         Feb 29: Required reading for next week: Chap. 1-2 of Lecture Notes on Lambda Calculus by Peter Selinger

·         Feb 29: Welcome to Functional Programming part of the course!

·         ---------------------------------------------------------------------------

·         Feb 24: Test 1 is on Monday, Feb 27, 4 to 6pm. We start sharp at 4, so please be early.

·         Feb 24: Assignment 2 solutions are posted.

·         Feb 21: My office hours for this week (reading week): Wednesday, Feb 22, 2-4pm.

·         Feb 16: You need to submit Assignment 2 electronically. Please see assignment 2- submit instructions on the bottom of this page. I will also update the FAQ page as new questions arise. Please check it regularly.

·         Feb 11: Assignment 2 is updated. Please include all your code in one file (please read instructions on first page of assignment 2). I will let you know how to submit your file.

·         Feb 5: Assignment 1 marks are posted. See link above. I have also uploaded the first part of assignment 2. I will add the rest of the questions soon.

·         Jan 30: The solutions to assignment 1 are posted.

·         Jan 24: Updated 04_resolution.pdf: I added a few slides and slightly changed example on slide #23.

·         Jan 22: I have updated assignment 1.

·         Jan 15: I have uploaded the first part of assignment 1. I will add the rest of the questions next week.

·         First class will be held on January 4, 2012 at 4pm. See you in CLH110.


Course Schedule (tentative):

Date- week of



January 2

Course Outline and policies



January 9

Introduction to Logic Programming &

Review of Logic

Conjunctive Normal Form and Horn Clauses




January 16

Introduction to Prolog

Resolution & Refutation



January 23



January 30

Assignment 1 (Due Jan 30)

Accumulators and Difference Lists


06_AccDiff_p1.pdf (part 1)

06_AccDiff_p2.pdf (Part 2)

February 6

Cut, Not, and Fail

Input and Output



February 13

Example programs

Review of Logic Programming


February 20

Reading Week

Assignment 2 (Due Feb 24)


February 27

Test 1- Midterm exam

         (4pm-6pm in CLH110)

Introduction to Lambda Calculus and

Functional Programming




[Ref.: Chap. 1-2 of Lecture Notes on Lambda Calculus by Peter Selinger]

March 5

Introduction to LISP

Function definition, predicates, conditionals



March 12

Recursion and Iteration

Property lists

Control over evaluation/ Higher-order functions


14_Property lists.pdf


March 19

Course Evaluation on Monday, at 5:15pm

Assignment 3 (Due Mar 21)


More flexible functions





March 26

Review of Functional Programming


April 2

Assignment 4 (Due Apr 2)

Review of Functional Programming

Test 2- Final exam on Thu, 5 Apr 2012 at 2pm in LAS B




·         Assignment 1 - Due Jan. 30, 2012 (updated Jan 22)

·         Assignment 2- Due Feb. 24, 2012- Updated!

o   Example map file for question 5: map1.txt

o   Important: Submission instructions

o   Assignment 2 FAQ – updated Feb 22, 9:30pm

·         Assignment 3- Due Mar. 21, 2012 at 3:45pm

·         Assignment 4- Due Apr. 2, 2012 at 3:30pm

o   Example pricelist file for question 1: priceList.txt

o   Example text file for question 5: sampleText.txt

o   Important: Submission instructions



·          Solutions to assignment 1

·         Solutions to assignment 2: asg2_W12.pl

·         Solutions to assignment 3

·         Solutions to assignment 4: asg4_W12.lsp