From VM Tue Jul 18 22:57:06 2000 Content-Length: 4521 Status: RO X-VM-v5-Data: ([nil nil nil nil t nil t nil nil] ["4521" "Tuesday" "18" "July" "2000" "11:53:55" "-0600" "Matthew Flatt" "mflatt@cs.utah.edu" "<200007181753.LAA11387@fast.cs.utah.edu>" "99" "Utah workshop report" "^From:" nil nil "7" "2000071817:53:55" "Utah workshop report" nil nil nil] nil) Return-Path: Received: from fast.cs.utah.edu (fast.cs.utah.edu [155.99.212.1]) by cs.rice.edu (8.9.0/8.9.0) with ESMTP id MAA26438 for ; Tue, 18 Jul 2000 12:53:56 -0500 (CDT) Received: from localhost (cornish.cs.utah.edu [155.99.212.96]) by fast.cs.utah.edu (8.9.1/8.9.1) with ESMTP id LAA11387 for ; Tue, 18 Jul 2000 11:53:55 -0600 (MDT) Message-Id: <200007181753.LAA11387@fast.cs.utah.edu> X-Mailer: SirMail under MrEd 102 (i386-freebsd) From: Matthew Flatt To: plt-workshop@cs.rice.edu Subject: Utah workshop report Date: Tue, 18 Jul 2000 11:53:55 -0600 (MDT) I think the Utah workshop was successful, mostly because we had an excellent group of teachers. They were 9 from local school distincts plus 1 from Idaho, all computer science teachers, and many also algebra or pre-algebra. Overall, they started out optimistic (not skeptical). By Friday, several had decided to try HtDP this fall, a few of them in [pre-]algebra class. The schedule we used (now annotated with lab progress info) is at http://www.cs.utah.edu/plt/workshop/2000/ This is a merger of Matthias's old schedule with Kathi/Shriram's extended notes (fun examples!), plus additional extensions and minor revisions. [Side note: I highly recommend the `run-over-by-car' function as an example on armadillo structs.] friday.{tex,ps}, a somewhat re-arranged version of Shriram's notes for the last lecture, is in that directory, too. Shriram: I put all of this stuff into ~mflatt/Utah.tar.gz, which probably should go into the Wonk tree (along with this message). Lab experience: The first three labs went slowly. If I remember correctly, they usually do. Our Monday afternnon could have been better (with less lecture and group work), but things turned out ok. As recommended by the Rice experience, we hardly lectured in labs except for Monday afternoon --- and we shouldn't have then; it was just bad communication from me to the lab leader. I'm ambivalent about the drawing exercises for Tuesday morning. On the one hand, it's good for them to see a little graphical stuff, and that graphics incurs some overhead in the exercises, worthwhile as it may be. On the other hand, this early in the workshop, the teachers kept getting the circle itself confused with the pattern of dots on the screen. The core exercise, it seemed to me, was `translate', and we made sure that everyone got through that one. We didn't use the graphics exercises (the 10.3 series) for Wednesday morning. Instead, we went with the 10.2 exercises, as suggested by the Rice experience. Actually, the teachers thought that being able to cut-and-paste toy pictures in their programs was far more fun and impressive than drawing faces. We tried using `false' for unknown information in a family. The problem is that there is no `false?'. It turns out that `not' works, but it seems like it shouldn't! Of course, we could write `false?' using `boolean?'. Or, maybe we should just have used `boolean?' (didn't occur to me until now). Nothing special to note for the rest of the labs, except that the family tree exercises were extra-popular (this being Utah :). Lecture notes: As you'll see from the notes on the web, I agressively pushed the "(make-posn 10 1) is just a long name for a value, like 7 is a name for a number value" view of structures, right from the start. I also explained the reduction rules (and extended them along the way), something that seemed to me to be de-emphasized in last year's workshop. It worked well, at least for our group of teachers. They didn't blink when we started writing functions that produced structures. Lists were no big deal, though visual aids for recursion over list (Russian dolls supplied by Kyle) probably helped a lot. We didn't provide handouts except for the last day of lecture. I think they would have been good on other days, but didn't have time to prepare them. Althogh Kathi reports that Wednesday morning's material was too much, it worked ok for us. I actually added a bit more material on the front (explaining again the interaction of reuse and templates, since `check-guess-for-list' caught them off gaurd Tuesday afternoon in lab). I don't know what we did differently. A tip for emphasizing and referencing recipes: I found post-it notes in six different colors, and handed out a new color to bookmark each new recipe. In lecture, they could quickly navigate among the recipes we needed. In lab, we could quickly point them to a recipe step in the book. Something that doesn't seem to be in Wonk: Quoting Kathi Fisler: > Currently, we first teach multiple data definitions for one problem in > the mutual recursion lecture. In reality, lists of structures involve > two data definitions; we just gloss over the structure data definition > in lecture/examples. If we pointed out the two data definitions in the > lists-of-structures lecture, and taught students to draw the relevant > arrow from the list to the structure data definition, we would set up > the mutual recursion lecture better (and be more consistent). Did this; it was good. Matthew