Le projet AlgoTouch

Michel Adam

Maître de conférences en informatique

Enseigne la programmation au département informatique de l’IUT de Vannes

Moncef Daoud

Maître de conférences en informatique

Enseigne la programmation au département Mathématiques, Informatique et Statistiques de la Faculté des Sciences à Lorient

Patrice Frison

Professeur émérite en informatique

Il a enseigné la programmation sous différentes formes au département Mathématiques, Informatique et Statistiques de la faculté des Sciences à Vannes. Il est membre du laboratoire IRISA à Vannes.

Sabine Letellier Zarshenas

Maître de conférences en informatique

Enseigne la programmation au département Science des Données de l’IUT de Vannes

Le projet AlgoTouch

Le début

Le projet a été initié en 2013 par Patrice Frison. Il s’agissait de développer un logiciel d’aide à l’enseignement de la programmation pour les débutants. Son objectif est de permettre à un enseignant d’informatique d’expliquer et de construire, de façon interactive, des programmes de bases pour des étudiants débutants. Le logiciel utilise la métaphore du tableau blanc : l’enseignant peut manipuler directement les données d’un programme comme il le ferait avec un tableau blanc mais évidemment plus proprement !

Mais le système offre aussi la possibilité d’enregistrer une séquence d’actions puis de la rejouer. Le système est capable de gérer des conditionnelles, des boucles et des macro opérations. En définitive, l’enseignant ne fait que manipuler des variables, index et tableaux et le système fabrique automatiquement le programme.

Le logiciel, appelé AlgoTouch, a été développé en Java/Swing et peut s’exécuter sur PC Linux, Windows, Mac. Il est particulièrement intéressant en utilisant un tableau blanc interactif (TBI). Avec ce TBI, les actions de l’utilisateur s’effectuent avec son doigt directement sur l’écran projeté au tableau, ce qui rend l’usage de l’outil encore plus intuitif et démonstratif.

Les premières versions de démonstration ont été réalisées dès 2014. Le logiciel permet par exemple de créer des programmes classiques de recherche et de tri (tri par sélection, par insertion et par fusion). Ces travaux ont été présentés en 2014 et 2015 à la conférence ITiCSE (Innovation and Technology in Computer Science Education).

Evolution du projet

Le projet a été renforcé avec la participation de Moncef Daoud en septembre 2015,  celle de Michel Adam, en avril 2017, puis celle de Sabine Letellier Zarshenas en mai 2023. L’objectif initial du logiciel AlgoTouch était d’assister un enseignant d’informatique pour illustrer la construction d’un programme. Il s’est avéré que le logiciel pouvait aussi être un outil utilisable par des élèves et des étudiants pour réaliser leurs propres programmes.

Constitué ainsi autour d’une équipe, les objectifs du projet ont été les suivants :

  • créer une bibliothèque de programmes conçus avec AlgoTouch,
  • tester le logiciel avec différents publics (enseignants, élèves, étudiants) pour connaître leur sentiment,
  • améliorer le logiciel compte tenu des avis des utilisateurs, mettre en place des expérimentations avec des élèves et des étudiants pour évaluer l’apport d’AlgoTouch pour l’apprentissage de la programmation par rapport à des approches classiques,
  • faire connaître AlgoTouch auprès de la communauté française et internationale en publiant dans des conférences ou ateliers.

Version en ligne en 2022

Depuis Septembre 2022, une nouvelle version (appelée version 2) est disponible sur le site. Elle permet de lancer AlgoTouch directement sur le navigateur sans avoir besoin de le télécharger. Cette version contient aussi de nombreuses améliorations, tant au niveau de l’interface utilisateurs, qu’au niveau des fonctionnalités.

Deux points méritent d’être soulignés concernant cette version:

  1. bien qu’AlgoTouch utilise un langage de programmation qui lui est propre, on peut désormais visualiser en temps réel la traduction dans les langages suivants : Python, Java, C et C++. Ces programmes peuvent être copiés simplement par copier-coller dans un éditeur.
  2. on peut ouvrir directement un programme AlgoTouch par un lien sur une page web ou depuis un mail. Par exemple cliquer sur ce lien pour tester le tri par sélection. Sur la page, cliquer successivement sur :
    • pour préparer l’exécution puis
    • pour voir son déroulement automatique.

Les détails sur cette version sont disponibles sur cette page.

Le projet actuel

Depuis juin 2023, une évolution majeure du logiciel (appelée version 3) a été mise en ligne. De nombreuses améliorations ont été apportées tant au niveau de l’interface que des possibilités de modification du code ou de visualisation de l’exécution de programmes. Les points principaux sont les suivants :

  1. il est désormais possible d’effectuer des modifications du code produit. Des lignes de code peuvent être supprimées, ajoutées. L’ajout se fait par manipulation (sans écriture de code).
  2. il est possible d ‘exécuter un programme de multiples manières : ligne par ligne, bloc par bloc, en mode automatique avec réglage de la vitesse d’exécution.

Les détails sur l’évolution de cette version sont données sur cette page.

Travaux et publications

Conférences internationales avec comité de sélection

  • M. Adam, M. Daoud, P. Frison : Direct Manipulation versus Text-based Programming – An experiment report, In Proceedings of the 2019 conference on Innovation & technology in computer science education (ITiCSE ’19), ACM editor. Aberdeen, Scotland UK, July 2019.
  • M. Adam, M. Daoud, P. Frison, Teaching and Learning How to Program Without Writing Code, In Proceedings of EMENA-ISTL (Information Systems and Technologies to Support Learning) 2018 Conference. Springer Editor. Fes Marocco, October 2018.
  • P. Frison, A Teaching Assistant for Algorithm Construction, In Proceedings of the 2015 conference on Innovation & technology in computer science education (ITiCSE ’15). ACM editor. Vilnius Lithuania, July 2015.
  • P. Frison, AlgoTouch: a Programming by Demonstration Tool for Teaching Algorithms, Poster, In Proceedings of the 2014 conference on Innovation & technology in computer science education(ITiCSE ’14). ACM editor, Uppsala, Sweden, 334-334. July 2014.

Conférences internationales francophones

  • M. Adam, M. Daoud, P. Frison : Construction d’un programme combinant exécution partielle et manipulation directe, 10ème Conférence sur les Environnements Informatiques pour l’Apprentissage Humain, EIAH’2021, Fribourg, Suisse 2021.
  • M. Adam , M. Daoud et P. Frison : Expérimentation du passage d’une activité débranchée au programme, Poster, 9ème Conférence sur les Environnements Informatiques pour l’Apprentissage Humain, EIAH’2019, Paris 2019.
  • P. Frison, M. Daoud, M. Adam : Transition didactique de l’activité débranchée à la programmation avec AlgoTouch. In : Didapro 7 – DidaSTIC. De 0 à 1 où l’heure de l’informatique à l’école. pp. 1–17. Lausanne, Suisse, Février 2018, https://hal.archives-ouvertes.fr/hal-01753119
  • P. Frison et M. Daoud : Processus de transition de l’activité débranchée à la programmation avec AlgoTouch, 8ème Conférence sur les Environnements Informatiques pour l’Apprentissage Humain, EIAH’2017, Strasbourg 2017.

Séminaires et vulgarisation auprès du public

  • P. Frison et M. Daoud, Un logiciel ludique pour apprendre à programmer, Nuit de la Science, Vannes et Lorient, Octobre 2016, 2017, 2018, 2019
  • P. Frison, From Unplugged Activity to Programming with AlgoTouch, Université de Santa Clara, USA, Mai 2017
  • P. Frison et M. Daoud, Démonstration AlgoTouch, Journées Open Education, Nantes, Mars 2017
  • P. Frison et M. Daoud, AlgoTouch – Apprentissage ludique et tactile de la programmation, Journée du numérique – des solutions au service de l’éducation et des entreprises, IUT de Vannes, Mars 2017
  • P. Frison, AlgoTouch : une application d’aide à l’enseignement de l’algorithmique, 1ère journée SUPAPP : APPlicatifs pour l’enseignement SUPérieur, Université Bretagne Loire, Septembre 2016
  • P. Frison, AlgoTouch : une application d’aide à l’enseignement de l’algorithmique, Université de Corté, Septembre 2016

Vidéos de la version Java