RU beehive logo promo banner for Computing & Info Sciences
ITEC 380
2023spring
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
Jan.17 languages steer programmer choices (zoom-recording) §§1.0–1.3 (pp.5–16); §§11.0–11.2 (pp.535–538) (skim)
Jan.19 racket-intro.html;The Design Recipe: unit-tests (pizza-area) §11.3.0 (pp. 539–542)
week 2
Jan.24 Another ex. of design recipe; refactoring (monogram) [code: before, after]
Jan.26 Union types [code: before, after]; use helpers for unions-of-unions video: Union types (18m05s) and video: part II (28m24s) (videos only have signatures in comments though)
week 3
Jan.31 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).
Feb.02 struct-intro.html [code: before, after] first two videos of struct-intro.html (~35min)
week 4
Feb.07 Design exercise: a GUI textbox [code: before, after];
not discussed in lecture: Structs within structs (easter-egg textbox, at end of file)
Feb.09 union of structs (book-or-dvd) [code: before, after]
week 5
Feb. list: a datatype-definition; [code: before, after] §6.6, and §10.1–10.3.1. Suggested/optional: all of §6 and §10.3. Challenge/option: §10.5.
recording
Feb.16
week 6
Feb.21 using let to avoid repeated-computation [code: before, after]; scope let, let* recording
Feb.23 another union-of-struct recipe example:
Ancestor Trees [code: before, after]
class: recording
week 7
Feb.28 Language families
video (32m23s), and video: defining trees in Java (14m41s) (composite pattern),
[code: before, after]
Mar.02 data-def'n for natnums [code: before, after] (a more theoretical take);
a nonsense example;;
AncTree.java: video: writing size, and template (17m12s);
video: writing changeName (14m22s)
[code: before, after]
spring 🌷 br
eak
week 8
Mar.14 reflect on immutable-data-trade-offs.html; lists.html solution; language-vocab-and-concepts/
Mar.16 exam01
week 9
Mar.21 passing functions as arguments: [code: before, after] 11.6 (first page)
Mar.23 tail recursion [code: before, after]
(a practice problem: tail-recursion-sum-2^i.html)
video (24m15s)recording
week10
Mar.28 grammars-intro.html; practice: grammar for field-declarations §2.1: Grammars
Mar.30 finish grammars, and parse trees
week11
Apr.04 Decide on our language's D0 syntax and internal representation of Exprs/parse-trees; recording
Apr.06 Look at D0.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.11 the law-of-racket.rkt recording (start at 11m45 for the new material)
D0 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 B0, but otherwise it's identical.
§3.3, but you can skim §§3.3.4-3.3.5.
Apr.13 Prolog intro recording (file [code: before, after] at swish.swi-prolog.org/) Scott Chpt.11, but skip §11.2.6 recording
week13
Apr.18 prolog-recursion.html; prolog-lists.html §3.6 (“the binding of referencing environments”) recording
Apr.20 sorting in prolog [code: before, after]
We won't discuss issues with prolog-numbers.
week14
Apr.25 objects-with-let-over-lambda.rkt (pretty much).
Apr.27 using a macro ~>, more on Higher Order Functions and ; wrap-up. D6.html
finals week
May.02 (Tue) 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.