A teaching environment for Java with language levels
PLT | DrScheme | HtDC

ProfessorJ is an extension of the DrScheme development environment that supports variants of Java suitable for education and research.

The pedagogic variants provide student-friendly subsets of Java with error messages based on the expected knowledge of an introductory programmer, in the same style as DrScheme. The development environment supports interactive exploration of statements and expressions in an interactions window, as well as integrated testing constructs. These language  levels support the pedagogy presented in the textbook How to Design Classes (in development), a follow-up to the text How to Design Programs.
From the research side, ProfessorJ has served as the vehicle for exploring two additions to the Java programming language. The first supports interoperability between Scheme and Java. The second provides linguistic support for unit testing, with an integrated test reporting mechanism.

ProfessorJ has been used by students in introductory courses at colleges including Northeastern University, University of Utah, University of Chicago, Colby College, and Knox College, as well as several high schools. Professor Proulx of Northeastern University has taught several summer workshops for faculty and high school teachers using ProfessorJ.

Further Information on

Download and Installation

ProfessorJ is included with the standard distribution of DrScheme, available from download.plt-scheme.org/drscheme
DrScheme runs on Windows (95 and up), Mac OS X (10.3 and up), or Unix running the X Window System. Follow the download and installation instructions for your operating system.
The released version of ProfessorJ contains ProfessorJ Beginner, Intermediate, Advanced, Full and Java + dynamic language levels, with testing language support for each language level.

             ProfessorJ Full is an experimental release, and may fail to accept correct Java code.
             The Java+dynamic language level relies on Full, and may also fail to accept correct Java code.
             Language level documentation is available through Help Desk, further information can be found in doc.txt in the profj collection

Development Versions of ProfessorJ

The current version of ProfessorJ can be obtained from the PLT nightly builds site or through the svn release.
This version will be updated periodically with bug fixes and new features; this is cutting edge development.

License information

Using ProfessorJ

DrScheme provides a tour for new users, accessible through the help system and through the about DrScheme menu.  This tour describes how to select a programming language -- the ProfessorJ languages comproise one set of options, as well as how to conduct a typical DrScheme session.

The ProfessorJ languages support one significant usage difference from the Scheme languages: the definitions window may only contain import statements, package declarations, and class and interface definitions; the interactions window prompt will only accept statements and expressions valid for the current language level. The keyword 'this' will result in an error within the interactions window, as there is no current class instance.

Manuals within Help Desk provide the grammars for ProfessorJ Beginner, Intermediate, and Advanced.


ProfessorJ: A Gradual Intro to Java through Language Levels Kathryn E Gray and Matthew Flatt. OOPSLA Educators' Symposium October 27, 2003 Anaheim California

How to Design Class Hierarchies Viera K Proulx and Kathryn E Gray. Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts, July 2005

Design of Class Hierarchies: An Introduction to OO Program Design Viera K Proulx and Kathryn E Gray.  Proc. of Special Interest Group on Computer Science Education, March 2006.

Compiling Java to PLT Scheme Kathryn E Gray and Matthew Flatt. Scheme Workshop, September 2004

Fine Grained Interoperability through Mirrors and Contracts Kathryn E Gray, Robert Bruce Findler, and Matthew Flatt. OOPSLA October 2005

 Report a Bug

If possible, please report bugs through the bug report interface in DrScheme's Help Desk.
Otherwise use bugs.plt-scheme.org

ProfessorJ & www.professorj.org contact::   kathyg@cs.utah.edu