Learning to create well-designed and robust Java programs requires, besides a good understanding of the language, a significant amount of practice.
JavaFests are a collaborative learning technique for teaching Java to beginning programmers. A JavaFest is a group exercise that instructors can add to their repertoire of teaching techniques. It provides an opportunity for students to practice programming in a motivating but non-threatening environment, and to learn from the experience of their peers. Moreover, a JavaFest allows the instructor to gain insight into the current standing of the students in her class.
Below we present three example JavaFests. They are particularly well suited for courses based on Barnes & Kölling's Objects First with Java textbook using the BlueJ educational development environment. The first two JavaFests are inspired by examples in that book, and all the JavaFests fit well within the second quarter of a course following the textbook. However, they do not depend on BlueJ or that book, and they can easily be adopted in other Java programming courses based on different textbooks.