[icon]
ProfessorJ Language Levels
PLT | DrScheme | ProfessorJ | HtDC
  



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

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

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

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.

Screenshots


Typical Interactions in ProfessorJ with standard display of values
Beginner Printing
Display of an object in Beginner
Advanced language level printing
Display of an array of objects in Advanced
Error messages, with corresponding source highlighting
Beginner error message
Parse error caused by miss-capitalization
Beginner Language level
Failure to initialize field values, a requirement in Beginner
Advanced error message
Incorrect access of a method in Advanced