What is Algoid ?

  • You want to learn programming with a simple but complete language and ide (functional, object oriented with debugger) ?
  • You do not want to relearn a language the day you want to go to java, javascript, lua, c or c++ ?
  • You want to always have your program in your pocket and be able to complete it where you want, as soon as you have a great idea?
  • Algoid is for you !

    Algoid is the first (and at least the only one) language on mobile platform to process its own debugger, step by step execution mode and scope explorer in realtime.
    Algoid is a software designed to simplify the fascinating apprenticeship of the programming.
    Algoid is intended for future developers between 10 and 20 years old and for confirmed one that expect to try somme funny research about algorithms.
    learn programming with robots (turtle) write your programm with smart editor ... .... and fully integrated help understand with debugger ... .... and scope explorer program fun geometry very fun geometry have fun to create your OWN video game or become studious ... .... very studious

    Why Algoid ?

    One day my 10 years old son asked me what was my job.
    I am engineer in computer development, but how to explain?
    I remember what Jean Piager said: "On ne connaît un objet qu'en agissant sur lui et en le transformant."
    That's what i done: an object to act on it to understand and learn programming languages.

    Why on Android ?

    Because a teenager have not enough monney to buy a computer.
    Because that installing Algoid is a thousand times easier than installing Java or C compiler.
    Because Algoid is designed to be mobile and you can always have your latest program in your pocket and complete as soon as you have a great idea.
    Because when I was a teenager and I learned programming, I dreamed of being able to try new ideas everywhere and especially anytime.

    Learning phylosophie

    It exists several ways to learn programming for kids :

    • Visual based languages :
      Ideal to learn programming logic but too far from actual languages.
      Knowledge gap and time investment should be huge to switch to industry standards.
    • Standard languages, extremly difficult to learn for a first approach. Too many low level knowledges should be understood before begin to program.
    • Lisp based languages like logo with short reacting cycle (like turtle), in my sens, to academic and too far than industrial standards syntaxes and paradigms.

    The purpose of Algoid is to find the compromise between these solutions :

    • A simple and ready to use programming environment. Nothing to install else, everithing is on the shelf.
    • Short reacting cycle : what your code is immediatly what you get (follow the turtle). In addition, Step by step, debugger and scope viewer are essencial tools to understand the program behaviours.
    • A simple, clear but powerfull and complete language.
    • The simpliest syntaxe as possible. To be more mnemonic all entity declarations have closed grammars : array {}, function () {}, object () {} ect....
    • Language is in charge of low level considerations : variable typing, composite typing, object creation and garbage collection, object directly usable with default instance.
    • Flexibility first : anonymous function, array, object, MOP, automatic casting.
    • .... but strict and structuring, no shared operator like '+' but '+' for numbers, '..' for string, '->' for functions ect ....
    • Learning ressources on the shelf too : integrated help, tutorials and community forum

    The language - Algoid Language

    Algoid is a scripting language and an IDE (Integrated development environment) designed together to simplify the fascinating apprenticeship of programming.
    AL (Algoid Language) is a multi-paradigm computer programming language designed for education and teaching.

    IDE draws its power from powerfull DEBUGGER (based on breakpoints), real-time SCOPE EXPLORER and STEP BY STEP execution mode.

    AL is designed to learn programming by progressive way (from teenagers up to 20 year old and why not after).
    First time by manipulating turtle cursor addressed in Cartesian geometry, or by relative instructions in a Euclidean space with imperative, and thereafter with functional paradigm (as logo turtle).
    And gradually progress to the recursive, object oriented programming and finally understand the aspect oriented programming bases.

    AL support complex array manipulating and can be a precious companion for graphs theory researches and learning (Edsger Wybe Dijkstra, Floyd–Warshall, tree depth first search, backtracking, breadth-first search, sorting algorithms, bubble sort, odd-even sort, cocktail sort, quick sort).

    Because to learn a language which will never serve and because most of the languages used in industry are inspired from C, the AL syntax is very closed from it; AL rise from several langage styles and idioms like : C, C++, C♯, java, python, javascript, actionscript and lua.

    AL benefict of all the most known programming paradigms :

    • Dynamically, weak but explicitelly typed
    • Lexical scope
    • Understand several natural types : void, boolean, integer, string, function, object, array
    • Imperative : if, elseif, else, for, while, until
    • Structured
    • Functional and recursif
    • Functional concatening
    • Object oriented, prototype based
    • Multi-inheritance
    • Polymorphisme
    • Dynamic object definition
    • Duck typing
    • Natively Aspect oriented
    • Self evaluable

    The App

    The Algoid IDE has several features :

    • Syntax highlighting
    • Auto indentation
    • Auto completion
    • Dynamic help system and code copy from samples
    • Syntax error management
    • Step by step execution modes
    • Breakpoints and debugger
    • Scope explorer
    • Trace and logcat access

    The Algoid App has the following features :

    • Graphical execution environment: a Logo's Turtle like
    • Textual execution environment
    • Android device events: onTouch
    • A complet file system to manage your programs

    References

    Algoid was inspired by several great works :

    Reference
    The Logo's turtle (1967) for behaviours and turtle graphic.
    Microsoft small basic
    Jean Piaget researches about self apprenticeship by confronting yourself to the reality (constructivism teaching)
    Stephane Ducasse's researches about learning programming with Robots in smalltalk.
    Terence Parr's book: Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages that permit me to understand how to write my LL(*) syntax parser.
    Design Patterns: Elements of Reusable Object-Oriented Software and specially the interpreter design pattern, that is the foundation of the AL parser.
    Better, Faster, Lighter Java where I found how to write clean code and understand the power of separation of responsibilities.

learn programming made simple and funny !
Algoid