We believe that introductory students are not prepared for a full
programming language with a professional compiler (and confusing
error messages). Therefore ProfessorJ presents three language
levels
that are designed to gradually introduce students to a professional
language.
These language levels-- Beginner, Intermediate, and Advanced --
prevent students from accidentally stumbling across features not yet
seen in class.
The manuals linked to below are for DrScheme version 371, for other
versions look at http://download.plt-scheme.org/doc/
All documentation
ProfessorJ
Beginner Language Manual :: for version 371
ProfessorJ Beginner presents basic object-oriented programming, where
students learn to organize their data within class structures.
- A class must have a constructor, and may implement
one interface.
- Fields must be initialized, either in the constructor or at
their
declaration site.
- Methods must return a value.
- Fields and methods of the current class must be accessed
using this.
ProfessorJ
Intermediate Language Manual :: for version 371
ProfessorJ Intermediate introduces abstraction, refinement inheritance,
and mutable objects.
- Classes may be abstract, may extend other classes, and may
implement
multiple interfaces.
- Fields do not require initialization and may be mutated.
- Methods may be used for effects.
| ProfessorJ
Intermediate + access |
ProfessorJ
Intermediate + access Language Manual :: for version 371
ProfessorJ Intermediate + access introduces visibility control and
interface refinement.
- Methods, fields, and constructors may be private,
protected, or public
- Constructors and methods may be overloaded
ProfessorJ
Advanced Language Manual :: for version 371
ProfessorJ Advanced introduces library programming, static vs. instance
members, and iterative programming.
- Arrays and loops can be used.
- Classes may be grouped into new library packages.
Typical
Interactions in ProfessorJ with standard display of values
|

Display of an object in Beginner
|

Display of an array of objects in Advanced
|
Error
messages, with corresponding source highlighting
|

Parse error caused by miss-capitalization
|

Failure to initialize field values, a requirement in Beginner
|

Incorrect access of a method in Advanced
|
|