Declarative Programming, Fall 2020, TR 1400-1550. CS 410 028 10884 CS 510 024 10909 ------------------------------------------------------------------ WEEK 1 Tue, Sept 29 Course presentation (includes course material and resources). Declarative programming. Introduction to programming in Curry (will take several lectures). Thu, Oct 1 Homework of Declarative programming section due before class by email (consult "How to submit code"). Continuation of the introduction to programming in Curry. ------------------------------------------------------------------ WEEK 2 Tue, Oct 6 Continuation of an introduction to Curry section. The focus is on non-determinism. Discussion of phase 1 of homework 3. Thus, Oct 8 Completion of Presentation of unit testing in Curry. Phase 1 of homework 3 of an introduction to Curry section due before class (this is only recommended, do not turn it in). Discussion of the homework of an introduction to Curry section. This homework will be due in week 3. ------------------------------------------------------------------ WEEK 3 Tue, Oct 13 Homework of an introduction to Curry section due before class. Problem 1, 2 and 3. Follow the "How to submit code" document. Mini test in class, the first 20 minutes. Discussion of the homework. Volunteer to have your code reviewed. Continuation of the presentation of the rewriting section. Thus, Oct 15 Continuation of the presentation of the rewriting section. Discussion of some programming problem. ------------------------------------------------------------------ WEEK 4 (updated Tue 20 Oct 2020 09:31:47 AM PDT) Tue, Oct 20 Homework of Rewriting section due before class. Problems 3, 5, 6 found in the slides. Extra homework: http://web.cecs.pdx.edu/~antoy/Courses/TPFLP/exercises/types.txt The solution of these problems will be presented during the lecture. Start Narrowing section, free variables. Thu, Oct 22 Problem 9b found in the Rewriting section slides due before class. Continue the presentation of Narrowing section. Discussion of the Narrowing section homework. ------------------------------------------------------------------ WEEK 5 Tue, Oct 27 Exercises number 5, 8, 9, and 10a of the Narrowing section due before class. Solution of these exercises. Discussion about the midterm. Start the Strategies section. Thu, Oct 29 ***Midterm*** during the lecture time. Takehome portion of the midterm assigned after the lecture. Due date of takehome portion is Sat Oct 31 at 12 noon. ------------------------------------------------------------------ WEEK 6 Tue, Nov 3 Homework due before class, complete problem 9 of the Narrowing section. Discussion of midterm. Continuation of the Strategies section. Thu, Nov 5 Completion of Strategy section. Examples of constructing definitional tree and executing narrowing steps. ------------------------------------------------------------------ WEEK 7 Tue, Nov 10 Homework of Strategies section (from schedule, problems 6 and 8 in the slides) and extra homework (see below) due before class. Extra homework: Sample Programming Interview Question at https://www.dailycodingproblem.com/ . Quiz in class about definitional trees and narrowing steps. Start Compiling section. Thu, Nov 12 Review of substitution, unifier, narrowing step. Solution of homework and quiz 2. Continuation of Compiling section. ------------------------------------------------------------------ WEEK 8 Tue, Nov 17 Continuation of Compiling section. Thu, Nov 19 Maybe one more example of compiling and computation. Start Patterns section. Constrained Constructor. ------------------------------------------------------------------ WEEK 9 Tue, Nov 24 Homework of Compiling section due before class. Solution of homework. Continuation of Patterns section. Call by reference. Thu, Nov 26 No lecture, Thanksgiving. ------------------------------------------------------------------ WEEK 10 Tue, Dec 1 Completion of Pattern section. Homework of Pattern section solved in class. Exam preparation. Thu, Dec 3 Final exam (in class part). There is also a takehome part that will be assigned after the in class part and is due on Saturday Dec 5th at 12 noon. ------------------------------------------------------------------