August 19 (Thu), 2021 Beginning of course. Syllabus information. Introduction to two of the three websites used in the course.
August 24 (Tue), 2021 Programming language paradigms: imperative (aka procedural aka assignment-based), functional (aka applicative), and logic (aka declarative).
August 26 (Thu), 2021 Ch.1 [H], using the slides from the author and other examples.
August 31 (Tue), 2021 HW1 assigned: Do the exercises at the end of Chapter 1 [H], due 2021-09-07 (Tuesday). Turn in your work (a single pdf file) using the departmental dropbox. Quicksort in Haskell. How to install the Haskell platform. Example of using ghci.
September 2 (Thu), 2021 HW2 assigned, due on 2021-09-14 (Tuesday). Do the exercises at the end of Ch.2 [H] and exercise 1 in Ch.1 [TFTH]. See departmental dropbox entry for details. Ch.2 [H] partly.
September 7 (Tue), 2021 Ch.2 [H], completed. Function composition. Literate programming and .lhs files.
September 9 (Thu), 2021 Ch.1 [TFWH], partly. Discussion of HW2.
September 14 (Tue), 2021 More discussion of HW2. Ch.1 [TFWH] completed, except for discussion of exercises.
September 16 (Thu), 2021 HW3 assigned: exercises at the end of Ch.3 [H], due on 2021-09-23. Exercises at the end of Ch.1 [TFWH] completed. Ch.3 [H] (type and classes), in part.
September 21 (Tue), 2021 Discussion of some aspects of HW3. Ch.3 [H] (types and classes), completed, with many examples.
September 23 (Thu), 2021 HW4 assigned: exercises from ch.4 [H], due on September 30, 2021. Ch.4 [H] (defining functions) completed.
September 28 (Tue), 2021 Ch.4 [H] (list comprehensions) through section 5.3.
September 30 (Thu), 2021 Ch.4 [H] completed, including the Caesar cipher example.
October 5 (Tue), 2021 HW5 assigned, due on October 14, 2021: exercises 1,2,4,5,6,7,9, and 10 Ch.5 [H]. Ch.2 [TFWH] (Expressions, types, and values), partly. Discussion of HW5.
October 12 (Tue), 2021 HW6 assigned: exercises 3,4,6,7,8 Ch.6 [H], due 2021-10-21. Ch.6 [H] (recursive functions) through section 6.5.
October 14 (Thu), 2021 Questions about HW4 addressed. Ch.6 [H] completed with several additional examples of recursive functions on lists.
October 19 (Tue), 2021 The midterm exam will be on Tuesday, October 26. Ch.7 [H] (higher-order functions) through foldr.
October 21 (Thu), 2021 HW7 assigned: Backus FP quiz. Ch.7 completed, except for extended examples (transmit.hs and voting.hs). First 30 minutes of John Backus Video: "Function Level Programming and the FL Language;" see the entry under "Some Useful Links."
October 26 (Tue), 2021 Midterm exam.
October 28 (Thu), 2021 HW8 assigned: exercises from Ch.7 [H] (all), due 2021-11-09. Review of midterm exam. Ch.7 [H] examples in detail (modeling transmission channels; two voting algorithms).
November 02 (Tue), 2021 Ch.8 [H] (Defining Types and Classes) up to the example of natural numbers.
November 04 (Tue), 2021 HW9 assigned: exercises 1-4, 7, and 8 Ch.8 [H]. Ch.8 [H] up to the tautology checker example, started. Discussion of issues related to HW8.
November 09 (Tue), 2021 HW9 due date changed to Tuesday, November 16. Ch.9 [H] (The countdown problem): Hutton's video presentation of this chapter from his book.
November 11 (Thu), 2021 Graduate student paper(s) (on the countdown problem) for presentation assigned. The Tautology Checker example, in detail. Ch.10 [H] (Interactive programming), started.
November 16 (Tue), 2021 Discussion of solutions to HW9. More of Ch.10 [H].
November 18 (Thu), 2021 Instrumenting countdown: from 5:02 to 14:00 in the recording of the 2020-10-20 lecture of CSCE 590, at https://us-lti.bbcollab.com/recording/cb1f7b32c27a44748cf93408d074db5b. Interactive programming: lecture of 2020-10-22, at https://us-lti.bbcollab.com/recording/40f870dc629d40efa5002b08081f51df.
November 23 (Tue), 2021 HW10 assigned: All exercises at the end of Ch.9 (The Countdown Problem; 2 points for each of exercises 1-3; 4 points for exercise 4; 4 points for exercise 5; 6 points for exercise 6. 20 points in total.) Since all students announced that they could not go to class today, I replaced the class meeting with recorded lectures as described in a message sent to them at the start of class: Since neither of you can attend class in person today, I am canceling this class meeting. However, I request that you view some recoded material from last year, namely the lectures on chapters 10 (Interactive Programming, much of this has already been covered) and 11 (Unbeatable Tic-Tac-Toe), which is an extended example of an interactive program for a two-player game. I think that you will enjoy the Game of Life and Tic-Tac-Toe examples. Here are the links to the lectures that cover the material in chapters 10 and 11 (including what we did last week): Interactive Programming, starting at minute 11:20, with the hangman and nim examples: https://us-lti.bbcollab.com/recording/40f870dc629d40efa5002b08081f51df Interactive Programming (Game of Life example, from 7:50 to 45:45) and Tic-Tac-Toe (starting at 52:20): https://us-lti.bbcollab.com/recording/919dbdcfa725449399a58b3b4026405b Tic-Tac-Toe (code, starting at 7:20) https://us-lti.bbcollab.com/recording/893821a9a39b48d5bf1ff52cca08c9fc I am also assigning HW10: all exercises at the end of ch.9 (Interactive Programming; 2 points for each of exercises 1-3; 4 points for exercise 4; 4 points for exercise 5; 6 points for exercise 6. 20 points in total.) (Originally assigned for 2021-11-30; due date later modified to 2021-12-02.) I wish you a Happy Thanksgiving!
November 30 (Tue), 2021 Functors (completed) and applicative functors ("applicatives") from Ch.12 [H].
December 2 (Thu), 2021 Applicatives (completed) and monads (brief introduction) from Ch.12 [H]. Students are requested to watch a video by Graham Hutton on Monads, which can be found at https://youtu.be/t1e8gqXLbsU. The final exam will be on Tuesday, December 7, from 1600-1830 in the classroom (SWGN 2A31) Topics for the exam are chapters 1-9 and section 12.1 [H] and sections 2.3 and 2.4 [TFWH]. The textbook ([H]) will be allowed. Other materials will not be allowed, except if they are handed out at the exam. End of course.