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:

News

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

Topic

Slides

January 2

Course Outline and policies

00_CSE3401.pdf

 

January 9

Introduction to Logic Programming &

Review of Logic

Conjunctive Normal Form and Horn Clauses

01_Introduction.pdf

 

02_CNF_Horn.pdf

January 16

Introduction to Prolog

Resolution & Refutation

03_Prolog.pdf

04_Resolution.pdf

January 23

Lists

05_Lists.pdf

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

07_CutNotFail.pdf

08_IO.pdf

February 13

Example programs

Review of Logic Programming

09_ExamplePrograms.pdf

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

 

 

10_LambdaCalculus.pdf

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

March 5

Introduction to LISP

Function definition, predicates, conditionals

11_Lisp.pdf

12_Functions.pdf

March 12

Recursion and Iteration

Property lists

Control over evaluation/ Higher-order functions

13_Recursion.pdf

14_Property lists.pdf

15_HigherFunctions.pdf

March 19

Course Evaluation on Monday, at 5:15pm

Assignment 3 (Due Mar 21)

I/O

More flexible functions

 

 

16_LISP_IO.pdf

17_MoreFunctions.pdf

March 26

Review of Functional Programming

18_Review.pdf

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

 

 

Assignments:

·         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:

·          Solutions to assignment 1

·         Solutions to assignment 2: asg2_W12.pl

·         Solutions to assignment 3

·         Solutions to assignment 4: asg4_W12.lsp