PLM(1) Cross-platform Programming Exerciser




The Programmer's Learning Machine (PLM) is a free cross-platform programming exerciser. It lets you explore various concepts of programming through interactive exercises, that you can solve in either Java, python or scala (see below for the Scala suppport). The interface and the whole content is througfully translated to English and French, and mostly translated to Brazilian and Italian.

The following lessons are included in this package:

. Welcome:
Teaches the basics of programming to absolute beginners

. Maze:
Presentes some classical maze escaping algorithms for intermediate

. Sort:
Focuses on the classical sorting algorithms for intermediate. One introduction lesson presents the basics of the sorting algorithms while two additional lessons apply them in more recreative settings.

. Recursion:
Dives into classical logo algorithms for intermediate

. Turtle Art:
Presents a few classical LOGO figures; your imagination will certainly explore this world further.

. LightBot:
Constitutes a little programmer's brain teaser for intermediate and advanced

This program is released under the GNU General Public License, while the content is released under the CC-BY-SA version. It requires Java version 1.6 or higher, either from OpenJDK or from another vendor.


PLM does not accept any command-line switch or options; every elements are configured either through the user-defined property file, or within the graphical interface directly.


The current Debian version (2.9) of scala is too ancient for the PLM, that requires at least 2.10. The support for the Scala language was thus removed from the Debian package. Sorry for the inconvenience. Please help us packaging the latest release of Scala if you can.


Other lessons are planned to explore new concepts, such as the backtracking, dynamic programming, object-oriented programming or the standard libraries of python and Java. Other programming languages (such as ruby or JavaScript) may be added in the future. We hope that the translation of the interface and content to other human languages will be contributed by the community in the future.


User-configured properties.

List of PLM users defined on this machine.

Save files for each user. This contains the text that you provided to solve the exercises. You can copy them over to another machine to continue your work, but you probably don't want to manually mess up with these files. If both machines are connected to the Internet, it is much easier to recreate a user with the same UUID on the second machine, and let the PLM synchronize the files for you.


The PLM program is distributed under the GNU GPL version 3 or later (GPLv3+) license, available from

The content is distributed under the CC-BY-SA license.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


See to report bugs and other feedback.