Most of these should be fairly obvious.  As always, follow the normal
guidelines.

1.  1 pt per problem
    If a mistake in a later problem follows "correctly" from a mistake in
    a previous problem, don't subtract twice for the same mistake.

2.  Fairly obvious.
    Expected program builds list of posns with largest n at front, but
    acceptable if in opposite order.
    Acceptable if has one program to build list of numbers and then
    one to make the list of posns.

3.  -.75 pts if only shows steps with changing function call (as on exam).
    Must not multiply anything until very end.

4.  1 pt for average4
    Acceptable if use data def'n of lists of numbers or of a variation with
    extra cases for less than 4 elements, but template & program must follow
    data def'n.

    1 pt for averageN
    Again, two options for data def'n.

5.  1.5 pts up/down-controller
    1.5 pts demands-going-up/down
    (can't grade third part of exercise)

    As always, should use helper functions to avoid repeated code.

ec.  1 pt for insert-at-all-positions/in-all-lists
          structure and base case
     2 pts for function(s) to map a insert-at-all-positions/in-one-list
          should be 1 pt for the insert function, 1 pt for mapping that
          function

     that program structure is the most obvious, and follows data def'ns