RU beehive logo ITEC dept promo banner
ITEC 380
2021fall
ibarland

schedule

These lecture notes are provided as a reference (my own personal lecture-prep). They are not intended as a substitute for attending class. Here is the scratch-file sometimes used in zoom-lecture.

datetopicreading
week 1
Aug.24 languages steer programmer choices §§1.0–1.3 (pp.5–16); §§11.0–11.2 (pp.535–538) (skim)
Aug.26 racket-intro.html §11.3.0 (pp. 539–542)
week 2
Aug.31 The Design Recipe: unit-tests (pizza-area) [code: before, after]
Sep.02 language-vocab-and-concepts/ §1.6.1, and skim the rest of Chpt.1 (§1.4–1.7). Do look at how Figures 1.21 (GCD program in C) and 1.22 (its tokenized version) have counterparts in Fig. 1.25 (its parse tree -- a big diagram, but don't be intimidated).
week 3
Sep.07 Union types [code: before, after] video: Union types (18m05s) and video: part II (28m24s)
Sep.09 numeric intervals; use helpers for union-of-unions
week 4
Sep.14 struct-intro.html [code: before, after] first two videos of struct-intro.html (~35min)
Sep.16 Design exercise: a GUI textbox [code: before, after]; Structs within structs (easter-egg textbox)
week 5
Sep.21 union of structs (book-or-dvd) [code: before, after]; language-families.html
Sep.23 Frogger design brainstorming; list: a datatype-definition §6.6, and §10.1–10.3.1. Suggested/optional: all of §6 and §10.3. Challenge/option: §10.5.
week 6
Sep.28 continue list-processing functions
Sep.30 stepping through my-max to motivate local variables;
scope, let;
for fun: an abusive main.java
Language families
week 7
Oct.05 tail recursion [code: before, after] video (24m15s)
Oct.07 A non-list example of recursive data; data-def'n for natnums [code: before, after] (and, a more theoretical take) recording
week 8
Oct.12 reflect on immutable-data-trade-offs.html
Oct.14 passing functions as arguments: [code: before, after] 11.6 (first page)
week 9
Oct.19 grammars-intro.html; practice: grammar for field-declarations §2.1: Grammars
Oct.21 exam01
week10
Oct.26 finish grammars, and parse trees
Oct.28 finish grammars, and parse trees
week11
Nov.02 start Trees: skim racket: [code: before, after]; (video (32m23s)); main point: video: defining trees in Java (14m41s) (composite pattern), video: writing size and template (17m12s); video: writing changeName (14m22s)
[code: before, after]
Optional: AncTrees in scala (code, video).
Nov.04 Decide on our language's Z0 syntax and internal representation of Exprs/parse-trees;
week12
Nov.09 Look at Z0.rkt: data-def'n for an expression, examples of the data, and tests+code for eval, expr->string, and recursive-descent parse!ing.
Nov.11 Review the Z0 Java implementation.
if time: the law-of-racket.rkt
Start prolog-basics.html
§3.3, but you can skim §§3.3.4-3.3.5.
week13
Nov.16 prolog-recursion.html Scott Chpt.11, but skip §11.2.6
Nov.18 prolog-lists.html §3.6 (“the binding of referencing environments”)
thanksgiving cornucopia br
eak
week14
Nov.30 [code: before, after]
we won't discuss issues with prolog-numbers.
Dec.02 Finish looking at: implementing objects-with-let-over-lambda.rkt (pretty much). Wrap-up
finals week
Dec.07 (Tue) 14:45final 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.

Helpful Links


logo for creative commons by-attribution license
This page licensed CC-BY 4.0 Ian Barland
Page last generated
Please mail any suggestions
(incl. typos, broken links)
to ibarlandradford.edu
Rendered by Racket.