Qu'est-ce qu'Algoid ?

  • Vous voulez apprendre à programmer avec un langage et simple mais complet (fonctionnel, orienté objet avec un debogueur) ?
  • Vous ne voulez pas réaprendre tout une syntaxe le jour ou vous voulez faire du java, javascript, lua, c ou c++ ?
  • Vous voulez toujours avoir votre programme dans la poche et être cappable de le completer chaque fois que vous avez une idée géniale ?
  • Ou vous être enseignant et vous voulez enseigner la programmation à vos enfants ou à vos élèves ?
  • Algoid est fait pour vous !

    Algoid est le premier (et pour le moment le seul) langage tournant sur plateforme mobile qui possède son propre débogueur, mode d'exécution pas-à-pas et son explorateur de portée.
    Algoid est un logiciel destiné à simplifier l'apprentissage fascinant de la programmation.
    Algoid est pour les future développeurs entre 10 et 20 ans ou pour les plus confirmés qui veulent faire de la recherche dans les algorithmes.

    Pourquoi Algoid ?

    Un jour mon fils de 10 ans ma demandé en quoi consistait mon travail.
    Je suis ingénieur en programmation, mais comment l'expliquer ?
    Je me suis souvenu de ce que Jean Piager disait: "On ne connaît un objet qu'en agissant sur lui et en le transformant."
    C'est ce que j'ai fait : un objet pour agir dessus pour comprendre et apprendre les langages de programmation.

    Pourquoi sur Android ?

    Parce qu'un enfant et un ados n'a pas forcément les moyens de s'acheter un ordinateur.
    Parce qu'installer Algoid est cent fois plus simple que d'installer un compilateur Java ou C.
    Parce qu'une tablette peu s'emmener partout, dans le train, le bus etc. Ainsi, vous disposez de vos programmes où que vous soyez.
    Parce que quant j'était enfant et que j'apprenais la programmation, je rêvai de pouvoir écrire mes programmes partout et tous le temps.

    Phylosophie de l'apprentissage

    Il existe plusieurs façon d'enseigner la programmation à des enfants :

    • Avec des langages visuels (comme Scratch et Alice) :
      Idéale pour apprendre la logique d'un programme, mais trop loin des langages actuels.
      Cela doit être très difficile par la suite de passer à un langage comme ceux utilisés dans l'industrie.
    • Les langage standard sont extrèmement difficiles à appréhender pour les débutants. Trop de choses doivent êtres comprises avant de pouvoir écrire le moindre programme.
    • Les langage simplifiés, comme le Logo ou le small basic, sont, à mon sense, trop académiques et trop éloignés de la syntaxe et de la sémantique des langages industriels.

    Algoid tente de trouver un compromis à toutes ces approches :

    • Un environnement de programmation simple et prêt à l'emploie. Rien à installer d'autre, tout est intégré.
    • Une boucle de réaction courte : ce qui est codé est immédiatement visible (suivez la tortue). En plus le mode pas-à-pas, debogueur et l'explorateur de portée sont des outils essenciels à la comprehansion approfondit d'un programme.
    • Un langage simple, mnémotechnique mais complet et puissant.
    • Le langage est responçable de toutes les considérations de bas niveau, comme le typage des variables, les types recursifs (composites), la création et la destruction des objets.
    • Priorité à la fléxibilité : fonctions anonymes, tableaux, objets, MOP, transtypage dynamique.
    • .... mais un langage stricte et structurant, comme les opérateurs qui imposent le contexte.
    • Les ressources d'apprentissage qui sont elles aussi dans la "boite" ; aide, tutoriels et forum communautaire intégrés au logiciel.

    Fonctionalités

    Algoid est une app tout en un qui embarque trois produits : Un environnement de développement intégré et riche "IDE" :

    • Coloration syntaxique
    • POINT D'ARRÊTS et DÉBOGUEUR
    • mode d'exécution PAS À PAS
    • EXPLORATEUR DE PORTÉE temps réel
    • Auto complétion
    • Gestion des erreurs de syntaxe
    • Undo/Redo illimités
    • Optimisé pour les petits écrans

    La plateforme de documentation dédié à l'apprentissage :

    • Didacticiels avec exercices (français et anglais)
    • Forum en-ligne

    A langage de script

    • AL (pour Algoid Language)
    • alliant plusieurs paradigmes :
    • Procédurale et structuré
    • Fonctionnel (FP) et récursif
    • Programmation orientée objet (POO ou OOP) à prototypes avec sous-types polymorphisme, encapsulation, héritage, classe et instance automatique et ainsi prêt pour les design patterns
    • Naturellement orienté aspect (POA ou AOP)
    • Une syntaxe proche des standards industriels comme : C, C++, Python, Java, Javascript, Lua, Smalltalk, Objective c et Actionscript

    References

    Algoid trouve sa source dans beaucoup de projets :

    Référence
    La tortue Logo (1967) pour le comportement et le graphisme de la tortue.
    Microsoft small basic
    Jean Piaget : recherches au sujet de l'apprentissage pas soi-même par confrontation à la réalité (constructivisme en apprentissage)
    Stephane Ducasse : recherche au sujet de l'apprentissage de la programmation avec des robots en Smalltalk.
    Terence Parr's par son livre : Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages qui m'a permis de comprendre comment écrire un parseur LL(*).
    Design Patterns: Elements of Reusable Object-Oriented Software et tout spécialement le design pattern "interpreter" qui est le fondement du parseur d'AL.
    Better, Faster, Lighter Java où j'ai trouver comment écrire un code source plus propre et comment séparer les responçabilités.

apprendre à programmer devient simple et amusant !
Algoid
EN | FR