If this is your first visit to this page, please read the
Introduction
for an overview of what the workshop is about, why it might be relevant
to your teaching, and what other
teachers have said about the approach.
If you're interested in attending, please
read more and sign up for
a workshop.
The current series of TeachScheme, ReachJava workshops grow out of over ten years of TeachScheme workshops, of which I ran three in July 2003, July 2002, and July 2001, as well as condensed versions of the workshop in June, 2000 (8 hours) and January, 2001 (2 hours).
There are two major difference between TeachScheme and the current workshops: first, the current workshops are targeted primarily at college-level faculty rather than high school and middle school teachers; and second, we're hoping to cover both a Scheme-based introduction and a Java-based followup course in a week. As a result, these workshops will be quite intense and fast-paced.
On the first day, I'd like participants to fill out a brief
on-line survey so I know how many people teach
high school, middle school, etc, how many people teach what subjects,
and what you're expecting from this workshop.
At the end of each day, please fill out
another brief
on-line survey to give us some
feedback on what topics made sense to you, what was unclear, etc.
The workshop will run each day from 9:00 AM (8:30 for breakfast) to 5:30 PM, with breaks for lunch, coffee, fresh air, etc. On Monday, please try to be there a little early, to allow time for getting lost, introductions, and paperwork.
| Day | Morning | Afternoon |
|---|---|---|
| Sunday, 6/29/08 | Evaluating expressions;
defining variables and functions;
data types;
design recipe; Booleans and conditionals |
another design recipe;
structs; design recipe, version 3; unions; design recipe, version 4 |
| Monday, 6/30/08 | Lists of simple type | Lists of structs |
| Tuesday, 7/1/08 | Structs in structs (e.g. ancestor trees, expressions); mutual recursion | Lists in structs (e.g. descendant trees, evaluating Scheme) |
| Wednesday, 7/2/08 | Converting data definitions to Java classes | Converting Scheme functions to Java methods |
| Thursday, 7/3/08 | Loops as iterators; pedagogical issues | Accumulative and generative recursion; functional abstraction; miscellaneous topics |
The software we're using, DrScheme, is available for free download for Mac, Windows, and Unix. Version 4.0 (aka 400) was just released last month, but since I haven't had time to incorporate the changes into my materials yet, we'll use the previous stable release, version 372.
The textbook I've used a number of times for my first-semester course, and from which this workshop is excerpted, is How to Design Programs, by Matthias Felleisen et al at Rice University. The book is available in print from MIT Press, but it will remain available on-line for free.
I'm writing an updated textbook based on HtDP, but aimed at high school and less-elite-college students, particularly the mathophobic ones; contact me if you're interested in classroom-testing it.
I've summarized the Design Recipe(s) covered in this workshop, and some additional ones covered in my first-semester course. Use them!
You might also be interested in Jack Crouch's CS1 Web site. Jack Crouch teaches a 9th-grade course on beginning programming, using Scheme, DrScheme, and How to Design Programs.
This material is based upon work supported by the National Science Foundation under Grant No. 618543 and previous Grant No. 0010064. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.