|
These lecture notes are provided as a reference (my own personal lecture-prep). They are not intended as a substitute for attending class.
date | lecture notes | reading | hw |
---|---|---|---|
week 1 | |||
Aug.26 | languages steer programmer choices | §§1.0–1.3 (pp.5–16); | |
Aug.28 | racket intro | §10.3.0 (pp. 509–512) | |
Aug.30 | |||
week 2 | |||
Sep.02 | The Design Recipe: unit-tests (pizza-area) | hw01, on D2L | |
Sep.04 | Union types (and, | ||
Sep.06 | |||
week 3 | |||
Sep.09 | Union types: further examples incl. numeric intervals; use helpers for union-of-unions | hw02/ | |
Sep.11 | language-vocab-and-concepts/ | §1.6.1, and skim the rest of Chpt.1 (§1.4–1.7). | |
Sep.13 | |||
week 4 | |||
Sep.16 | start structs intro | hw03/ | |
Sep.18 | Finish structs intro; Design exercise: a GUI textbox | ||
Sep.20 | |||
week 5 | |||
Sep.23 | Structs within structs (easter-egg textbox) | ||
Sep.25 | union of structs (book-or-dvd) | ||
Sep.27 | hw04/ | ||
week 6 | |||
Sep.30 | list introduction | §6.6, and §10.1–10.3.1. | |
Oct.02 | hw05a (2 problems) | ||
Oct.04 | |||
week 7 | |||
Oct.07 | A non-list example of recursive data and data-def'n for natnums | lists.html | |
Oct.09 | examples; stepping through a recursive function; start Tail recursion ( | §2.1: Grammars | |
Oct.11 | fall br eak | ||
week 8 | |||
Oct.14 | intro grammars/BNF; practice: grammar for field-declarations | ||
Oct.16 | continue Grammars: recursive rules; parse trees | ||
Oct.18 | terms: scope, binding occurrence; passing functions | ||
week 9 | |||
Oct.21 | (for fun: an abusive main.java); finish terms | ||
Oct.23 | reflect on immutable data; finish grammars | ||
Oct.25 | Discuss hw06-soln;start Trees: | hw06: tail-recursion, scope | |
week10 | |||
Oct.28 | video: defining ancestor trees in Java (14m41s) (composite pattern),
Optional: AncTrees in scala (code, video). | hw07: grammars | |
Oct.30 | |||
Nov.01 | Decide on our language's
V0 syntax and internal representation of Exprs/parse-trees; | ||
week11 | |||
Nov.04 | Look at V0.rkt:
data-def'n for an expression,
examples of the data,
test cases for | ||
Nov.06 | |||
Nov.08 | explaining the code
(incl. recursive-descent parsing, and (optionally) some of the tricks used in the accompanying test-harness).
See the videos at the bottom of Interpreting V. | ||
week12 | |||
Nov.11 | scope-simple-examples.rkt; | §3.3, but you can skim §§3.3.4-3.3.5. | Expr Trees |
Nov.13 | |||
Nov.15 | prolog practice; | Scott Chpt.11, but skip §11.2.6 | |
week13 | |||
Nov.18 | Review V4-soln; | §3.6 (“the binding of referencing environments”) | V4 shadowing, function-application; prolog |
Nov.20 | |||
Nov.22 | Finish lists in prolog.
Possible: sorts.pl, and/or numbers in prolog | ||
thanksgiving br eak | |||
week14 | |||
Dec.02 | Finish looking at: implementing objects-with-let-over-lambda.rkt (pretty much). Wrap-up | V6: environments | |
Dec.04 | |||
Dec.06 | |||
week15 | |||
Dec.09 | |||
finals week | |||
Dec.11 (Wed) 14:45 | final exam | [0,∞) :-) |
Opening notes in .rkt files: Many of the lecture-notes links are .rkt files, not html. You should (a) download the file (say, via right-click or save-as; on Windows you might need to re-name the suffix to .rkt manually), (b) start DrRacket, and then (c) choose File » Open… them. Do not copy-paste into an empty DrRacket window — the language-preference won't be set correctly, and the initial lines may be goofed up. One possible result is the error message read-syntax: `#lang` not enabled.
This page licensed CC-BY 4.0 Ian Barland Page last generated | Please mail any suggestions (incl. typos, broken links) to ibarlandradford.edu |