# RoboMind

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/RoboMind
> Markdown URL: https://mediated.wiki/source/RoboMind.md
> Source: https://en.wikipedia.org/wiki/RoboMind
> Source revision: 1346293990
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Educational programming environment}}
{{Infobox software
| logo                   = 
| screenshot             = 
| name                   = RoboMind
| author                 = Arvid Halma, Research Kitchen
| released               = 2005
| latest release version = 5.3
| latest release date    = {{start date and age|2014|11|18}}
| programming language   = [Java](/source/Java_(programming_language))
| genre                  = Educational
| license                = RoboMind Licence<ref name="roboLic">{{Cite web|url=http://robomind.net/en/licence.html|title = RoboMind.net - Licence}}</ref>
| website                = [http://www.robomind.net www.robomind.net]
}}

'''RoboMind''' is a simple educational programming environment with its own scripting language that allows beginners to learn the basics of [computer science](/source/computer_science) by programming a simulated [robot](/source/robot). In addition to introducing common programming techniques, it also aims at offering insights in [robotics](/source/robotics) and [artificial intelligence](/source/artificial_intelligence).
RoboMind is available as stand-alone application for [Windows](/source/Windows), [Linux](/source/Linux), and [Mac OS X](/source/Mac_OS_X). It was first released in 2005 and was originally developed by Arvid Halma, a student of the [University of Amsterdam](/source/University_of_Amsterdam) at the time. Since 2011, RoboMind has been published by Research Kitchen.<ref name="researchkitchen">[http://www.researchkitchen.net Research Kitchen], [Delft](/source/Delft), [The Netherlands](/source/The_Netherlands).</ref>

==The simulation environment==
The application is built around a two-dimensional grid world in which a robot can move around, observe neighboring cells, or mark them by leaving a paint trail. The world may also contain so-called beacons that can be carried around by the robot in order to clear its way.

Since version 4.0, it is possible to export RoboMind scripts to robots in the real world directly. Currently, [Lego Mindstorms NXT 2.0](/source/Lego_Mindstorms_NXT_2.0) are supported.<ref name="legoSupport">[http://www.robomind.net/en/docLego.html RoboMind's Lego Mindstorms NXT support]</ref>

==The scripting language==
RoboMind offers a basic scripting language that consists of a concise set of rules. Apart from commands to make the robot perform basic movement instructions, the [control flow](/source/control_flow) can be modified by [conditional branching](/source/Branch_(computer_science)) (if-then-else), loops (while) and calls to custom procedures.

Example script to draw square:
 paintWhite
 repeat(4) {
     forward(2)
     right
 }

Recursive line follower example:
 follow
 
 procedure follow{
     if(frontIsWhite){
               forward(1)		
     }
     else if(rightIsWhite){
               right
     }
     else if(leftIsWhite){
          left
     }
     else{
          end
     }
     follow
 }

The programming environment offers an integrated text editor to write these scripts, with [syntax highlighting](/source/syntax_highlighting), [autocompletion](/source/Autocomplete) and [line number](/source/line_number)ing.

Modifications to the environment, such as painting grid cells, are used to store a runtime state. This shows the robot in its environment is directly related to 2D [Turing machine](/source/Turing_machine)s.<ref name="2dTuring">[https://www.youtube.com/watch?v=wlHqe6LJuIc Robomind Turmite: 2D Turing Machine], a YouTube movie.</ref><ref name="sortingTuring">[https://www.youtube.com/watch?v=AppR-c7BObY Sorting Turing Machine in RoboMind], a YouTube movie.</ref> Since version 5.0, the language does allow the declaration of variables and functions (procedures that return values).

The scripting language itself is currently available in 22 languages: [Arabic](/source/Arabic), [Catalan](/source/Catalan_language), [Chinese](/source/Chinese_language), [Czech](/source/Czech_language), [Dutch](/source/Dutch_language), [English](/source/English_language), [French](/source/French_language), [German](/source/German_language), [Greek](/source/Greek_language), [Hungarian](/source/Hungarian_language), [Indonesian](/source/Indonesian_language), [Korean](/source/Korean_language), [Polish](/source/Polish_language), [Brazilian Portuguese](/source/Brazilian_Portuguese), [Russian](/source/Russian_language), [Slovak](/source/Slovak_language), [Slovenian](/source/Slovene_language), [Spanish](/source/Spanish_language), [Swedish](/source/Swedish_language), [Thai](/source/Thai_language), [Turkish](/source/Turkish_language) and [Ukrainian](/source/Ukrainian_language). All instructions and keywords can be translated. This makes it easier to learn for non-English speakers than most other programming languages that are constrained to English syntax and Latin alphabets.

==Relation to other educational software==
RoboMind is somewhat similar to [Karel the Robot](/source/Karel_(programming_language)) but its syntax is closer to C/C++ while Karel is closer to [Pascal](/source/Pascal_(programming_language)).

RoboMind can be related to the [Logo](/source/Logo_(programming_language)), at which a turtle can be moved around to create geometric shapes. The syntax of RoboMind however is different and corresponds more directly to mainstream scripting languages, such as [JavaScript](/source/JavaScript). In RoboMind perceiving and changing the environment are of equal importance, where Logo focuses mostly on the latter. This makes RoboMind more suitable to demonstrate real life applications. In Logo, on the other hand, users have more freedom to create visual effects.

Other free educational programming languages, such as [Alice](/source/Alice_(software)) and [Scratch](/source/Scratch_(programming_language)) focus on the wider domain of interactive story telling.

==See also==
* [Educational programming language](/source/Educational_programming_language)
* [Karel the Robot (programming language)](/source/Karel_(programming_language))
* [RUR-PLE](/source/RUR-PLE)
* [Microsoft Small Basic](/source/Microsoft_Small_Basic)
* [Minibloq](/source/Minibloq)
* [Logo (programming language)](/source/Logo_programming_language)
* [Alice (software)](/source/Alice_(software))
* [Scratch (programming language)](/source/Scratch_(programming_language))
*[Kodu Game Lab](/source/Kodu_Game_Lab)
*TouchDevelop

==References==
{{Reflist}}

== External links ==
* {{Official website|http://www.robomind.net}}
* [https://web.archive.org/web/20131230232906/http://www.robomindacademy.com/ Online RoboMind with complete computational thinking curriculums]

Category:Computer science education

---
Adapted from the Wikipedia article [RoboMind](https://en.wikipedia.org/wiki/RoboMind) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/RoboMind?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
