[PLT logo] TeachJava 2002!

Overview

Programming technology is in the midst of a revolution. Unsafe procedural programming in C/C++ is being supplanted by safe, object-oriented programming in Java. The new technology greatly increases programmer productivity, software reliability, and software reuse.

Object-oriented program design is radically different from procedural program design because object-oriented languages like Java express computations in terms of higher level operations than procedural languages like C/C++. In Java, data structures are mathematical objects independent of a particular machine implementation. In fact, the mechanisms for defining new forms of data and manipulating them in Java are similar to those in very high level functional languages Scheme and ML. The primary complication in object-oriented programming is the data-centered organization of program text, a sharp departure from the familiar concept of function definitions in mathematics. Data-centered program organization promotes code reuse, but it is confusing for beginning programmers.

For this reason, the PLT research group has developed a programming curriculum that teaches functional programming in Scheme first. In essence, functional programming is object-oriented programming without the complication of data-centered program organization. Since object-oriented programming and functional programming express computations in terms of the same basic operations, the design principles and programming skills learned for Scheme apply equally well to Java. Java merely confronts programmers with the added design obligation of data-centered program organization.

The TeachJava Project builds on the highly successful TeachScheme project. It shows how the principles of functional programm design can be extended by the addition of object-oriented design patterns to yield the principles of object-oriented design. In essence, the design patterns are transformations that map familiar design recipes from functional programming to the corresponding data-centered (object-oriented) recipes.

We are offering a one week workshop on the TeachJava curriculum during the week of August 5 - August 9, 2002. The workshop is targeted at high school computer science teachers who have already taken the TeachScheme workshop and have adopted it. The workshop is free but participants will have to cover their own travel costs. For information on how to arrange travel, consult the Workshop Guidelines.

To apply for the workshop, please fill out this form.

This workshop is partially supported by the National Science Foundation and the Texas Advanced Technology Program.

Workshop Program

Resources