With its impressive rise in popularity within education at all levels, Robotics is a rapidly growing field merging science, technology, engineering and mathematics (STEM). Nevertheless, the lack of standards in educational robotics has led to several issues, namely little (or almost no) code reuse between educational robotics curriculum from different schools, large dependency on proprietary
... [Show full abstract] solutions, and endless paradigm shifting between text, visual and flow programming languages. This paper proposes a novel educational programming language architecture to teach students how to program robots. The architecture combines the Robot Operating System (ROS) quasi-standard with the Snap! visual programming language, targeting students from primary education to high school. As opposed to the limited alternatives available in ROS, the solution proposed does not require the acquisition of any robotic platform, running directly on the browser, and benefiting from the power of the internet to program ROS-enabled real and simulated robots.