RU beehive logo ITEC dept promo banner
ITEC 380
2021spring
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.

datetopiczoom-recordingreading
week 1
Jan.19 languages steer programmer choices §§1.0–1.3 (pp.5–16); §§11.0–11.2 (pp.535–538) (skim)
Jan.21 racket-intro.html recording §11.3.0 (pp. 539–542)
week 2
Jan.26 The Design Recipe: unit-tests (pizza-area) [code: before, after] recording
Jan.28 language-vocab-and-concepts/ recording §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
Feb.02 Union types [code: before, after] 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 [code: before, after] recording first two videos of struct-intro.html (~35min)
Feb.11 Design exercise: a GUI textbox [code: before, after]; Structs within structs (easter-egg textbox) recording
week 5
Feb.16 union of structs (book-or-dvd) [code: before, after]; language-families.html recording
Feb.18 Galaga design brainstorming; list: a datatype-definition recording §6.6, and §10.1–10.3.1. Suggested/optional: all of §6 and §10.3. Challenge/option: §10.5.
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 [code: before, after] recording
week 8
Mar.09 practice/finish tail recursion [code: before, after]; A non-list example of recursive data; data-def'n for natnums [code: before, after] (and, a more theoretical take) recording
Mar.11 passing functions as arguments: [code: before, after] recording; other videos also linked in provided code 11.6 (first page)
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: [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).
recordingw/ connection-failures and all.
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; Prolog: recursive relations 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 (Thu) 10:15final 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.