Calendar
The following is a planned schedule of the course. Some topics will be looked at in-depth and some just highlighted. Student presence at the lectures is strongly advised.
Class Schedule
- Week #1: June 10th
Administrativia
Functional Programming
Lisp: Introduction
Lisp: Data Structures
Notes: Lecture Notes
Readings: Wilensky - Chapter 1, 2, 7, 15 - Week #2: June 17th
Lisp: Programming
Lisp: Recursion
Lisp: Functionals 1
Notes: Lecture Notes
Readings: Wilensky - Chapter 3, 4, 6, 8 - Week #3: June 24th
Lisp: Functionals 2
Lisp: Lambda Calculus
Notes: Lecture Notes
Readings: Wilensky -Chapter 8, 9 - Week #4: July 1st
No Class - Week #5: July 8th
Lisp: Other Topics
Lisp: Applications
Notes: Symbolic & Denotational Computing
Notes: Functional Programming Applications
Notes: Functional Programming Slides 1
Notes: Functional Programming Slides 2
Notes: Lecture Notes
Readings: Wilensky - Chapter 12, 13, 18, 20; (excerpts; lecture notes will list the required material) - Week #6: July 15th
Midterm Exam
Prolog: Introduction
Notes: Fall 2006 - Prolog Introduction
Readings: Clocksin - Chapter 1 - Week #7: July 22nd
Prolog: Data Structures
Prolog: Equality, Unification
Prolog: Arithmetic
Notes: Fall 2006 - Examples
Notes: Lecture Notes
Readings: Clocksin - Chapter 2, 3 (3.1-3.3), 6 - Week #8: July 29th
Prolog: Utility Predicates
Prolog: Accumulators, Difference Structures
Prolog: Backtracking, Cut, Fail, Not
Notes: Fall 2006 - Utilities
Notes: Fall 2006 - Accumulators
Notes: Fall 2006 - Cut, Fail, Not
Notes: Lecture Notes
Readings: Clocksin - Chapter 3 (3.4-3.8), 4 - Week #9: August 5th
Prolog: Defining Operators
Prolog: Parsing, Grammars
Notes: Fall 2006 - Operators
Notes: Fall 2006 - Grammar Parsing
Notes: Lecture Notes
Readings: Clocksin - Chapter 9 - Week #10: July 12th
Logic Programming: Introduction
Logic Programming: Logic
Logic Programming: Resolution
Readings: Clocksin - Chapter 10
Notes: Fall 2006 - Resolution - Week #11: July 19th
Prolog: Applications
Readings: Clocksin - Chapter 7, 8, 11