Learn It - faire ses listes de vocabulaire

a marqué ce sujet comme résolu.

Bonjour, bonsoir à tous,

Je suis Gérard Paligot, alias Andr0 sur ce site et sur d'autres. Je suis ingénieur en génie logiciel et un grand amateur du développement mobile. Je suis/était aussi un contributeur actif de la plateforme Zeste de Savoir que vous avez sous les yeux. Récemment, je me suis rendu compte que je m'éloignais de plus en plus de mes premiers amours, à savoir le développement d'applications Anrdroid. Cela fait doit bien faire 6-7 mois (à l'heure où j'écris ces lignes) que je n'ai pas touché à du développement Android de manière sérieuse. J'ai donc mis de côté le développement Python/Django dans le cadre du développement de Zeste de Savoir pour me mettre à jour dans le développement Android. Je dois dire que c'était un peu difficile, je me suis même surpris à me rendre sur mes propres tutoriels pour me rappeler comment développer certaines choses précises.

J'ai donc mené un petit projet sans aucune prétention pour apprendre la confection d'une application en Material Design grâce à la toute nouvelle bibliothèque de compatibilité (développée par Google) pour apporter le Material Design aux versions Android 7 et supérieur. Ce projet se nomme Learn It !

En savoir plus sur le projet

Genèse

Depuis maintenant quelques semaines, je travail activement mon anglais pour des raisons personnelles et professionnelles. Je lis donc des Harry Potter en anglais, je regarde des séries en anglais sous-titré anglais, je me raconte ma journée à voix haute et d'autres exercices dans ce genre. D'ailleurs, tous ces exercices amènent beaucoup de vocabulaire et je me retrouve avec un carnet avec des listes de vocabulaire.

N'ayant pas toujours mon carnet sur moi pour réviser mon vocabulaire, je me suis penché sur des applications mobiles mais, contre toute attente, je n'ai pas trouvé beaucoup d'applications qui se contentent de laisser les gens créer leurs listes de vocabulaire. J'ai donc eu l'idée de la développer mais, selon moi, il y a 2 choses importantes dans le développement d'une application : 1) La meilleure manière d'apprendre, c'est la pratique ; 2) Développer pour développer, ce n'est jamais bien passionnant.

Comme j'avais envie d'apprendre à utiliser la dernière bibliothèque de compatibilité sur le Material Design et que je ne voulais pas développer bêtement mon application, j'ai décidé de me rajouter une contrainte : Développer l'application en un week-end. Je me suis donc bloqué un week-end (celui là même où je poste ce sujet) et j'ai développé l'application. Je peux déjà vous dire que je maitrise maintenant une bonne partie de la bibliothèque et que l'application est fonctionnelle (bien que de nombreuses fonctionnalités pourraient s'ajouter).

Généralités et avancement

Même les applications les plus simples peuvent, finalement, déborder de nouvelles fonctionnalités les plus intéressantes les unes que les autres (ou les plus inutiles, tout est une question d'intérêt de la fonctionnalité potentielle). Aujourd'hui, l'application est fonctionnelle et je compte la poster prochainement sur le Play Store mais j'y vois d'autres fonctionnalités que je pourrais peut-être développer un jour :

  • Demander au smartphone de prononcer les mots pour en connaitre la prononciation.
  • Dicter les mots lorsque l'utilisateur veut rajouter un mot de vocabulaire pour bien savoir le prononcer.
  • Rajouter une recherche dans la liste de vocabulaires d'une langue donnée.
  • Etc.

La liste pourrait être bien longue et je ne sais pas si je vais un jour les développer mais elles sont intéressantes à mentionner.

Objectifs

Vous l'aurez compris, cette application n'est pas très ambitieuse pour l'instant dans ses fonctionnalités misent en oeuvre. Par contre, elle l'est beaucoup plus dans ses activités annexes. En effet, j'ai dans l'idée de me servir de ce projet pour contribuer à Zeste de Savoir en terme de contenu : écrire un article pour présenter la bibliothèque de compatibilité et quelques mini tutoriels pour son utilisations.

Le projet et son originalité

Comme je l'ai mentionné dans la sous-section précédente, je compte contribuer à Zeste de Savoir en terme de contenu sur les thématiques auxquelles j'ai été amené à réfléchir pour concevoir mon application, sur les problématiques que j'ai rencontrées (j'ai rencontré 2 bugs dans la bibliothèque de compatibilité) et en terme de mini tutoriel sur son utilisation.

Mais aussi, le projet est open-source et sont disponibles via le lien suivant. N'hésitez pas à les consulter, voire à contribuer si vous le désirez !

Captures

Si vous êtes curieux, vous pouvez voir à quoi ressemble l'application dans la balise secret ci-dessous :

Ecran principal Menu latéral

En espérant vous avoir au moins intrigué ! :)

Intéressant, simple et j'espère efficace. Je testerai à l'occasion.

PS : Learn it. C'était pas l'un des noms qu'on avait évoqué pour ZdS ? :P

+0 -0

C'est intéressant du point de vue du challenge que tu t'es fixé, de le faire en un week-end. Par contre, le problème c'est que l'application arrive sur un marcher très mature, où les géants (anki, memrise, quizlet, …) ont déjà de très bonnes applications, et le plus important, d'excellentes listes partagées. Je pense que de nos jours, c'est une condition sinequanone à la réussite populaire d'un tel projet.

Pour la prononciation, ça ne va pas être évident non plus. Des sites comme Duolingo ont de gros problèmes à trouver des logiciels qui puissent prononcer des langues qui sont pourtant assez loin d'être mineures (toutes les langues scandinaves par exemple).

Bon courage !

Déjà merci pour vos commentaires. J'avais quelques doutes d'en recevoir. ^^

C'est intéressant du point de vue du challenge que tu t'es fixé, de le faire en un week-end.

Rockaround

Tout à fait et c'est vraiment ça que je voulais mettre en avant ici. L'application n'est pas destinée à être ultra répandue, ni ultra utilisée. C'est une application que j'ai eu plaisir à développer dans le cadre de mon petit challenge et qui a été très instructif sur certains points précis que je voulais apprendre.

Tout le reste, c'est du bonus. Comme je le mentionne, c'est une application sans grande prétention. Elle fait des listes de vocabulaire, c'est tout. Elle ne tente pas de t'enseigner la dernière technique à la mode pour apprendre une langue dans un temps record, elle veut simplement t'aider (un peu comme un assistant) à l'apprendre en te proposant son service.

Par contre, le problème c'est que l'application arrive sur un marcher très mature, où les géants (anki, memrise, quizlet, …) ont déjà de très bonnes applications, et le plus important, d'excellentes listes partagées. Je pense que de nos jours, c'est une condition sinequanone à la réussite populaire d'un tel projet.

Pour la prononciation, ça ne va pas être évident non plus. Des sites comme Duolingo ont de gros problèmes à trouver des logiciels qui puissent prononcer des langues qui sont pourtant assez loin d'être mineures (toutes les langues scandinaves par exemple).

Rockaround

Je ne connais pas toutes tes applications mais j'en ai essayé au moins la moitié. Le problème de ces applications, c'est qu'elles ne font pas toutes que ça et elles te demandent bien souvent une inscription et une tonne de permissions. Learn It ne demande rien de tout ça. A ce jour, il y a 0 permission à accepter et 0 inscription à faire (le revers de la médaille étant l'impossibilité de rendre accessible ses listes sur d'autres appareils bien entendu).

J'ai développé l'application selon mon besoin de simplicité et aujourd'hui, j'ai migré toutes mes listes sur mon application. A l'usage, ça me permettra d'ailleurs de savoir s'il y a d'autres besoins utilisateurs pour ce type d'application. Mais déjà ça me plait à moi, je suis content. Si ça peut en aider d'autres, je le serais encore plus. :)

Notons quand même le contenu que je veux rédiger autour de ce projet qui me semble tout aussi important que l'application elle-même.

Bon courage !

Rockaround

Merci !

PS : Learn it. C'était pas l'un des noms qu'on avait évoqué pour ZdS ? :P

Arius

De mémoire c'était au moment du changement de nom du Site du Zéro que c'était sorti.

SpaceFox

En tout cas, il avait aussi été proposé quand nous discutions du nom de Zeste de Savoir. Et c'est sans aucune honte que j'admet l'avoir piqué de là. :)

+0 -0

L'idée est intéressante. Je me permettrai une suggestion, même si je sais que ton ambition est de rester simple, parce que c'est un outil très utile dans l'apprentissage d'une langue, bien que trop peu utilisé dans l'enseignement : permettre la constitution d'un lexique contrastif.

C'est-à-dire qu'au lieu d'associer un mot de la langue étrangère à une traduction plus ou moins complète / exacte dans la langue maternelle, on associe deux ou plus mots de la langue étrangère à une explication de ce qui les distingue.

Par exemple, deceitful, deceptive et deceptory veulent tous les trois dire « fourbe, trompeur, mensonger », alors comment les utiliser correctement ? Si je ne dis pas de bêtise, deceptory est vieillot et assez littéraire, deceptive s'emploie surtout pour parler de choses (par ex. deceptive advertising ou deceptive practice) et deceitful surtout pour parler de gens (par ex. deceitful lawyer).

+2 -0

Bon bah Dominus vient exactement de donner ma suggestion. Il anticipe bien, le fourbe. :D

Car en effet, l'un des "pépins" que je remarque souvent chez les personnes apprenant l'anglais par exemple, c'est exactement celui-ci. Et je sais qu'on ne fait pas spécialement attention à ces distinctions dans les cours à l'école. Cela serait donc fortement utile.

+0 -0

Ce que tu me dis Dominus est intéressant et je suis réellement convaincu que c'est quelque chose d'utile. Tout comme pouvoir faire des distinctions entre les versions formelles et informelles pour un même mot.

Je n'avais pas pensé à ton cas de figure mais j'avais pensé au mien, c'est-à-dire aux formes formelles et informelles. C'est l'une des fonctionnalité que j'avais laissé de côté parce que je ne parvenais pas à imaginer une façon ergonomique de l'intégrer dans l'application.

Comme nous sommes sur des smartphones avec, par définition, des tailles d'écran réduites, c'est difficile d'afficher toutes les informations que nous voulons sans détériorer son ergonomie et sa simplicité. J'avais donc laissé de côté la fonctionnalité en me disant que l'utilisateur pourrait toujours ajouter le mot plusieurs fois.

Cela dit, j'en prends bonne note et si tu as une idée d'ergonomie adaptée, je suis preneur !

Je ne connais pas toutes tes applications mais j'en ai essayé au moins la moitié. Le problème de ces applications, c'est qu'elles ne font pas toutes que ça et elles te demandent bien souvent une inscription et une tonne de permissions. Learn It ne demande rien de tout ça. A ce jour, il y a 0 permission à accepter et 0 inscription à faire (le revers de la médaille étant l'impossibilité de rendre accessible ses listes sur d'autres appareils bien entendu).

Andr0

Je ne suis pas d'accord sur le fait que ce soit un avantage.

Ca fait des années que j'utilise Anki pour le renforcement de mon vocabulaire en anglais, japonais et chinois et l'une des fonctionalités que je prise le plus, c'est la sauvegarde de mes listes sur le "cloud". J'ai changé plusieurs fois de téléphone/tablette depuis que j'ai commencé mes listes, et si j'avais du utiliser une appli comme la tienne, je les aurais probablement perdues plusieurs fois.

Or le principe d'une appli comme Anki, c'est de pouvoir te représenter un mot que tu commences à maîtriser 6 mois ou 1 an plus tard, pour réactiver la mémoire long terme. Si tu as perdu ta liste entre temps, ça n'aide pas. Et là encore, même une fonctionalité d'import/export de liste au format xml ou autre n'est pas suffisante à mon humble avis.

Et je suis tout à fait d'accord avec toi! C'est d'ailleurs ce que je dis :

A ce jour, il y a 0 permission à accepter et 0 inscription à faire (le revers de la médaille étant l'impossibilité de rendre accessible ses listes sur d'autres appareils bien entendu).

L'idée de me former à Google App Engine me tente depuis un moment, ça sera peut-être l'occasion de m'y mettre et de l'intégrer dans le cadre de ce projet. Genre refaire un week-end sur l'apprentissage de la technologie et avoir un livrable à la fin du week-end.

Sinon, je suis en train d'écrire le premier tutoriel dans le cadre de ce projet sur l'intégration d'un menu latéral dans une application Android. C'est en cours d'écriture mais il devrait répondre aux questions suivantes : Qu'elles sont les possibilités de navigation dans une application mobile ? Dans quel cas utiliser un menu latéral (bonne pratique) ? Comment avoir un contenu static ou un contenu dynamique ? Et pour conclure, quelles sont les limites d'un menu latéral fonctionnellement et techniquement ?

Je vous tiendrais au courant ici de sa mise en bêta.

Tu peux peu-être couper la poire en deux: Demander une inscription uniquement si on veut syncro le compte entre différents appareils. L'avantage serait que si on ne veut pas s'inscrire on peut utiliser l'appli normalement comme actuellement.

Tu crois que ça serait possible de développer un systéme d'entrainement? Du genre tous les jours il prends 10 mots de la liste et de demande leurs correspondances?

+0 -0

Tu peux peu-être couper la poire en deux: Demander une inscription uniquement si on veut syncro le compte entre différents appareils. L'avantage serait que si on ne veut pas s'inscrire on peut utiliser l'appli normalement comme actuellement.

De toute façon oui, l'inscription obligatoire n'a aucun sens. L'idée de l'application reste sa simplicité et aucun business autour.

Tu crois que ça serait possible de développer un systéme d'entrainement? Du genre tous les jours il prends 10 mots de la liste et de demande leurs correspondances?

Demandred

Tout est possible. La technique n'est qu'un détail. Le tout est de savoir si c'est pertinent de l'intégrer et ça me semble tout à fait pertinent. :)

et ça me semble tout à fait pertinent. :)

Du coup je me permet de pousser la suggestion un peu plus loin ! Si je ne dis pas de bêtises (sous contrôle de Dominus Carnufex, le spécialiste des langues :D ), beaucoup d'applications de ce type utilisent ce qu'on appel la répétition espacée: un algorithme vous fait réviser régulièrement des mots, de façon à voir plus souvent les mots les plus difficiles. Un mot nouveau sera vu régulièrement les premières séances, puis de temps en temps.

Voici l'article wikipédia sur le sujet et un autre lien explicatif . Je sais que Duolingo ou Babel utilisent cette technique par exemple.

Tu penses que tu pourrais intégrer quelque chose qui y ressemble? Ça apporterait une grosse valeur ajoutée au système de révision!

+0 -0

Ce que tu me dis Dominus est intéressant et je suis réellement convaincu que c'est quelque chose d'utile. Tout comme pouvoir faire des distinctions entre les versions formelles et informelles pour un même mot.

Je n'avais pas pensé à ton cas de figure mais j'avais pensé au mien, c'est-à-dire aux formes formelles et informelles. C'est l'une des fonctionnalité que j'avais laissé de côté parce que je ne parvenais pas à imaginer une façon ergonomique de l'intégrer dans l'application.

Comme nous sommes sur des smartphones avec, par définition, des tailles d'écran réduites, c'est difficile d'afficher toutes les informations que nous voulons sans détériorer son ergonomie et sa simplicité. J'avais donc laissé de côté la fonctionnalité en me disant que l'utilisateur pourrait toujours ajouter le mot plusieurs fois.

Cela dit, j'en prends bonne note et si tu as une idée d'ergonomie adaptée, je suis preneur !

Andr0

Pourquoi pas faire varier la couleur d’un trait sur le côté (comme sur les commentaires du zds). Du genre vert = usage courant, rouge = usage soutenu, violet = usage populaire… les couleurs c'est du pifomètre, mais tu vois l'idée.

+1 -0

Je trouve cette idée vraiment intéressante :) (oui je donne mon avis alors que je suis sous windows phone xD)

+0 -0

Hello,

Projet intéressant, j'en avais d'ailleurs commencé un semblable (300 lignes de JS crade codé il y a deux mois) qui est en train de prendre la poussière parce que finalement duolinguo c'est pas mal. :)

Petite question, comment est-ce que tu comptes prendre en compte l'apprentissage progressif ? A savoir, demander fréquemment un nouveau mot au début, puis de moins en moins au fur et à mesure qu'il est maîtrisé, avec des piqûres de rappel. Je n'avais pas vraiment réussi à obtenir des résultats concluants.

Pourquoi pas faire varier la couleur d’un trait sur le côté (comme sur les commentaires du zds). Du genre vert = usage courant, rouge = usage soutenu, violet = usage populaire… les couleurs c'est du pifomètre, mais tu vois l'idée.

qwerty

Un code couleur c'est pas mal mais il faut informer l'utilisateur à quoi correspond chaque couleur. L'idée reste intéressante. Je la note.

Hello,

Projet intéressant, j'en avais d'ailleurs commencé un semblable (300 lignes de JS crade codé il y a deux mois) qui est en train de prendre la poussière parce que finalement duolinguo c'est pas mal. :)

melepe

Merci. Et je suis bien d'accord, Duolinguo est vraiment une bonne application. Les exercices et la gamification sont bien pensés mais il s'agit d'une application qui t'enseigne l'anglais. Chose différente pour l'application ci-présente.

Petite question, comment est-ce que tu comptes prendre en compte l'apprentissage progressif ? A savoir, demander fréquemment un nouveau mot au début, puis de moins en moins au fur et à mesure qu'il est maîtrisé, avec des piqûres de rappel. Je n'avais pas vraiment réussi à obtenir des résultats concluants.

melepe

De mémoire c'est Demandred qui m'a mis sur une piste : la répétition espacée. D'après les recherches que j'ai faites dessus, cette technique d'apprentissage part d'un principe de la mémoire humaine. Notre mémoire ne conserve pas indéfiniment une information. Au bout d'un moment d'inutilisation, l'information est oubliée mais jamais totalement. Il suffit généralement de la re-apprendre pour la re-mémoriser et cette fois là, elle sera moins rapidement oubliée.

Il faut donc parvenir à proposer un mode entrainement qui va faire réviser X mot de sa liste. Puis, régulièrement, faire revenir des mots et se baser sur son échec ou sa réussite pour le refaire revenir plus régulièrement ou non.

Merci. Et je suis bien d'accord, Duolinguo est vraiment une bonne application. Les exercices et la gamification sont bien pensés mais il s'agit d'une application qui t'enseigne l'anglais. Chose différente pour l'application ci-présente.

Oui, j'avais bien compris, ce que je voulais dire c'est que duolinguo était finalement bien adapté au besoin que j'avais.

Petite question, comment est-ce que tu comptes prendre en compte l'apprentissage progressif ? A savoir, demander fréquemment un nouveau mot au début, puis de moins en moins au fur et à mesure qu'il est maîtrisé, avec des piqûres de rappel. Je n'avais pas vraiment réussi à obtenir des résultats concluants.

melepe

De mémoire c'est Demandred qui m'a mis sur une piste : la répétition espacée. D'après les recherches que j'ai faites dessus, cette technique d'apprentissage part d'un principe de la mémoire humaine. Notre mémoire ne conserve pas indéfiniment une information. Au bout d'un moment d'inutilisation, l'information est oubliée mais jamais totalement. Il suffit généralement de la re-apprendre pour la re-mémoriser et cette fois là, elle sera moins rapidement oubliée.

Il faut donc parvenir à proposer un mode entrainement qui va faire réviser X mot de sa liste. Puis, régulièrement, faire revenir des mots et se baser sur son échec ou sa réussite pour le refaire revenir plus régulièrement ou non.

Andr0

Je suis tout à fait d'accord avec toi. Le problème, c'est que c'est pas forcément si simple de mettre cet algo en pratique : toute la subtilité repose dans le "se baser sur son échec ou sa réussite pour le refaire revenir plus régulièrement ou non", je parle d'expérience. ^^ Par exemple, à partir de quel fréquence d'échec un mot n'est pas su ? Quelle est le rapport entre la fréquence d'apparition et le ratio de bonne réponses : linéaire, exponentiel, custom ? Comment favoriser l'apparition des nouveaux mots qui viennent d'être rentrés ? Que faire des mots qui ne sont apparus que quelques fois, mais avec un ratio de 100% ? Ici c'est probablement la mémoire courte qui est en jeu, pourtant l'algo naïf ne fera pas réapparaître ce mot avant longtemps. Comment faire si un mot, auparavant maîtrisé, est soudainement oublié ? Il se passera du temps avant que le ratio baisse de façon significative. Et là, tu commences aussi à devoir prendre en compte le paramètre temporel : un type qui fait 500 bonnes entrées dans la journée, c'est pas la même chose qu'un type qui fait une bonne entrée tous les jours pendant 500 jours. Le premier est bien plus susceptible d'avoir oublié la moitié des mots une semaine après ; le second non.

Il y a aussi les fonctionnalités, comme par exemple la détection du pluriel, du genre, de la conjugaison des verbes forts, la vérification de l'existence d'un mot dans la liste lorsqu'on ajoute de nouvelles entrées, etc., mais ça c'est pas bien compliqué. Et quid de la détection des fautes de frappe, surtout sur un clavier de téléphone ? Si tu enregistres les mots comme le préconise Carnufex, ça peut être galère si tu fais les questions dans les deux sens. Exemple : tu rentres deceitful <-> trompeur (s'applique aux personnes), si l'algo te demande ce que signifie deceitful, est-ce que tu dois écrire la traduction avec les parenthèses ?

Voilà, je n'ai pas les réponses à la plupart des questions, tu te doutes bien qu'en 300 lignes je n'ai pas pu implémenter grand-chose non plus. :) Mais si ça peut te donner des pistes de réflexion, tant mieux !

+0 -0

@melepe : Je trouve toutes tes problématiques super intéressantes et je vais les noter dans les issues du projet GitHub dès que j'ai le temps pour tenter de prendre en compte un maximum lorsque je mettrais en place ce mode entrainement.

Par contre, pour l'instant, je me concentre plus sur le contenu que je peux rédiger autour du projet et le premier tutoriel vient d'entrer dans la zone bêta. N'hésitez pas à le lire et à le commenter sur la forme ou sur le contenu. Toutes les critiques constructives sont les bienvenues ! :)

PS : Parallèlement à ce projet, je me suis lancé dans un projet plus ambitieux : le développement d'un jeu vidéo sur Android avec la librairie LibGDX mais cela restera du teasing pour l'instant. ^^

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte