The objective of the PBL Java project is to develop an add-in to a specific LMS to support Problem Based Learning (PBL) of Java. The add-in is focused on the basic programming skills. This means that the learners are able to define the variables and methods and practice using them. Several different problem types are defined regarding these concepts.
The problems can be specified at several levels of difficulty/complexity. The basic level problems are related to the basic statements such as variable or array definitions. Value assignments and data retrieval are also used at this level. The 2nd level problem types include implementation of different programming blocks (sequential, cyclic, etc.). Method implementations are the focus of the 3rd level problems. There are several problem types related to the method properties (e.g. type and number of arguments, required functionality, and return values). The highest level problems require the definition of the whole class (or classes) to accomplish more general functionality.
The system generates the problems dynamically. The names, types and values (of the variables, methods and classes) are defined randomly. These data represent the problem parameters. The problems typically include three or more parameters. The system uses these data to create its own solution and to check the learner's solution.