Roboc

A programming language used for teaching beginner programmers
Download

Roboc Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • David Ingram
  • Publisher web site:
  • http://www.srcf.ucam.org/~dmi1000/roboc/

Roboc Tags


Roboc Description

A programming language used for teaching beginner programmers Roboc is a programming language used for teaching beginner programmers. It includes an IDE and front-ends for LOGO, graphics (2D and 3D) and robot programming. This program is licensed under the GPL license.Here are some key features of "Roboc":· Robot programming, for maze solving etc· Graphics programming· LOGO turtle programming· Support for interactive programs such as games· Support for animation and physical force simulations· Mathematical programs· 3D object modelling and 3D world navigator· Simple program syntax (BASIC-like), only 9 keywords· Structured programming (like C, Java, etc)· Robust language interpreter· Dynamic types: integer, floating point and text· Recursive function calls· Library of built-in functions· Integrated Development Environment (IDE) with error highlighting· Multiple program slots with missions and autosave· Built-in program editor with automatic indendation· Network support, for writing multiplayer programs· Fully documented, with example worksheets for teachersHere is an extract from the admin guide, which explains the motivation behind roboc...Roboc is designed as a teaching language, so it doesn't require any previous programming experience, and is suitable for short courses (from two hours to two weeks). Relatively young programmers (14-17 years) should find it OK. It has been developed in conjunction with programming classes for such students, and has evolved based on the issues which were observed during teaching. To keep things simple we added only those language features which turned out to be necessary (for example, and was added to conditions because deeply nested if statements caused difficulty for some students).The three primary objectives for the language were(i) to be very quick to learn,(ii) to be worth learning (i.e. teaching correct/reusable principles) and(iii) to provide motivation to learn (via immediate feedback).Secondary objectives were to have a compact syntax (so useful program fragments can be displayed on a single slide) and to be easy to parse, for quick development of the interpreter.The goal for the graphical front end was to make both logo and robot exploration modes possible using the same language and environment. This is useful since we found some programming idioms were best explained with different types of program (robot programming uses conditional statements heavily, whereas logo emphasises loops and recursion, for example). The multi-modal idea was later extended to include artistic programs (including interactivity and animation).The IDE was added so that students did not have to manage a separate editor window or manually save their files, and to facilitate integrated error line highlighting together with fully automatic block indentation (catching many common mistakes such as missing end statements).Before developing the roboc language, several existing alternatives were considered. We wanted to use logo's handy turtle concept but felt the logo language itself was too archaic. Some robot simulators used a pseudo-assembly language, but that was clearly too low-level for our target audience. BASIC was a possibility, but didn't lead on to structured programming very well.There are a number of interesting projects which use a mainstream language, such as Python or Java. This is attractive since the students can easily move to the "real thing", although it is probably best to teach a subset of the language and to hide a lot of unnecessary detail inside wrapper classes.Roboc has the advantage that it is complete but very small, the graphics functionality is built-in, and we could tailor it to our exact requirements. For example, omitting type declarations made simple examples shorter, a case insensitivity option avoided a common case of students getting stuck due to minor typos, and so on.Requirements:· SDL >= 1.2.7· SDL_image >= 1.2.3· SDL_gfx >= 2.0.13· SDL_ttf >= 2.0.7· freetype2 >= 2.1.10


Roboc Related Software