I strongly believe that, when it comes to technology, people learn through their fingertips. To that aim, I teach Tapestry as an interactive workshop consisting of seven labs. Each lab teaches a different aspect of Tapestry; a particular component or set of components, or a particular challenge developers are likely to face.
Each lab starts with a 20 to 30 minute presentation that will outline the goals of the lab: the issues to be tackled, the components to be covered, the special challenges to be explored. The labs themselves consist of an Eclipse project and a partially working Tapestry application (usually, just a single page). The goal is to "fix" the application, by adding and configuring components, and by writing small amounts of Java code. For the more complex labs, the work is broken up into smaller stages. Each lab includes a cheat sheet to ensure that no one gets too frustrated.
This Workshop approach is a way for me to gently lead people into the way of Tapestry, and to help developers understand exactly what it is that Tapestry does and even how it operates internally. Although the labs are geared for developers new to web development and new to Tapestry, they are also rich with information of value to even seasoned Tapestry developers.
The Tapestry Workshop environment is based on VMWare and an open stack of development software built around Ubuntu Linux, Eclipse and MySQL. Using this combination, I can easily deliver a complete, self-contained, pre-configured development environment that each student can run safely on their own computer or laptop.
I recommend at four days of class time to cover this amount of material. Many clients schedule an additional day to go in-depth on their particular application.