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

datelecture notesreadinghw
week 1
Aug.12languages steer programmer choices§§1.0–1.3 (pp.5–16); §§11.0–11.2 (pp.535–538) (skim)
Aug.14racket-intro.html§11.3.0 (pp. 539–542)hw01a, on D2L
week 2
Aug.17
Aug.19The Design Recipe: unit-tests (pizza-area) [code: before, after]
Aug.21language-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
Aug.24
Aug.26Union types: further examples incl. numeric intervals; use helpers for union-of-unionsvideo: Union types (18m05s) and video: part II (28m24s) [code: before, after]hw02/
Aug.28use helpers for union-of-unions; finish language-vocab-and-concepts/
week 4
Aug.31
Sep.02Finish structs intro; Design exercise: a GUI textbox [code: before, after] (and an alternate version) first two videos of structs intro (~35min)hw03/
Sep.04Structs within structs (easter-egg textbox)
week 5
Sep.07
Sep.09union of structs (book-or-dvd) [code: before, after]; Families of languageshw04/
Sep.11list introduction§6.6, and §10.1–10.3.1. Suggested/optional: all of §6 and §10.3. Challenge/option: §10.5.
week 6
Sep.14
Sep.16
Sep.18terms: scope, binding occurrence (and let)lists.html
week 7
Sep.21
Sep.23stepping through a recursive function;
Sep.25A non-list example of recursive data; data-def'n for natnums [code: before, after] (and, a more theoretical take)hw05a (2 problems)
week 8
Sep.28
Sep.30start tail recursion [code: before, after]§2.1: Grammars
Oct.02passing functions as arguments: [code: before, after]; reflect on immutable data(video-links embedded in the provided code)
week 9
Oct.05
Oct.07intro grammars/BNF; practice: grammar for field-declarations
Oct.09finish grammars, and parse trees; for fun: an abusive main.javaexam01
week10
Oct.12
Oct.14start Trees: [code: before, after] (video (32m23s))
Oct.16video: defining ancestor trees in Java (14m41s) (composite pattern), video: writing size and template (17m12s); video: writing changeName (14m22s)
Optional: AncTrees in scala (code, video).
hw06: grammars
week11
Oct.19
Oct.21Decide on our language's X0 syntax and internal representation of Exprs/parse-trees; start the law-of-racket.rkt
Oct.23Look at X0.rkt: data-def'n for an expression, examples of the data, test cases for parse! and expr->string, and the code for expr->string.
week12
Oct.26
Oct.28explaining the code (incl. recursive-descent parsing, and (optionally) some of the tricks used in the accompanying test-harness).
See the videos at the bottom of Interpreting X.
Oct.30scope-simple-examples.rkt; prolog intro§3.3, but you can skim §§3.3.4-3.3.5.X2.html
week13
Nov.02
Nov.04prolog practice; Prolog: recursive relationsScott Chpt.11, but skip §11.2.6
Nov.06Review X4-soln; lists in prolog§3.6 (“the binding of referencing environments”)../Homeworks/X4.html
week14
Nov.09
Nov.11Finish lists in prolog.
Possible: sorts.pl, and/or numbers in prolog
Nov.13Finish looking at: implementing objects-with-let-over-lambda.rkt (pretty much). Wrap-up../Homeworks/X6.html
finals week
Nov.17 (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.