![]() |
![]() |
|
These lecture notes are provided as a reference (my own personal lecture-prep). They are not intended as a substitute for attending class.
date | topic | reading | |
---|---|---|---|
week 1 | |||
Jan.16 | languages steer programmer choices (zoom-recording) | §§1.0–1.3 (pp.5–16); | |
Jan.18 | racket-intro.html;The Design Recipe: unit-tests (pizza-area) | §11.3.0 (pp. 539–542) | |
week 2 | |||
Jan.23 | Another ex. of design recipe; refactoring (monogram) |
||
Jan.25 | Union types |
video: Union types (18m05s) and video: part II (28m24s) (videos only have signatures in comments though) | |
week 3 | |||
Jan.30 | language-vocab-and-concepts/ | §1.6.1, and skim the rest of Chpt.1 (§1.4–1.7). | |
Feb.01 | struct-intro.html |
first two videos of struct-intro.html (~35min) | |
week 4 | |||
Feb.06 | Design exercise: a GUI textbox |
||
Feb.08 | union of structs (book-or-dvd) |
||
week 5 | |||
Feb.13 | list: a datatype-definition; |
§6.6, and §10.1–10.3.1. recording | |
Feb.15 | |||
week 6 | |||
Feb.20 | using let to avoid repeated-computation |
recording | |
Feb.22 | another union-of-struct recipe example: Ancestor Trees |
class: recording | |
week 7 | |||
Feb.27 | video: defining trees in Java (14m41s) (composite pattern),
|
||
Feb.29 | data-def'n for natnums a nonsense example;; AncTree.java: video: writing size, and template (17m12s); video: writing changeName (14m22s) |
||
spring 🌷 br eak | |||
week 8 | |||
Mar.12 | Language families video (32m23s), and reflect on immutable-data-trade-offs.html; lists.html solution; language-vocab-and-concepts/ |
||
Mar.14 | exam01 | ||
week 9 | |||
Mar.19 | passing functions as arguments: |
||
Mar.21 | tail recursion (a practice problem: tail-recursion-sum-2^i.html) |
video (24m15s)recording | |
week10 | |||
Mar.26 | grammars-intro.html; practice: grammar for field-declarations | §2.1: Grammars | |
Mar.28 | finish grammars, and parse trees | ||
week11 | |||
Apr.02 | Decide on our language's F0 syntax and internal representation of Exprs/parse-trees; | recording | |
Apr.04 | Look at F0.rkt: data-def'n for an expression, examples of the data, and tests+code for eval, expr->string, and recursive-descent parse!ing. | ||
week12 | |||
Apr.09 | the law-of-racket.rkt recording (start at 11m45 for the new material) F0 test harness, both in racket video (14m14s)and (slightly more involved and less flexible) in Java video (8m08s) Note: These test-harness videos are from a different semester's language, so the exact examples will be different from @L0, but otherwise it's identical. |
§3.3, but you can skim §§3.3.4-3.3.5. | |
Apr.11 | |||
week13 | |||
Apr.16 | Prolog intro recording (file |
Scott Chpt.11, but skip §11.2.6 recording | |
Apr.18 | video: prolog recursion, and list-intro (zoom):prolog-recursion.html; prolog-lists.html | §3.6 (“the binding of referencing environments”) recording | |
week14 | |||
Apr.23 | sorting in prolog |
||
Apr.25 | objects-with-let-over-lambda.rkt (pretty much). | ||
week15 | |||
Apr.30 | using a macro ~>, more on Higher Order Functions |
F6.html | |
finals week | |||
Apr.30 | 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 ibarland ![]() |