Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:cs245-201801:schedule [2018/09/13 11:42]
mlsmith [Table]
courses:cs245-201801:schedule [2018/11/13 11:38] (current)
mlsmith [Table]
Line 1: Line 1:
 ===== Course Calendar: ===== ===== Course Calendar: =====
  
-|  @Silver: \\ **Tuesdays** \\ \\                                                                                                                                                                                                                                              |  @Silver: \\ **Thursdays** \\ \\                                                                                                                                                                                                                                                                                                                                                                         ​+|  @Silver: \\ **Tuesdays** \\ \\                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ​|  @Silver: \\ **Thursdays** \\ \\                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
-| @LightGreen:​**9/​4** \\ ----\\ Course overview, administrative details, introduction to \\ Haskell and GHC.  \\ {{ :​courses:​cs245-201801:​haskell:​ch1.pdf |Chapter 1}} \\ \\ ----\\ ​ Code from class                                                                           ​| @LightGreen:​**9/​6** \\ ----\\ ​ Data types, constructors,​ pattern matching \\ {{ :​courses:​cs245-201801:​haskell:​ch2.pdf |Chapter 2}} \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}}\\ ----\\ Code from class                                                                                                                                                                                     ​+| @LightGreen:​**9/​4** \\ ----\\ Course overview, administrative details, introduction to \\ Haskell and GHC.  \\ {{ :​courses:​cs245-201801:​haskell:​ch1.pdf |Chapter 1}} \\ \\ ----\\ ​ Code from class                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | @LightGreen:​**9/​6** \\ ----\\ ​ Data types, constructors,​ pattern matching \\ {{ :​courses:​cs245-201801:​haskell:​ch2.pdf |Chapter 2}} \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}}\\ ----\\ Code from class                                                                                                                                                                                                                                                                                                                                                                              
-| @acfffc:​**9/​11** \\ ---- \\ Defining data types, the Show and Eq classes, the "​deriving"​ \\ shortcut, generating nicely formatted output for assignments. \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}} \\ {{ :​courses:​cs245-201801:​haskell:​ch4.pdf |Chapter 4}}  | @acfffc:​**9/​13** \\ ---- \\ Recalling Induction/​Recursion on Numbers and Lists from CS145 \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}} \\ {{ :​courses:​cs245-201801:​haskell:​ch4.pdf |Chapter 4}}                                                                                                                                                                                              +| @acfffc:​**9/​11** \\ ---- \\ Defining data types, the Show and Eq classes, the "​deriving"​ \\ shortcut, generating nicely formatted output for assignments. \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}} \\ {{ :​courses:​cs245-201801:​haskell:​ch4.pdf |Chapter 4}}                                                                                                                                                                                                                                                                                                                                                                                                                                   ​| @acfffc:​**9/​13** \\ ---- \\ Recalling Induction/​Recursion on Numbers and Lists from CS145 \\ {{ :​courses:​cs245-201801:​haskell:​ch3.pdf |Chapter 3}} \\ {{ :​courses:​cs245-201801:​haskell:​ch4.pdf |Chapter 4}}                                                                                                                                                                                                                                                                                                                                                                                       ​
-| @LightGreen:​**9/​18** \\ ---- \\ More fun with recursion/​induction on numbers and lists. \\ Introduction to the Lambda Calculus. ​                                                                                                                                             | @LightGreen:​**9/​20** \\ ---- \\ Starting to implement the Lambda Calculus in Haskell: \\ ''​freeVars''​ (collecting the "free variables"​ in a Lambda Term) and \\ ''​subby''​ (performing substitutions such as ''​M[N/​x]''​). ​                                                                                                                                                                                | +| @LightGreen:​**9/​18** \\ ---- \\ More fun with recursion/​induction on numbers and lists. \\ Introduction to the Lambda Calculus. ​\\ {{ :​courses:​cs245-201801:​haskell:​ch4.pdf |Chapter 4}} \\ {{ :​courses:​cs245-201801:​haskell:​ch5.pdf |Chapter 5}} \\ ---- \\ tasty testing in Haskell: {{ :​courses:​cs245-201801:​tasty-example.hs }}                                                                                                                                                                                                                                                                                                                                                                           | @LightGreen:​**9/​20** ​\\ ---- \\ **Introduction to the Lambda Calculus** \\ Graham Hutton'​s lectures: \\   * Lambda Calculus: https://​youtu.be/​eis11j_iGMs \\ * Y Combinator: https://​youtu.be/​9T8A89jgeTI \\ * and this tutorial: [[http://​palmstroem.blogspot.com/​2012/​05/​lambda-calculus-for-absolute-dummies.html|The Lambda Calculus for Absolute Dummies]]\\ ----\\ {{ :​courses:​cs245-201801:​haskell:​ch5.pdf |Chapter 5}}  \\ {{ :​courses:​cs245-201801:​haskell:​ch6.pdf |Chapter 6}} \\ ----\\ [[courses:​cs245-201801:​assigns:​asmt1|Assignment 1]]  Due Tue, 10/2 (to be posted after class) ​ | 
-| @acfffc:​**9/​25**  ​\\ ---- \\ Substitution and beta reduction in the Lambda Calculus: \\ ''​subby''​ and ''​betaReduce''​ in Haskell. ​                                                                                                                                            ​| @acfffc:​**9/​27** \\ ---- \\ Beta reduction, normal form of Lambda terms, \\ Church numerals for doing arithmetic in the Lambda Calculus. ​                                                                                                                                                                                                                                                                ​+| @acfffc:​**9/​25** ​ \\ ---- \\ **No class: Marc attending GHC**  ​\\ ----\\ Starting to implement the Lambda Calculus in Haskell: \\ ''​freeVars''​ (collecting the "free variables"​ in a Lambda Term) and \\ ''​subby''​ (performing substitutions such as ''​M[N/​x]''​). \\ ---- \\ Substitution and beta reduction in the Lambda Calculus: \\ ''​subby''​ and ''​betaReduce''​ in Haskell. ​                                                                                                                                                                                                                                                                                                                             | @acfffc:​**9/​27** \\ ---- \\ **No class: Marc attending GHC** \\ Beta reduction, normal form of Lambda terms, \\ Church numerals for doing arithmetic in the Lambda Calculus. ​                                                                                                                                                                                                                                                                                                                                                                                                                     
-| @LightGreen:​**10/​2** \\ ---- \\ Continuing with Programming in the Lambda Calculus \\ (pages 77-81  in the Lambda Calculus handout). ​                                                                                                                                        ​| @LightGreen:​**10/​4** \\ ---- \\ Lists and Primitive Recursion in the Lambda Calculus ​ \\ (pp. 79-80 in the Lambda Calculus handout); proving that \\ changing the name of variables does not alter the structure of a  \\ Lambda term (Attempt #1, Attempt #2); recalling newShow from \\ Asmt. 2; reduction orders (pp. 75-76 in Lambda Calculus handout; \\ Demonstrating Lambda Calculus Reduction). ​ +| @LightGreen:​**10/​2** ​\\ ----\\ **Introduction to the Lambda Calculus** \\ Graham Hutton'​s lectures: \\   * Lambda Calculus: https://​youtu.be/​eis11j_iGMs \\ * Y Combinator: https://​youtu.be/​9T8A89jgeTI \\ * and this tutorial: [[http://​palmstroem.blogspot.com/​2012/​05/​lambda-calculus-for-absolute-dummies.html|The Lambda Calculus for Absolute Dummies]]\\ ---- \\ {{ :​courses:​cs245-201801:​haskell:​ch7.pdf }} \\ {{ :​courses:​cs245-201801:​haskell:​ch8.pdf }}\\ ----\\ Continuing with Programming in the Lambda Calculus \\ (pages 77-81  in the Lambda Calculus handout). ​                                                                                                                            ​| @LightGreen:​**10/​4** ​\\ ---- \\ Class notes from Ch. 8: {{ :​courses:​cs245-201801:​ch8.hs }} \\ ---- \\ Lists and Primitive Recursion in the Lambda Calculus ​ \\ (pp. 79-80 in the Lambda Calculus handout); proving that \\ changing the name of variables does not alter the structure of a  \\ Lambda term (Attempt #1, Attempt #2); recalling newShow from \\ Asmt. 2; reduction orders (pp. 75-76 in Lambda Calculus handout; \\ Demonstrating Lambda Calculus Reduction). ​                                                                                                                    ​
-| @acfffc:​**10/​9** \\ ---- \\ Continuing with Primitive Recursion in the Lambda Calculus; \\ and lists. ​                                                                                                                                                                       | @Red:​**10/​11** \\ ---- \\ **Midterm Exam!!** ​                                                                                                                                                                                                                                                                                                                                                            ​+| @acfffc:​**10/​9** \\ ---- \\ Continuing with Primitive Recursion in the Lambda Calculus; \\ and lists. ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ​| @Red:​**10/​11** \\ ---- \\ **Midterm Exam!!** ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
-|  @orange: \\ \\ **October Break** \\ \\                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                || +|  @orange: \\ \\ **October Break** \\ \\                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          || 
-| @LightGreen:​**10/​23** \\ ---- \\ General Recursion in the Lambda Calculus (pp. 81-82 in the \\ Lambda Calculus handout); reduction orders ​(see \\ "Demonstrating..." ​link under March 1).                                                                                    | @LightGreen:​**10/​25** \\ ---- \\ Finishing up reduction strategies and general recursion. \\ Introduction to computing with infinite lists, which is enabled ​ \\ by haskell'​s lazy evaluation. ​                                                                                                                                                                                                          ​+| @LightGreen:​**10/​23** \\ ---- \\ General Recursion in the Lambda Calculus (pp. 81-82 in the \\ Lambda Calculus handout); reduction orders.\\ ----\\ Starting to implement the Lambda Calculus in Haskell: \\ ''​freeVars''​ (collecting the "free variables" ​in a Lambda Term) and \\ ''​subby''​ (performing substitutions such as ''​M[N/​x]''​). \\ ---- \\ Substitution and beta reduction in the Lambda Calculus: \\ ''​subby''​ and ''​betaReduce''​ in Haskell. ​                                                                                                                                                                                                                                                  | @LightGreen:​**10/​25** ​\\ ---- \\ Marc out sick \\ ----\\ Finishing up reduction strategies and general recursion. \\ Introduction to computing with infinite lists, which is enabled ​ \\ by haskell'​s lazy evaluation. ​                                                                                                                                                                                                                                                                                                                                                                           
-| @acfffc:​**10/​30** \\ ---- \\ Continuing with lazy evaluation, computing with infinite \\ lists, fibonacci numbers, computing prime numbers, list \\ comprehensions (e.g., to compute pythagorean triples). ​                                                                  ​| @acfffc:​**11/​1** \\ ---- \\ Infinite lists, list comprehensions, ​ intro to the ''>>​=''​ and ''​return''​ \\ functions, the ''​do''​ syntax, and ''​Monads''​. ​                                                                                                                                                                                                                                                  ​+| @acfffc:​**10/​30** ​\\ ---- \\ Handout: //Untyped Lambda Calculus and Scheme//, by Stuart M. Shieber, Harvard {{ :​courses:​cs245-201801:​untyped_lambda_calculus_master.pdf |PDF}} \\ Code: {{ :​courses:​cs245-201801:​code-oct-23.txt }} {{ :​courses:​cs245-201801:​mytermshow.txt }}\\ ---- \\ Substitution and beta reduction in the Lambda Calculus: \\ ''​subby''​ and ''​betaReduce''​ in Haskell.\\ ---- \\ Beta reduction, normal form of Lambda terms,\\ Church numerals for doing arithmetic in the Lambda Calculus.  ​\\ ---- \\ Continuing with lazy evaluation, computing with infinite \\ lists, fibonacci numbers, computing prime numbers, list \\ comprehensions (e.g., to compute pythagorean triples). ​ | @acfffc:​**11/​1** \\ ---- \\ Infinite lists, list comprehensions, ​ intro to the ''>>​=''​ and ''​return''​ \\ functions, the ''​do''​ syntax, and ''​Monads''​. ​                                                                                                                                                                                                                                                                                                                                                                                                                                           
-| @LightGreen:​**11/​6** \\ ---- \\ More fun with Monads. ​                                                                                                                                                                                                                       | @LightGreen:​**11/​8** \\ ----- \\ Using Monads to simulate changing state; ​\\ Introduction to PROLOG! ​                                                                                                                                                                                                                                                                                                    ​+| @LightGreen:​**11/​6** ​\\ ---- \\ Introduction to Prolog \\ [[http://​lpn.swi-prolog.org/​lpnpage.php?​pageid=online|Online Prolog Book (Chapters 1-4)]] ​\\ ----\\ More fun with Monads. ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ​| @LightGreen:​**11/​8** \\ ----- \\ Introduction to PROLOG! ​\\ {{ :​courses:​cs245-201801:​code-prolog-lec1.txt }} \\ {{ :​courses:​cs245-201801:​code-prolog-lec2.txt }}                                                                                                                                                                                                                                                                                                                                                                                                                                  ​
-| @acfffc:​**11/​13** \\ ---- \\ Syntax and semantics of propositional logic; rules of \\ inference. ​                                                                                                                                                                            ​| @acfffc:​**11/​15** \\ ---- \\ Syntax and semantics of first-order logic; automated inference \\ in Prolog. ​                                                                                                                                                                                                                                                                                               +| @acfffc:​**11/​13** ​\\ ---- \\ Introduction to PROLOG! \\ {{ :​courses:​cs245-201801:​code-prolog-lec3.txt }} \\ ---- \\ Assignment: //to come// ​\\ ----\\ Syntax and semantics of propositional logic; rules of \\ inference. ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ​| @acfffc:​**11/​15** \\ ---- \\ Syntax and semantics of first-order logic; automated inference \\ in Prolog. ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ​
-| @LightGreen:​**11/​20** \\ ---- \\ Automated inference in prolog. \\ Map coloring example ​                                                                                                                                                                                     | @orange:​**11/​22** \\ ---- \\ **Happy Thanksgiving!** ​                                                                                                                                                                                                                                                                                                                                                    ​+| @LightGreen:​**11/​20** \\ ---- \\ Automated inference in prolog. \\ Map coloring example ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ​| @orange:​**11/​22** \\ ---- \\ **Happy Thanksgiving!** ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
-| @acfffc:​**11/​27** \\ ---- \\ Using ''​format''​ to see Prolog'​s inference in action, Definite \\ Clause Grammars ​                                                                                                                                                              ​| @acfffc:​**11/​29** \\ ---- \\ More fun with DCG grammars and strings in Prolog ​                                                                                                                                                                                                                                                                                                                           +| @acfffc:​**11/​27** \\ ---- \\ Using ''​format''​ to see Prolog'​s inference in action, Definite \\ Clause Grammars ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | @acfffc:​**11/​29** \\ ---- \\ More fun with DCG grammars and strings in Prolog ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ​
-| @LightGreen:​**12/​4** \\ ---- \\ Prep for Asmt. 8 and Intro to Constraint Logic Programming \\ with Finite Domains (CLPFD). ​                                                                                                                                                  ​| @LightGreen:​**12/​6** \\ ---- \\ A few more CLPFD examples ​                                                                                                                                                                                                                                                                                                                                               +| @LightGreen:​**12/​4** \\ ---- \\ Prep for Asmt. 8 and Intro to Constraint Logic Programming \\ with Finite Domains (CLPFD). ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | @LightGreen:​**12/​6** \\ ---- \\ A few more CLPFD examples ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ​
-| @acfffc:​**12/​11** \\ ---- \\ (Thursday Teaching Day) \\ Last Day of Class! ​                                                                                                                                                                                                  ​                                                                                                                                                                                                                                                                                                                                                                                                         |+| @acfffc:​**12/​11** \\ ---- \\ (Thursday Teaching Day) \\ Last Day of Class! ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 
 +|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | @Red:​**12/​20** \\ ---- \\ **Final Exam!!** \\ 9-11am \\ Room: //​tbd// ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |