aroberge / reeborg

Enhanced Karel-the-robot clone
http://reeborg.ca/reeborg.html
Other
47 stars 36 forks source link

Major worlds revision #396

Closed aroberge closed 6 years ago

aroberge commented 6 years ago

Description

This is a major task which is created as a todo list to keep track of a major world reorganization. Every world should have Description that includes a difficulty level widget and a section on the programming knowledge require, referring to previous worlds if possible.

Worlds should be designed to be "programming language agnostic" in that they should be solved using either Python or Javascript. For each world collection, unit tests should be written for both Python and Javascript, for English and French versions of the worlds. (Unit tests should be reorganized and have a structure reflecting this type of partition).

Improvements

Except for possibly the first (few?) examples in a given series, worlds should be created with randomness so that student are forced to write programs that use tests and if/else/while constructs. Some more advanced worlds should be moved to secondary world collections.

New worlds

A few new words should be added including some examples from F. Lallemand which should be incorporated.

New collections

Worlds should be placed in different collections. The worlds shown in the default collection should be like the original Karel the robot world in that they would not require use of variables nor of arguments of functions.

Testing

For historical reason, we have two ways of running tests for each programming language (e.g. run_python and eval_python). The second way to run test was added when some worlds required initialisation (of randomly chosen elements) and was used sparingly. A single unified and comprehensive approach should be used which would make writing tests more straightforward. In the list below, this is referred to as New test syntax.

The list

This task supercedes #351.

aroberge commented 6 years ago

This has essentially all been implemented and can be closed.