I created a website, frogram
The initial idea that me and Anthony had, was to teach the basics of Python; then give out some challenges for the participants to work on, e.g. printing
hello world 10 times, solve the quadratic equation etc.
However, we see two problems with this approach:
hello world10 times? They solved the quadratic equation, so what?
To make the challenge more rewarding, we have this idea of asking the participants to win the Frogger game by writing some code. The code will essentially control the frog. It is obvious that playing games is much more rewarding than printing
hello world 10 times.
We invented a frogger-specific language to minimise the time needed for fixing language issues. We want to make the language as minimal and restrictive as possible so that it could provide super helpful error message.
For example, since the available predicates are limited to only
isGoalUp|isRiverUp|is(Car|Log|Wall)(Up|Right|Down|Left), if the user types
isCardown with a lowercase
d, the error message generated would be super specific saying:
Expected "Down", "Left", "Right", or "Up" but "d" found. (Thanks to PEG.js
At last, combining the frogger and the frograming language, we have our final Frogram