PVD 2002: Our teachers benefitted HUGELY from a worksheet exercise
on lists of structs (we didn't try this until Thursday, but
recommend it for Wed afternoon lab). Our worksheet set up a
problem (lists of CD info: title, category, num-in-stock), then
listed out all the steps with spaces for the answers (data defn for
CDs, examples of CDs, data defn for list-of-CDs, examples of
list-of-CDs, template for CDs, template for list-of-CDs). We did
not hand out the functions to be written until after each teacher
finished the worksheet and had it checked by a TA.
Functions to write:
;; total-stock : list-of-CD -> number
;; total number of CDs in stock (ie, sum numbers in stock per CD)
;; category-stock : symbol list-of-CD -> list-of-CD
;; produces list of all CDs from given list in named category
;; CHALLENGE -- unique-categories : list-of-CD -> list-of-sym
;; duplicate-free list of categories in list
for non-challenge, update-stock to decrement number in stock of a
certain CD.
Handing out the sheets separately reinforced two ideas:
- templates depend only on data
- templates can be reused across many functions
We recommend doing a problem like this for lab on Wed afternoon.
|