|
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 | zoom-recording | reading |
---|---|---|---|
week 1 | |||
Jan.19 | languages steer programmer choices | – | §§1.0–1.3 (pp.5–16); |
Jan.21 | racket-intro.html | recording | §11.3.0 (pp. 539–542) |
week 2 | |||
Jan.26 | The Design Recipe: unit-tests (pizza-area) |
recording | |
Jan.28 | language-vocab-and-concepts/ | recording | §1.6.1, and skim the rest of Chpt.1 (§1.4–1.7). |
week 3 | |||
Feb.02 | Union types |
recording | video: Union types (18m05s) and video: part II (28m24s) |
Feb.04 | numeric intervals; use helpers for union-of-unions | recording | |
week 4 | |||
Feb.09 | struct-intro.html |
recording | first two videos of struct-intro.html (~35min) |
Feb.11 | Design exercise: a GUI textbox |
recording | |
week 5 | |||
Feb.16 | union of structs (book-or-dvd) |
recording | |
Feb.18 | Galaga design brainstorming; list: a datatype-definition | recording | §6.6, and §10.1–10.3.1. |
week 6 | |||
Feb.23 | list-processing functions | recording | |
Feb.25 | finish list-intro.html; start scope, let; for fun: an abusive main.java | recording | |
week 7 | |||
Mar.02 | reflect on immutable-data-trade-offs.html | recording | |
Mar.04 | stepping through a recursive function; tail recursion |
recording | |
week 8 | |||
Mar.09 | practice/finish tail recursion |
recording | |
Mar.11 | passing functions as arguments: |
recording; other videos also linked in provided code | |
week 9 | |||
Mar.16 | grammars-intro.html; practice: grammar for field-declarations | recording | §2.1: Grammars |
Mar.18 | finish grammars, and parse trees | recording | |
week10 | |||
Mar.23 | finish grammars, and parse trees | recording | |
Mar.25 | start Trees: skim racket: Optional: AncTrees in scala (code, video). |
recording |
|
week11 | |||
Mar.30 | Decide on our language's Y0 syntax and internal representation of Exprs/parse-trees; | recording | |
Apr.01 | Look at Y0.rkt: data-def'n for an expression, examples of the data, and tests+code for eval, expr->string, and recursive-descent parse!ing. | recording; see also: videos at bottom of Y0.html | |
week12 | |||
Apr.06 | Reviewing the provided test-harness code; start the law-of-racket.rkt | recording | |
Apr.08 | prolog intro | recording this is actually last semester's recording | §3.3, but you can skim §§3.3.4-3.3.5. |
week13 | |||
Apr.13 | prolog practice; |
recording | Scott Chpt.11, but skip §11.2.6 |
Apr.15 | lists in prolog | §3.6 (“the binding of referencing environments”) | |
week14 | |||
Apr.20 | Finish lists in prolog.
Possible: sorts.pl, and/or numbers in prolog |
recording | |
Apr.22 | Finish looking at: implementing objects-with-let-over-lambda.rkt (pretty much). Wrap-up | ||
finals week | |||
Apr.29 | 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 |