Once students have acquired some problem solving skills, it is time for them to make the jump to textual code. However, the wrong language can do serious harm to a fledgling programmer. Reluctant students are an unfortunate reality of all sectors of education; a reluctant programmer whose logic is found but grammar is lacking can be permanently disillusioned by the grammatical nightmare of a C-like language, or the indenting hell of Python. Traditional languages present many possibilities for elementary mistakes that can be very difficult for an inexperienced eye to find. Missing semi-colons or curly brackets in C-like languages are difficult enough to eliminate, and errors of indentation in Python can even be invisible to the naked eye.
NoobLab features a very simple pseudocode-like language called Banana. The usual constructs exist for conditional processing, repetition and loops, functions and so on. The grammar of Banana is very simple - there's very little in the way of symbol-based punctuation, code blocks are ended with keywords prefixed by end
(e.g. endif
, endfor
and so on), the language is case insensitive and is weakly typed.
The Banana language has been designed to provide an easy transition between blocks and "real" languages. While grammatical errors can happen (e.g. a student can leave off an endif
) the nature of the language helps reduce simple errors derived from typos or unfamiliarity such as leaving off semi-colons or not matching curly brackets.
Ultimately, the intent behind Banana is to provide a simple language where students are not penalised for errors that a human would barely even perceive as a mistake. This is important when students are still developing their problem solving skills. Banana lets students get into the habit of textual coding without issues of syntax and grammar adversely affecting their confidence and perception of their progress.