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