What is Algoid ?

  • If you want to learn how to program with a simple but complete language and ide (functional, object oriented with a debugger)
  • If you do not want to relearn a language the day you want to go to java, javascript, lua, c or c++
  • If 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
  • Or if you are a teacher and you want to teach programming to your students or perhaps your own kids
  • 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 art of programming.
    Algoid is intended for future developers between 10 to 65 years old and for developers who want to do some research on 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 I did.
    I replied kindly: I am an engineer in computer development, but how could I explain it easilyto a 10 year old boy?
    I remember what Jean Piager said: "can you create something for me to understand it better?"
    That's what I did!: I created Algoid to show people what we software developers do and how we do it so they will be able to learn and do it themselves.

    Why on Android ?

    Because most teenager have not enough monney to buy a computer, well, some do have but it's much cooler to learn how to code on your smartphone and show off your skills to anyone!.
    The other thing that I believe is that installing Algoid is a thousand times easier than installing Java or C compiler.
    Algoid was designed to be mobile to help you be creative on the go, you may be the next one to develop a fabulous app and maybe become the next Bill Gates Lol.
    I remember when I was a teenager and I learned programming, I dreamed of being able to try new ideas everywhere and anytime, nobody knows where you going to have that brilliant idea to create something awesome.

    Learning phylosophie

    there are several ways to learn programming :

    • 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 knowledge should be understood before you 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, everything 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


    Algoid was inspired by several great works :

    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 !