Projet EDBA - SourceSup
La seconde phase prévoit l'enrichissement de la notion d'exercice avec un début
de ... The EDBA project plans to adopt a participatory approach (Web 2.0) for the
...... Les étudiants n'ont qu'un droit d'accès et de lecture de la base d'exercice. Ce
droit .... la possibilité de construire une fiche de TD/TP à partir d'une sélection ...
part of the document
Projet pour une base dexercices
liée à un environnement dapprentissage
pour favoriser des développements mutuels
via une démarche participative
Projet EDBA
-Exercises DataBase about Algorithms-
Denis Bouhineau
Laboratoire dInformatique de Grenoble (LIG)
Université de Grenoble (Grenoble-I, Univ. J. Fourier)
Denis.Bouhineau@imag.fr
Résumé. Prenant pour exemple les sites web dexercices dans le domaine des mathématiques, le projet EDBA a pour objectif, dans le domaine de lenseignement de linformatique, de mettre en place une base dexercices dalgorithmique associée à un environnement de programmation afin de permettre lapprentissage de lalgorithmique. Le projet EDBA prévoit ladoption dune démarche participative (Web 2.0) pour la constitution de la base dexercices ainsi que lutilisation des technologies émergentes associées au Web 2.0 (AJAX).
Le développement est prévu en 3 phases. Lors de la première phase, la définition dun mini environnement de programmation est planifiée. Associée à un scénario pédagogique simple de résolution dexercices dalgorithmique et à une modélisation élémentaire des exercices dalgorithmique, lapplication obtenue pourra sintégrer à des plateformes de-learning (type Moodle). La seconde phase prévoit lenrichissement de la notion dexercice avec un début de structuration de lensemble, pris en tant que tel, des exercices et lintroduction de deux classes dutilisateurs : les enseignants et les étudiants, les premiers pouvant participer à lenrichissement de la base dexercices, les seconds utilisant cette base pour progresser dans leur maitrise de lalgorithmique. La troisième phase prévoit lintroduction des aspects participatifs en dissolvant les deux classes dutilisateurs pour mener à une classe unique dindividus ayant des expertises reflétant leur connaissance de lalgorithmique et de lorganisation dEDBA. Chaque expertise sera associée au terme de cette phase à des droits et devoirs vis-à-vis de la gestion collaborative dEDBA.
Mots-clés : EIAH, AJAX, Web 2.0, Algorithmique, Exercice, Base de données, Ressources pédagogiques, Démarche participative, Gestion collaborative, E-Learning.
Abstract. Following the example of educational websites in mathematics, the EDBA project aims, in the field of computer education, to establish a database for algorithmic exercises associated with a programming environment design for the learning of algorithms. The EDBA project plans to adopt a participatory approach (Web 2.0) for the development of the database of exercises and the use of emerging technologies associated with Web 2.0 (AJAX).
The development is planned in 3 phases. During the first phase, the definition of a tiny programming environment is scheduled. Combined with a starting scenario plan for a resolution of exercise relying onto an elementary model of the exercises, the resulting application could be integrated with e-learning platforms (like Moodle). The second phase involves enriching the concept of exercise with a beginning of structure for the set of all exercises, taken as such, and the introduction of two classes of users: teachers and students, the first may participate in the enrichment of the database, the latter using this database to improve their mastery of algorithms. The third phase envisages the introduction of participatory aspects by dissolving the two classes of users to complete a single class of individuals with varied skills reflecting their knowledge of algorithms and organization of EDBA. Each skill will be associated, at the end of this phase, with rights and duties regarding the collaborative management of EDBA.
Keywords: TEL, AJAX, Web 2.0, Algorithm, Exercise, Database, Pedagogical resources, Participatory approach, Collaborative management, E-Learning.
Le projet EDBA, à destination de la communauté éducative -enseignants et élèves- en informatique, a pour objectif de mettre en place une base dexercices dalgorithmique indépendante de la langue (Français, Anglais, ...) et des langages de programmation (ProLog, Caml, JavaScript, Ada, ASM, C, ...) associée à un environnement de programmation offrant plusieurs langues et langages pour apprendre lalgorithmique, la pratiquer, lenseigner, létudier dans ses aspects épistémologiques, didactiques, cognitifs, culturels, ... et permettant lenrichissement de la base dexercices elle-même, via des démarches participatives.
En mathématiques, de nombreux projets de bases dexercices pour lapprentissage et lenseignement des mathématiques ont vu le jour ces dernières années avec des succès significatifs :
sur internet, depuis la banalisation des accès au web,
en France, notamment, où la communauté éducative est forte et structurée,
faisant suite à une abondante littérature papier pour la préparation des examens et des concours,
souvent avec des approches participatives et/ou collaboratives,
souvent avec une possibilité donnée aux utilisateurs apprenant de faire ces exercices et de voir leur réponse évaluée,
parfois basés sur des plateformes web denseignement généralistes, le plus souvent associés à des plateformes adhoc,
...
Citons en particulier :
MathEnPoche [Lobato & Hache 07, MathEnPoche], diffusé par lassociation Sésamath, avec plus de 1000 exercices,
Wims [Xiao 01, WIMS], à luniversité de Nice, avec plus de 500 exercices ou familles dexercices,
LeActiveMath [Melis et al. 01, ActiveMath], en Allemagne, avec plus de 500 exercices et autant de définitions, théorèmes, illustrations,
Matexo [Matexo], pour lenseignement supérieur, avec plus de 300 exercices et ressources diverses,
et dautres encore : Cable, AIM, STACK ([Sangwin 04] en Angleterre)
En informatique, pour lenseignement de lalgorithmique en particulier, à ce jour, il ny a pas déquivalent. Des ressources sont cependant disponibles, mais avec moins dampleur ou peu de structuration ou dorganisation pédagogique, sémantique ou épistémologique et une orientation qui est rarement tournée vers lenseignement :
Sans orientation pédagogique, indiquons :
Wikipedia [Wikipedia], larticle « liste des algorithmes » comporte, selon les langues, une centaine dalgorithmes (en français), ou plus de 500 algorithmes (en anglais),
Dictionary of Algorithms and Data Structures [DADS], du National Institute of Standard and Technology du gouvernement américain, comprend plus de 300 algorithmes,
Sphere Online Judge [SPOJ] propose plus de 5000 problèmes dalgorithmique à résoudre, issus de concours dalgorithmique et de programmation,
The Computer Language Benchmarks Game [ShootOut] fournit plus de 1000 programmes pour comparer les langages de programmation
le Projet Euler [ProjectEuler] compte de lordre de 300 problèmes dalgorithmique à connotation mathématique,
Plus spécifiquement pour lenseignement de lalgorithmique, ou lapprentissage de la programmation avec, dans tous les cas, un langage de programmation particulier, mentionnons :
Ninety-Nine Prolog Problems [P99] avec une centaine de problèmes dalgorithmique et des solutions en Prolog,
Elm-Art [Elm-Art] avec une cinquantaine de problèmes dalgorithmique en Lisp et une interface interactive permettant de sexercer et de voir ses solutions analysées,
et dautres encore pour Perl, Python, Ruby, Scheme (par ordre alphabétique)
En France, il y a une dizaine dannées, il y a bien eu Spedago, soutenu par Specif [Specif] société des personnels enseignants et chercheurs en informatique, dont lobjectif était de constituer un centre de ressources pédagogiques pour linformatique et qui aurait pu devenir le centre de ressources pédagogiques national en informatique ; mais aujourdhui il est difficile den retrouver une trace active et encore plus dy accéder [Spedago-lien inaccessible]. Le chapitre informatique de wikiversité peine à se développer [Wikipedia] et manque lobjectif de la diversité des points de vue et approches.
Sans chercher à apporter une réponse approfondie à la question, évoquons quelques pistes de réponse pouvant être les explications de cette différence, de la rareté de loffre pédagogique en informatique comparée à celle visible en mathématiques ?
Sur la diversité des langues & cultures et la diversité des langages & paradigmes. Comme en mathématiques, se pose le problème de la diversité des langues et des cultures. Dans le contexte de la recherche, ce problème peut ne pas être important ; dans la vie réelle, il prend une autre ampleur, cest un problème à prendre très au sérieux [Libbrecht - 08]. En informatique sajoute la diversité des langages et des paradigmes des programmations. En moins dun siècle, plusieurs centaines de langages ont été définies (plus de 500 sont cités sur wikipédia [Wikipedia]), lun sappelle même Babel [Moreno-Navorro & Rodriguez-Artalejo 92]. Linformatique est une science jeune qui na pas encore convergé, si un jour elle doit le faire comme lont fait les autres sciences, vers un formalisme dexpression commun.
Notons que ce découpage en langages et paradigmes de programmation est aussi fort que le découpage en langues et cultures et quil lui est orthogonal, ce qui provoque un résultat désastreux. Leffort à fournir pour offrir une ressource dans P langages et pour Q langues est multiplié par le produit P*Q si chaque configuration comporte des différences à prendre en compte.
Sur la communauté éducative en informatique. En France, et dans de nombreux pays, lessentiel de lenseignement de linformatique, et de lalgorithmique en particulier, est effectué dans lenseignement supérieur. Cela signifie, comparé aux mathématiques, moins délèves, moins denseignants, moins de ressources et moins de recherche sur le domaine. Pour donner une idée de lordre de grandeur de la différence entre mathématiques et informatique, en 2007 le ministère français de lenseignement supérieur dénombrait environ 3000 enseignants en informatique parmi ses personnels (810 professeurs des universités, 2329 maîtres de conférences et 112 enseignants du second degré) alors que le ministère de léducation nationale comptabilisait 47 211 enseignants de mathématiques. Le rapport est de plus de 1 à 10.
À cela sajoute lidée -à vérifier, à réfuter et éventuellement à combattre- quil y a moins de besoins pédagogiques dans lenseignement supérieur, quelle que soit la discipline concernée. Ceci accentue la rareté des moyens et travaux disponibles pour la recherche en didactique et en pédagogie pour linformatique et mène à ranger linformatique parmi les disciplines orphelines pour laccompagnement didactique et pédagogique des enseignements.
Au niveau international, la situation nest guère plus florissante, [Pears & Al. 07] énonce que si la recherche en pédagogie pour lapprentissage de la programmation existe, elle concerne le plus souvent des études locales et restreintes. Il ajoute de plus que cette recherche se diffuse mal et narrive pas jusquaux enseignants. Aussi, [Pears & Al. 07] pointe-t-il un besoin crucial détudes à grande échelle qui soient mieux diffusées et atteignent les enseignants en informatique.
Sur la recherche en didactique de linformatique et lépanouissement du web. Une dernière piste dexplication à explorer consiste à comparer lévolution de la recherche en didactique de linformatique et lépanouissement du web.
Lenseignement de linformatique en France na pas toujours été dans cette situation. Il fut un temps, suite aux plans « Informatique » du gouvernement français, où la recherche en didactique de linformatique et lencadrement des enseignements en informatique étaient importants. Avec [Baron & Bruillard 01], nous situerions lapogée de cette période en France dans les années 1990 avec, par exemple, les 3ièmes rencontres francophones de didactique de l'informatique [Baron et al. 92].
À cette époque, dans les années 1990, le web était balbutiant mais il allait vite prendre son essor. Il nétait pas question, alors, de démarches participatives ou collaboratives sur internet. Lapparition du web 2.0 et son succès, quant à lui, est à situer au milieu des années 2000 [OReilly 05], alors que la recherche en didactique de linformatique et laccompagnement de lenseignement en informatique avait très largement entamé leur déclin.
De là à conclure que la didactique de linformatique et le web participatif se sont croisés à quelques années de décalage sans pouvoir se rencontrer,
alors que la communauté mathématiques a su prendre en marche ce train qui partait.
Ajoutons, pour clore sur une note sémantique -malheureusement peu réjouissante pour ce qui nous intéresse- quaujourdhui en France, le terme « didactique de linformatique » signifie de moins en moins didactique de lalgorithmique ou de la programmation et de plus en plus didactique de lutilisation des logiciels informatiques dans le domaine de léducation, comme si les mots même, en France, signifiaient la mort de la recherche en didactique de linformatique pour ce qui concerne lalgorithmique. Ce phénomène nest pas nouveau, il est visible depuis [Laborde - 88], mais il sest accru ces dernières années.
Le projet EDBA a donc pour objectif de constituer une première base dexercices dalgorithmique sur Internet destinée à la pratique de lalgorithmique, son apprentissage, son enseignement. Lexemple des sites de mathématiques semble prouver que lélaboration dune telle base est possible. Au delà des problèmes de langues et de cultures, reste le problème de la multiplicité des langages et paradigmes de programmation.
Pour mener à bien ce projet et se ramener à la situation des sites de mathématiques, lun des efforts à produire consiste donc à surmonter le contexte difficile introduit par la multiplicité des langages informatiques, ou à trouver un niveau dabstraction suffisant qui permette dignorer ces différences entre langages informatiques. En adoptant une démarche proche de celle employée dans les sites de concours dalgorithmique sur internet (cf. [SPOJ]) et courante dans les environnements de validation automatique de programmes [Pears & Al. - 07], il semble que cela soit possible. Cela peut se faire, par exemple, si lon réduit un algorithme ou un programme à lobservation de ses entrées/sorties, c'est-à-dire si lon assimile, en première approximation, le programme dun utilisateur et lensemble des couples (questions, réponses) produit par ce programme sur un ensemble de tests ou jeux dessai choisis à la main convenablement. Même si « Program testing can be used to show the presence of bugs, but never to show their absence! » dixit [Dijkstra 69], on peut ainsi évaluer, en première approximation toujours, un programme délève écrit en C avec une solution de référence écrite dans un autre langage, par exemple en Pascal ou Java. On peut même évaluer une proposition de solution en labsence de solution de référence programmée, dans la mesure où lon connait les réponses ponctuelles aux tests que lon pose.
Restent probablement, également, à résoudre quelques problèmes techniques spécifiques à linformatique (comme il en existe en mathématiques), à mettre en place un site collaboratif pratique et attrayant (comme ont pu le faire les sites mathématiques), à remplir la base de quelques centaines dexercices (mais quand ceux qui font la coquille sont ceux qui la remplissent, cela peut sembler plus facile, comme semble le montrer lexemple des mathématiques) et trouver quelques milliers dutilisateurs pour voir comment lexpérience peut vivre en grand.
La suite de cet article décrit comment le développement du projet EDBA peut se dérouler en plusieurs étapes à travers la réalisation successive de trois applications web :
EDBA 0.0 : un premier environnement de programmation permettant de tester un programme vis-à-vis de jeux de tests enregistrés ;
EDBA 1.0 : prolongeant ce qui précède avec une structuration de la notion dexercice, lenregistrement de ces exercices dans une base de données et lintroduction de deux classes dutilisateurs : les enseignants et les étudiants, les premiers pouvant participer à lenrichissement de la base dexercices, les seconds nétant que simples utilisateurs ;
EDBA 2.0 : repartant dEDBA 0.0 et de la base dexercices obtenue avec EDBA 1.0 et introduisant des aspects participatifs et collaboratifs pour la gestion de la base dexercices en supprimant la distinction entre utilisateurs-enseignants et utilisateurs-étudiants.
Lécriture de la première version de cet article sest déroulée au début de lélaboration de ce projet, afin den avoir une vision globale, de permettre des discussions internes, davoir un planning prévisionnel, même approximatif, et den évaluer lintérêt et la réalisabilité. Ceci explique en partie le plan décrit précédemment, la forme parfois peu littéraire, le contenu très orienté vers les spécifications des différentes étapes du projet, un peu à la façon dun cahier des charges ou des demandes dun hypothétique client. Par ailleurs, ce contexte décriture période préparatoire à la réalisation dun projet- permet de comprendre et de relativiser le ton parfois polémique ou euphorique des propos et les objectifs qui peuvent sembler trop ambitieux.
Comme le lecteur pourra sen rendre compte dans les pages qui viennent avec les sections sur EDBA 1.0 et EDBA 2.0, si linformatique et lalgorithmique comme matières enseignées- sont centrales dans le projet EDBA, à un niveau dabstraction supérieur, ce nest que la discipline enseignée. Une grande partie de cet article pourrait être transposée à dautres matières ou dautres apprentissages, les mathématiques, lorthographe, les QCM,
Hors informatique, ce qui caractérise le projet EDBA est la recherche dune association entre une base dexercices et un environnement dapprentissage permettant des enrichissements croisés. La conception de la base dexercices, de lenvironnement dapprentissage et la mise en place des démarches participatives se veulent fondées sur des règles assez simples en grande partie indépendantes de linformatique mais dépassant ce que lon trouve habituellement sur les plateformes généralistes de-learning (type [Moodle]) qui sapparentent de ce point de vue- à de simples dépôts de documents pédagogiques sans scénarii pédagogiques dapprentissage. Le projet EDBA est à mi-chemin entre ces dépôts simples et les environnements dapprentissages pilotés par des scénarii, à la recherche de moyens pour suivre, susciter et motiver des apprentissages et tirer bénéfice dune démarche participative visant enrichir les contenus et lenvironnement lui-même.
Avertissement, rappel, mise au point : bien que rédigé la plupart du temps au présent de lindicatif, excepté le prototype évoqué dans la partie EDBA 0.0, au moment de la rédaction de cet article, les différentes étapes du développement prévu ne sont pas encore réalisées et constituent les éléments dun travail prospectif à mettre en place ; ce sont des préconisations pour un environnement dapprentissage de lalgorithmique, des propositions dapplications imaginaires, des projets exploratoires, des projections dun possible qui cherchent à être cohérentes et utiles mais qui restent des artefacts à construire.
EDBA 0.0 - Le cur projet, sa base, est constitué par un mini-environnement de programmation destiné à la résolution dun exercice dalgorithmique par un étudiant : EDBA 0.0 ou CheckEdit (ou TestEdit). Cet éditeur amélioré doit permettre à létudiant confronté à un exercice de programmation non seulement déditer son programme mais aussi de le tester vis-à-vis de jeux de tests enregistrés. Dans EDBA 0.0, lexercice doit être identifié par le nom de la fonction ou du programme quil faut définir ; il est caractérisé par un énoncé en langage naturel, une spécification semi-formelle de lentête de la fonction et des jeux de tests. Exemple dexercice : recherche dun élément dans une liste triée.
La forme générale du scénario de résolution dun exercice imaginée pour EDBA 0.0 correspond à la démarche suivante en 7 étapes :
première étape : prise de connaissance par létudiant de lénoncé de lexercice, cf. figure 4. Cet énoncé propose la recherche dune « spécification, de la réalisation et de la définition de jeux dessai » pour un problème dalgorithmique donné.
seconde étape : après rédaction informelle par létudiant dune spécification -par exemple dans léditeur de texte proposé dans EDBA 0.0 comme commentaire en début de programme donnant le profil de la fonction solution du problème- létudiant doit confronter ses choix de nom pour la fonction, pour le nombre de paramètres, leur place et leur type à la spécification donnée dans lexercice. En cas de désaccord, dans la mesure où ces choix sont compatibles avec ceux dEDBA, il faut adopter les choix proposés par EDBA. En cas dincompatibilité, les retours sur la validité dune solution fournis par EDBA ne pourront pas être produits. Cette étape, assez formelle et contraignante, est importante dans la mesure où elle spécifie le format du programme attendu, les paramètres, etc. EDBA repose sur ces informations pour valider une solution à laide de tests automatiques, prévus à une étape ultérieure, par comparaison entre lexécution du programme proposé par lutilisateur et une solution enregistrée. Eventuellement, lordre des paramètres pourraient être laissé flou, en imaginant une validation, modulo lordre des paramètres. Idem pour le choix du nom de la fonction, qui peut être abstrait. Lintroduction ou la suppression dun paramètre dans la solution donnée par lutilisateur par rapport à la solution enregistrée dans EDBA introduit une difficulté bien plus grande pour pouvoir comparer les deux programmes qui, dés lors, nont pas un profil commun, ni compatible modulo lordre des paramètres et le choix du nom de la fonction.
troisième étape : description de jeux dessai par létudiant et confrontation avec les jeux dessai donnés dans lexercice et inclus dans la base. Cest une étape innovante dun point de vue pédagogique car elle introduit la notion de jeux dessais à un niveau de la pratique pédagogique plus important que celui quon lui attribue habituellement. Cette étape, importante, consacre la place prise par les jeux dessais dans EDBA (ce sont eux qui permettent la validation des propositions de solution)
quatrième étape : programmation par létudiant dune solution candidate au problème dans léditeur dEDBA, exemple figure 1.
cinquième étape : vérification libre par létudiant de la qualité de sa solution candidate par test sur ses jeux dessai, les jeux dessai enregistrés dans EDBA ou tout autre jeu dessai et mise au point du programme candidat. Le tout se fait à laide de la console (i.e. terminal virtuel) proposée dans EDBA 0.0.
sixième étape : test automatique par EDBA 0.0 de la solution candidate fournie par exécution automatique du programme candidat sur les jeux dessai donnés dans lexercice et comparaison automatique avec les solutions enregistrées attendues, cf. figure 2. Prise de connaissance du résultat par létudiant. Si létape 5 a été bien suivie, le résultat doit toujours être un succès complet. Lobjectif est dinsister sur limportance dun travail de validation de lalgorithme avant de rendre sa copie.
septième étape : confrontation de la solution candidate de létudiant avec la solution fournie par le système (quand celle-ci existe), cf. figure 5.
À ces sept étapes, il faut ajouter une étape initiale pour le choix de lexercice. Celle-ci peut correspondre à la demande dun enseignant, à une étape dun scénario dapprentissage dune plateforme denseignement, à un choix libre de létudiant dans la liste des exercices disponibles (cf. figure 4) ou à toute autre modalité.
Les éléments nécessaires à la bonne marche de ce scénario sont donc :
la présence dun exercice et des éléments associés (énoncé, spécification, jeux dessai et, de manière optionnelle, solution) ;
lexistence dun éditeur de code ;
lexistence dun terminal ;
lexistence dun compilateur ou dun interpréteur associé à léditeur et au terminal ;
lexistence dun comparateur lié aux éléments précédant permettant de valider la production de létudiant.
Les défis techniques de cette étape consistent à fournir EDBA 0.0 sous la forme dune page web unique, à base de technologies Ajax, facilement intégrable à une plateforme denseignement web, type Moodle [Moodle]. Lexistence, en javascript, dinterpréteurs dune dizaine de langages informatiques ainsi que déditeurs de code et de terminaux, également écrits en javascript, permettent de penser que cet objectif est réalisable sous la forme dun ensemble de pages web. Il manque seulement le liant entre ces différents éléments et un comparateur. Tout ceci peut se réaliser en Javascript, lassembleur des applications web. La nécessité de rassembler lensemble de ces pages en une page unique pour pouvoir lintégrer plus facilement à une plateforme denseignement complique cependant significativement le problème.
Pour une intégration plus complète dans les plateformes denseignement, EDBA 0.0, modélisé comme un micromonde de programmation, doit pouvoir interagir avec la plateforme ; avec, venant de la plateforme, les informations nécessaires à EDBA 0.0 pour savoir quel exercice proposer à un élève (étape initiale du scénario de résolution dun exercice comme présenté précédemment) et dans le sens inverse, en direction de la plateforme, des indications dEDBA 0.0 pour informer la plateforme de lactivité de létudiant, suivre cette activité, les résultats aux exercices et sauvegarder son état courant.
Le mini-environnement de programmation EDBA 0.0 doit donc -pour un exercice donné et un étudiant spécifique- comporter ou permettre laccès à :
- lénoncé informel de lexercice dans la langue naturelle de létudiant, avec un ou plusieurs exemples, également informels, des questions et solutions attendues,
- une spécification plus formelle de cet énoncé (entête de fonction, type des données, des résultats, ...),
- des jeux dessai ou exemples formels dexécution dun programme solution de lexercice, choisis à la main par le concepteur de lexercice, avec des attributs précisant limportance quantitative et qualitative de chaque test, les résultats attendus et -pour certaines erreurs courantes prévisibles- des résultats incorrects prévisibles accompagnés de diagnostics derreur,
- [de façon optionnelle] une solution, cryptée, rédigée dans un langage informatique spécifique (choisi par létudiant parmi ceux disponibles),
- divers outils pour travailler lexercice :
- un éditeur de code connaissant la syntaxe du langage informatique utilisé, permettant la coloration automatique, la complétion automatique, des exemples de code, de la documentation,
- une console ou terminal possédant un interpréteur et un debugger du langage informatique utilisé, permettant à létudiant de tester son programme et deffectuer les tests unitaires associés à lexercice (en cas de différence significative entre la solution de létudiant et la solution donnée par le programme solution de référence, un message doit être émis et la solution de référence doit être donnée)
- une rétroaction permanente non intrusive réduite aux résultats ok/~/ko des tests disponibles au niveau de léditeur (par exemple avec un feu tricolore sur des zones de code- rouge : à peu près sûr quil y a une erreur, orange : diagnostic pas clair, vert : à peu près sûr que cest correct)
Un prototype dEDBA 0.0 est disponible pour la pratique de certains exercices en Prolog en français (en cours de construction) :
http://www.noe-kaleidoscope.org/public/people/DenisB/Enseignement/Prolog/pl_3in1.html
avec :
un prototype déditeur (cf. figure 1),
un interpréteur pour Prolog,
un prototype de console (cf. figure 2),
une fonction de test automatique (cf. figure 2) et
un lien vers une liste dexercices stockés dans un dépôt de fichiers web généraliste sous forme de fichiers html (cf. figure 3) comportant :
un énoncé informel (cf. figure 4),
une spécification formelle du programme recherché (cf. figure 5),
des tests unitaires (cf. figure 5),
une solution (cf. figure 5).
Figure 1 : Léditeur prototype pour EDBA-0.0
[
]
Figure 2 : La console prototype pour EDBA-0 avec un test automatique
Figure 3 : dépôt de fichier (outil standard dun CMS)
Figure 4 : fichier HTML prototype pour sauvegarder un exercice (une partie du contenu est caché, pour y accéder, lutilisateur doit cliquer sur les pseudo-liens en bleu, cf Figure 5.)
Figure 5 : fichier HTML prototype pour sauvegarder un exercice avec affichage du contenu caché
Aucune étude sur lutilisation de ce prototype na été effectuée. La réalisation de ce prototype navait pour autre objectif que dassurer la faisabilité du projet EDBA. Il nétait pas destiné à expérimentation.
EDBA 1.0 Niveau de maîtrise algorithmique des apprenants et niveau de difficulté algorithmique des exercices.
Un premier niveau dorganisation de la base des exercices du projet EDBA et des utilisateurs de cette base est donné avec EDBA 1.0.
Du point de vue technique, cela signifie la conception dune base de données pour les exercices, les utilisateurs et, à la croisée des exercices et des utilisateurs pour des données relatives aux traces dactivité. À cela sajoute quEDBA 1.0 doit être capable de gérer des communications réseau et de dialoguer avec une base de données en lecture et en écriture.
EDBA 1.0 Structuration du coté des utilisateurs
Chaque utilisateur doit pouvoir être identifié dans EDBA 1.0 par un login et un mot de passe. Eventuellement, lidentification doit pouvoir être déportée sur un site didentification, daffichage et de constitution de profil, par exemple selon le modèle OpenId [OpenId]. Au login est associé un pseudo, un nom réel, une adresse de courriel vérifiée à linscription et un profil public.
Deux classes statiques distinctes dutilisateurs sont prévues : les enseignants et les étudiants. Les enseignants ont droit de lecture/écriture sur les exercices de la base. Lenrichissement de la base et lorganisation des contenus sont laissés à lexpertise des enseignants. Les étudiants nont quun droit daccès et de lecture de la base dexercice. Ce droit est, de plus, limité aux exercices correspondant à leur maîtrise algorithmique.
La séparation des utilisateurs en deux classes est une esquisse réduite du modèle final de lutilisateur dEDBA pour isoler et simplifier les fonctionnalités de modification et denrichissement de la base dexercices. Dans EDBA 1.0, ces fonctionnalités sont réservées aux enseignants, c'est-à-dire aux experts et lon suppose quil ny a pas de conflits entre experts. Le niveau de développement suivant, EDBA 2.0, reviendra sur ces différents points -la séparation, la simplification, labsence de conflit- pour introduire les éléments nécessaires à une démarche participative et à un travail collaboratif.
Pour létudiant, lintroduction de la base dexercices modifie de manière transparente laccès aux exercices. Le scénario dusage est donc le même.
Lajout, par les enseignants, de nouveaux exercices dans la base dexercices peut se faire, soit ex nihilo à partir dune page blanche informatique, soit à partir dun exercice déjà présent dans EDBA par traduction, translation ou modification.
La transformation dun exercice dEDBA peut être légère et ne pas changer la nature de lexercice, sa sémantique. Cest le cas lors des traductions dans une autre langue (ex. : français(english) dun énoncé et éventuellement de la spécification dun exercice et lors des translations vers un autre langage (ex. : Prolog(Caml), c'est-à-dire lors des changements de formulation et de vocabulaire dans un énoncé pour employer le jargon, les formes et formules correspondant à un langage ou un paradigme de programmation particulier. Dans ces deux cas, il ny a pas, à proprement parler, de création dun nouvel exercice, mais juste lajout de nouvelles formulations pour le même exercice. Les jeux dessai, la difficulté de lexercice, les concepts associés ne sont pas modifiés, ni dupliqués.
Les modifications peuvent être plus profondes, comme par exemple lajout dune contrainte dordre sur les données ou sur les résultats. Alors, les jeux dessai et la difficulté de lexercice doivent aussi être mis à jour. Il y a alors, véritablement, création dun nouvel exercice. Un lien avec lexercice de départ doit cependant être conservé à toute fin utile.
La création dun exercice ex-nihilo doit aussi pouvoir être possible. Une interface spécifique doit pouvoir être fournie à lexpert pour que lécriture de lénoncé de lexercice, de la spécification, dune solution et des jeux de test soit facilitée. Elle peut être basée sur EDBA 0.0 avec, par exemple, une console enregistrant les tests effectués lors de la mise au point de la solution pour les proposer comme jeux de test de lexercice.
Dans tous les cas, lécriture ou la modification dexercices dans EDBA doit être facile et intuitive. De plus, elle doit être rapide. Une dizaine de minutes doit être un maximum pour rédiger sous forme électronique un exercice simple, déjà prêt sur le papier ou dans la tête, avec sa spécification et ses jeux dessai.
Ces nouveaux exercices ou ces nouvelles formulations dexercices doivent être proposés aux gestionnaires du site avant publication pour être validés. La validation pour ces derniers peut être directe ou nécessiter une phase de discussion avec les gestionnaires du site.
Le profil des enseignants est enrichi par diverses informations publiques :
- un texte libre (descriptif) (éventuellement en HTML) [optionnel] ;
- le lien vers une page web (extérieur au site EDBA) [optionnel] ;
- la liste des contributions de lenseignant
et des fonctionnalités (utilisables par lenseignant seulement) :
- laccès aux travaux anonymés des élèves sur les exercices introduits par lenseignant ;
- la possibilité denvoyer un message aux étudiants pratiquant ces exercices (tout en conservant lanonymat de ces élèves) ;
- la possibilité de construire une fiche de TD/TP à partir dune sélection dexercices (fiche + correction).
Le profil des étudiants (email,
) doit être facilement extensible, il est enrichi par diverses informations publiques ou privées (en gras les éléments importants) :
- un texte libre (descriptif) (éventuellement en HTML) [optionnel]
- le lien vers une page web (extérieure à EDBA) [optionnel]
- la maîtrise algorithmique de létudiant, pour chaque langage informatique, comptée en points dXp de maîtrise algorithmique pour le langage considéré, calculée en fonction des exercices abordés par létudiant (voir plus loin)
- le niveau de maîtrise algorithmique, pour chaque langage informatique, donné sur une échelle de 1 à 100, calculé en fonction du nombre de points dXp de maîtrise algorithmique pour le langage considéré : ce niveau de maîtrise algorithmique pour un langage donné est un résumé du nombre de points dXp de maîtrise de ce langage sur une échelle facilement compréhensible (voir plus loin)
- la maîtrise algorithmique absolue de létudiant, comptée en points dXp de maîtrise algorithmique absolue, calculée en fonction des maîtrises algorithmiques acquises pour chaque langage informatique (de type somme ou moyenne pondérée ou maximum, mais avec probablement une plus grande importance donnée aux valeurs les plus grandes)
- le niveau de maîtrise algorithmique absolue donné sur une échelle de 1 à 100, résultant de la maîtrise algorithmique absolue, calculé en fonction des niveaux de maîtrise algorithmique acquis pour chaque langage informatique (de type somme ou moyenne pondérée ou maximum, mais avec probablement une plus grande importance donnée aux valeurs les plus grandes) : ce niveau de maîtrise algorithmique absolue est le repère essentiel du niveau algorithmique dun utilisateur, il doit permettre de faire un lien avec le niveau de difficulté des exercices, également donné sur une échelle de 1 à 100 (aussi appelé en abrégé « niveau dun exercice »).
- le niveau dexercice maximum accessible par létudiant, calculé en fonction du niveau de maîtrise algorithmique absolu de létudiant avec comme valeur minimum : le niveau de lexercice résolu par létudiant précédemment le plus élevé + 3 et comme valeur maximale : le niveau de lexercice résolu par létudiant précédemment le plus élevé + 10. Ce sont les règles daccès aux exercices. Elles auront une grande importance dans la suite.
- le nombre de point dXp de maîtrise algorithmique nécessaire, pour chaque langage, pour atteindre un niveau de maîtrise algorithmique supérieur (et donc par conséquent pour atteindre un niveau dexercice supérieur)
Létudiant doit pouvoir accéder à trois fonctionnalités :
- la sauvegarde des exercices travaillés (état courant, états significatifs -corrects syntaxiquement) et du temps de travail effectif passé sur chaque exercice (accessible par létudiant seulement) ;
- le décryptage et lutilisation des solutions des exercices ayant un niveau inférieur au niveau dexercice accessible -12 ;
- la levée partielle de son anonymat via EDBA pour donner son nom réel et son adresse de courriel à un enseignant dEDBA.
EDBA 1.0 Structuration des exercices
La notion dexercice est enrichie par
- les références des auteurs de chaque partie (énoncé, spécification, tests, solution) ;
- une liste de mots clés librement choisis [optionnel] ;
- la référence à un espace de nom pour la définition des fonctions auxiliaires utilisées [optionnel] ;
- le classement de lexercice sur une échelle de difficulté des exercices dalgorithmiques ayant une centaine de niveaux (voir par exemple, la proposition faite dans le tableau 1).
Niveaux de difficulté algorithmique des exercices ou problèmesTypes des exercices ou des problèmesde 0 à 3exercices sur les expressions et laffectationde 4 à 10exercices simples sur les boucles et les conditionnelles (une seule structure de contrôle)de 11 à 17 exercices avec 2 structures de contrôle différentes (ex. une conditionnelle dans une boucle) ou consécutives (ex. deux boucles, lune après lautre)de 18 à 24 exercices avec 2 boucles imbriquées (et éventuellement des conditionnelles)de 25 à 31exercices nécessitant lintroduction de fonctions/procédures auxiliaires (pour éviter un trop grand nombre de boucles imbriquées, ou la répétition dun code récurent)de 32 à 37 exercices complexes demandant un effort de modélisation, lintroduction de fonctions/procédures auxiliaires, ...de 38 à 44problèmes simples, comportant plusieurs exercices simples (niveaux 15 ou moins)de 45 à 51 problèmes non simples, comportant plusieurs exercices dont certains non simples (niveaux 16 à 30)de 52 à 58 problèmes complexes demandant un effort de modélisationde 59 à 70 problèmes complexes demandant un effort de modélisation et la gestion de la performance, dun embryon dIHM, ou dIAde 71 à 80 problèmes complexes (cf. préc.) avec bd ou réseaude 81 à 90 problèmes complexes (cf. préc.) avec utilisation réellede 91 à 100 EDBA 0.0, ..., EDBA 3.0
Tableau 1 : Echelle des niveaux de difficulté algorithmique des exercices.
Remarque : Il serait tentant dappeler cette échelle « échelle de complexité des exercices » ou même « échelle de complexité algorithmique » plutôt que « échelle de difficulté des exercices » (en bref) ou des « échelle des niveaux de difficulté algorithmique des exercices » (en long), mais la confusion avec la complexité algorithmique au sens où on lentend en algorithmique, cest à dire mesure des ressources, temps-espaces, nécessaires à lexécution dun algorithme jusquà son terme serait trop grande. Il sagit bien de la complexité au sens courant et usuel du terme : de la complexité ou difficulté ressentie pour tout individu pour résoudre un exercice ou un problème donné, dune complexité humaine, ressentie subjectivement. Il ne sagit pas de la complexité algorithmique au sens informatique du temps. La distance entre ces deux termes est importante, même sil peut exister quelques liens entre ces deux notions, parfois.
Seconde remarque : lévaluation de la difficulté dun exercice, valeur subjective, est laissée dans un premier temps aux experts. Dans une phase ultérieure, lévaluation de cette valeur pourra reposer sur létude des traces de résolution du dit exercice.
EDBA 1.0 Lien entre exercices et utilisateurs : entre niveau de difficulté algorithmique des exercices et niveau de maîtrise algorithmique absolue dun utilisateur.
Le calcul du niveau de maîtrise algorithmique dun étudiant et lattribution de points dXp de maîtrise algorithmique à un étudiant sont des éléments clés dEDBA. Les développements qui vont suivre risquent de paraître un peu longs et fastidieux ; il y a de nombreux facteurs à prendre en compte et, même si le résultat est assez simple, y arriver demande un peu de temps.
Coté étudiant, les points dXp de maîtrise algorithmique doivent avoir une double fonction : dune part, fournir des éléments dauto-évaluation de lapprentissage de létudiant, dautre part, être une source de motivation pour létudiant. Coté EDBA, il sagit de mettre en correspondance léchelle des niveaux de difficulté algorithmique des exercices avec les niveaux de maîtrise algorithmique absolue dun étudiant (ces derniers dépendent de lattribution de points dXp de maîtrise algorithmique).
Pour le choix des mécanismes mis en uvre et leurs liens avec les effets escomptés du coté de la motivation, la démarche est empruntée au domaine des jeux vidéo, de type jeu vidéo de rôles sur internet (en anglais : role playing game, « rpg », ou massively multiplayer online role-playing game, « mmorpg », voir [Wikipedia]). Elle consiste à emprunter le vocabulaire et les pratiques développés dans le domaine des jeux pour motiver le joueur à continuer de chercher à progresser, en même temps que de linformer sur sa progression via des récompenses dans le jeu. Les jeux pris en exemple sont de type jeux de rôles ou jeux à niveaux avec avatar : « Le joueur est représenté par un avatar, personnage qu'il crée puis fait progresser dans un monde virtuel d'inspiration fantastique, de science-fiction ou de super-héros, riche en aventures. Ce faisant, il interagit avec l'environnement contrôlé par le programme et avec les autres joueurs. [
] Beaucoup de MMORPG reprennent le concept des points d'expériences, afin d'atteindre de nouveaux niveaux ou compétences permettant à son personnage de devenir meilleur en de nombreux points. Cette progression se fait de deux manières distinctes. Soit en accomplissant des quêtes, c'est-à-dire des missions données par un personnage non-joueur, soit en tuant des monstres gérés par l'environnement. Ces deux actions rapporteront des points d'expérience (XP), le plus souvent en quantité proportionnelle à la difficulté de la tâche. » [Wikipedia]
Les caractéristiques des personnages des jeux de rôles correspondent, dans EDBA, aux niveaux de maîtrise algorithmique (et plus loin, aux Droits&Devoirs). Lattribution de points dXp de maîtrise algorithmique lors de la résolution dexercices permet de progresser ; cela correspond aux quêtes et combats. Les niveaux de jeux sont les niveaux de difficulté algorithmique des exercices accessibles par lapprenant.
Il sagit de faire sentir à lutilisateur étudiant que la pratique de lalgorithmique le fait progresser. Il faut quil y trouve aussi une motivation pour continuer à travailler ; comme dans le jeu, la course au niveau supérieur motive le joueur pour continuer à jouer.
Pris dans toute sa complexité, le calcul du niveau de maîtrise de létudiant en algorithmique peut se faire à partir de létude de la trace des exercices abordés par létudiant, en prenant en compte la difficulté algorithmique des exercices abordés, leurs particularités thématiques ou les enchainements observés, le nombre de tests validés et manqués, limportance individuelle a priori des tests mis en jeu (certains tests peuvent être plus importants que dautres) et la qualité des validations effectuées (certaines validations peuvent être plus convaincantes que dautres).
Lessentiel de ce calcul peut cependant reposer uniquement sur la difficulté des exercices résolus et le nombre de tests validés.
Toutefois, lobtention des points dXp de maîtrise algorithmique en fonction de la difficulté algorithmique dun exercice et du nombre de tests validés na pas de raison dêtre linéaire vis-à-vis de lune ou lautre de ces variables.
Par exemple, pour la dépendance vis-à-vis du nombre de tests validés, le gain peut dépendre de lexercice : réussir 80 à 90% de tests dun exercice peut signifier que la résolution de lexercice est bien avancée sans être acquise à 80-90%, les 10 à 20% manquant sont peut-être tout à fait nécessaires et représenter les cas les plus généraux. De même, 30 à 40% de succès aux tests dun exercice ne doit pas signifier que lexercice est résolu à 30-40% ; dans certains cas -comme pour des QCM nayant que peu de choix proposés- cela peut représenter seulement leffet du simple hasard. Par ailleurs, le nombre de points maximal que létudiant peut obtenir lors dun test peut décroitre en fonction du nombre de tests déjà tentés. Le premier essai sera avec un potentiel de points maximum. Les suivants se feront avec un potentiel de points décroissant.
Pour la dépendance vis-à-vis de la difficulté de lexercice, il faut fixer, même approximativement, le lien entre les niveaux de difficulté algorithmique dun exercice et léchelle des niveaux de maîtrise algorithmique dun étudiant. Pourquoi ? Lidée de cette échelle des niveaux de difficulté algorithmique des exercices est de proposer une échelle globale et compréhensible de la difficulté pour la résolution dun problème donné. Ce qui est proposé, est une échelle de difficulté des exercices à 100 niveaux (cf. table 1.). Léchelle des niveaux de maîtrise algorithmique comporte également 100 niveaux mais na pas de signification intrinsèque. Elle a pour but dêtre un résumé des points dXp de maîtrise algorithmique acquis par les utilisateurs lors de la résolution dexercices, une échelle globalisante, et facilement compréhensible de la maitrise algorithmique dun utilisateur. Le plus simple consiste à identifier ces deux échelles de niveaux, ou tout au moins à les faire coïncider autant que possible de telle sorte que laccès pour un étudiant à un niveau de maîtrise algorithmique N signifie plus ou moins la maîtrise des exercices de niveau de difficulté algorithmique N.
Il reste à définir les modalités effectives dattribution des points dXp de maîtrise algorithmique et le lien entre ces points dXp de maîtrise algorithmique et les niveaux de maîtrise algorithmique.
Pour ce dernier point, nous avons choisi une échelle à 100 niveaux de maîtrise algorithmique subdivisée en dautant plus de points dXp de maîtrise algorithmique que le niveau est élevé. Le choix de cette échelle sur-linéaire na pas de justifications fortes ou pédagogiques particulières autres que lobservation des pratiques employées dans le domaine des jeux et lanalyse des conséquences positives quelle entraine. Ainsi, parmi les conséquences de ce genre déchelle, il y a limpression dune progression qui est de plus en plus importante au fur et à mesure de lavancée dans lapplication. La réussite, dans cette progression sera donc dautant plus valorisante quelle représentera une étape plus importante. Limpression peut toutefois être trompeuse : il suffit de ramener ce qui précède à une échelle logarithmique pour obtenir des progressions linéaires.
Associée à cette échelle sur-linéaire, pour que la progression soit effectivement possible en des temps à peu près proportionnels à la progression (ce qui signifie que la progression réelle se rapproche en fait du linéaire), lattribution effective de points dXp de maîtrise algorithmique pour la réalisation correcte dun exercice doit être également sur-linéaire en fonction de la difficulté de lexercice. Ce dernier point doit également donner une impression positive à létudiant, qui verra ses gains progresser au fur et à mesure de lavancée dans lapplication. Par ailleurs, ce type déchelle pousse lutilisateur vers les défis ayant un niveau de difficulté supérieur puisque la fonction de gain des points dXp de maîtrise algorithmique est croissante en fonction de la difficulté ce qui favorise à nouveau la progression. Cette forme dattribution sur-linéaire peut se justifier dun point de vue pédagogique dans la mesure où elle permet de distinguer significativement des exercices de complexité algorithmique différente.
Par exemple, lattribution effective de points dXp de maîtrise algorithmique choisie pour la résolution dun exercice pourrait être donnée par le carré du niveau de difficulté algorithmique de lexercice, avec un facteur multiplicatif lié à la proportion de tests évalués positivement lors des essais. En prenant des niveaux de maîtrise algorithmique échelonnés selon le quadruple du carré de chaque niveau, cela donne pour atteindre un niveau de maîtrise algorithmique supérieur, la résolution denviron 4 exercices de niveau de difficulté algorithmique équivalent au niveau de maîtrise algorithmique de létudiant, dans la mesure où chaque test dun exercice est validé. Une autre fonction croissante (le cube,
) peut être choisie, un autre facteur (2, 3,
) également.
Avec les choix effectués dans le paragraphe précédent, les premiers niveaux de maîtrise algorithmique correspondent aux points dXp de maîtrise algorithmique décrits dans le tableau 2.
Niveau de maîtrise algorithmiquePoints Xp de maîtrise algorithmiquePoints Xp de maîtrise algorithmique cumulésNiveau 00 point 0 point Niveau 14 points 4 points Niveau 216 points 20 points Niveau 336 points 56 points Niveau 464 points 120 points Niveau 5100 points 220 points Niveau 6144 points 344 points Niveau 7196 points 540 points Niveau 8256 points 796 points Niveau 9324 points 1120 points Niveau 10400 points 1520 points Niveau 11484 points 2004 points
Tableau 2 : Relation entre les niveaux de maîtrise algorithmiqueet les points dXp de maîtrise algorithmique.
Globalement, ainsi, les étudiants possèdent un niveau de maîtrise algorithmique qui correspond au niveau de difficulté algorithmique des exercices quils savent résoudrent en général. Les exercices de niveau de difficulté algorithmique directement supérieur sont accessibles à létudiant et constituent des défis pour lui (voir la définition précise du niveau dexercice accessible par un langage informatique spécifique), et les exercices de niveau de difficulté algorithmique largement inférieur sont réputés déjà faits ou facilement faisables (la solution, lorsquelle existe, peut donc être décryptée), leur résolution napporte que peu de points.
Les règles daccès aux exercices introduisent une progression de létudiant qui est organisée de la manière suivante :
- létudiant commence avec 0 point dXp de maîtrise algorithmique et peut donc accéder seulement aux exercices de niveau 0-10,
- à chaque résolution dexercice (correcte, partiellement correcte, ou même très imparfaite), létudiant gagne des points dXp de maîtrise algorithmique,
- après avoir résolu quelques exercices correctement, létudiant a acquis des points dXp de maîtrise algorithmique et doit pouvoir aborder des exercices de niveau supérieur (en cas de présence de nombreuses erreurs dans les solutions, cela peut/doit demander quelques exercices de plus),
- dans tous les cas, létudiant doit pouvoir observer à chaque instant sa progression et la prochaine limite à atteindre.
Exemple de progression :
- état initial : 0 point dXp de maîtrise algorithmique, maîtrise niveau 0, niveau dexercice accessible 10 ;
- résolution correcte dun exercice de niveau 1 : gain de 1 point dXp de maîtrise algorithmique, 1 point dXp de maîtrise algorithmique en tout, maîtrise niveau 0, niveau maximal dexercice accessible 10 ;
- résolution partielle dun exercice de niveau 2 : gain de 1 point dXp de maîtrise algorithmique, 2 points dXp de maîtrise algorithmique en tout, maîtrise niveau 0, niveau maximal dexercice accessible 10 ;
- résolution correcte dun exercice de niveau 3 : gain de 9 points dXp de maîtrise algorithmique, 11 points dXp de maîtrise algorithmique en tout, maîtrise niveau 1, niveau maximal dexercice accessible 11 ;
- résolution partielle dun exercice de niveau 3 : gain de 4 points dXp de maîtrise algorithmique, 15 points dXp de maîtrise algorithmique en tout, maîtrise niveau 1, niveau maximal dexercice accessible 11 ;
- résolution correcte dun exercice de niveau 3 : gain de 9 points dXp de maîtrise algorithmique, 24 points dXp de maîtrise algorithmique en tout, maîtrise niveau 2, niveau maximal dexercice accessible 12 ;
- ...
La méthode proposée pour lévaluation des niveaux de difficulté algorithmique et de la progression des étudiants dans leur niveau de maîtrise algorithmique peut être modifiée ou simplifiée.
Pour motiver les utilisateurs et stimuler leur utilisation dEDBA, EDBA 1.0 doit aussi pouvoir :
donner un hit-parade des maîtrises algorithmiques, des gains de points dXp de maitrise algorithmique et des gains relatifs selon les langues et les langages, pour ceux que lesprit de compétition attire ;
donner les temps de résolution, les nombres dexercices abordés, de tests effectués globalement par tous les utilisateurs dEDBA pour le dernier jour, la dernière semaine, pour ceux que lesprit de communauté motive ;
donner un problème de la semaine (selon le niveau), un concours du mois, la liste des derniers problèmes, ou des problèmes sans solution, pour ceux qui aiment les défis, etc.
posséder des actualités, des forums de discussions, etc.
EDBA 2.0 Enrichissement participatif de la base dexercices, portefeuille de droits&devoirs.
Lobjectif visé par cette version est dintroduire des aspects « participatifs », « collaboratifs » dans la gestion et lenrichissement de la base dexercices. Le choix du numéro de version 2.0 nest donc pas seulement lié au processus de développement, mais fait aussi référence aux notions habituellement associées au Web 2.0.
La mise en place de cette phase du développement dEDBA a deux pré-requis. Le premier -dordre technique- est simplement lié au développement « normal » de lapplication, i.e. lintroduction de nouvelles fonctionnalités, permettant la gestion des collaborations. Sil représente un travail significatif, ce pré-requis technique ne constitue pas un défi au sens des points techniques précédents. Le second pré-requis dépend des usages dEDBA ; pour mettre en place EDBA 2.0, il faut que suffisamment dexercices et/ou détudiants peuplent EDBA, afin quun travail de gestion participatif et collaboratif autour dEDBA puisse avoir lieu et soit nécessaire.
La rupture avec EDBA 1.0, est produite par la disparition de lorganisation en deux classes étudiant-enseignant pour laisser la place à une seule catégorie dutilisateurs associée à la base dexercices dalgorithmique obtenue avec EDBA 1.0. Les membres de cette classe unique dutilisateurs gagnent la possibilité, selon les compétences de chacun, de gérer cette base pour quelle puisse se développer. Ce travail participatif est organisé de manière collaborative.
Plus précisément, dans EDBA 2.0 il est prévu que les utilisateurs gardent un droit daccès et de lecture de la base dexercices limité par leur maîtrise algorithmique, comme dans EDBA 1.0, mais, ils peuvent également enrichir la base, participer à son organisation, laméliorer, la critiquer, lever et gérer les conflits qui peuvent apparaître. Ces actions sont limitées par leur maîtrise de lalgorithmique et la connaissance dEDBA acquise au cours de lutilisation quils en font. Ainsi, la pratique dEDBA nest pas seulement utile pour apprendre lalgorithmique, mais aussi pour améliorer et soutenir EDBA.
Ces démarches prennent la forme de droit et devoirs vis-à-vis de la gestion dEDBA que nous notons Droits&Devoirs. Lacquisition de ces Droits&Devoirs est similaire à lacquisition des points Xp de maîtrise algorithmique. Ces Droits&Devoirs concernent autant EDBA que lalgorithmique. Ils sont associés à des droits sur certaines actions de gestion dEDBA, et devoirs en regard de ces droits. Il sagit dun accès orthogonal à EDBA.
La définition et lacquisition de ces Droits&Devoirs est lun des éléments caractérisant EDBA 2.0 ; la gestion des collaborations et conflits sera lautre point important.
En regroupant les caractéristiques des utilisateurs dEDBA 1.0, étudiants et enseignants, et en ajoutant les éléments nécessaires au travail participatif et au travail collaboratif, lutilisateur dEDBA 2.0 est identifié par son login et son mot de passe. Un nom réel, une adresse de courriel vérifiée sont associés ainsi quun profil public. Ce profil comporte (en gras les éléments nouveaux) :
- un texte libre (descriptif) (éventuellement en HTML) [optionnel]
- lappartenance de lutilisateur à une liste de groupes dutilisateurs [optionnel]
- le lien vers une page web (extérieure au site EDBA) [optionnel]
- la liste des contributions de lutilisateur
- le niveau de maîtrise algorithmique de lutilisateur pour chaque langage informatique
- le niveau de maîtrise algorithmique absolue de lutilisateur
- le niveau de difficulté algorithmique maximum dexercice accessible de lutilisateur
- le nombre de points Xp de maîtrise algorithmique absolue nécessaire pour accéder à un niveau de maîtrise algorithmique supérieur
- un portefeuille de Droits&Devoirs pour le travail de gestion participative et collaborative de la base dexercices, comptés chacun en points de Droits&Devoirs, parmi les Droits&Devoirs suivants :
- droit&devoir dans le choix dun nom dexercice, et de larité du problème
- droit&devoir pour rédaction de sujets informels dexercices
- droit&devoir pour rédaction de spécifications formelles dexercices
- droit&devoir pour rédaction de jeux dessais
- droit&devoir pour rédaction de solution dans un langage spécifique
- droit&devoir pour fixer la difficulté algorithmique dun exercice
- une option (opt-out) pour accepter, limiter, refuser les appels par courriel dEDBA à ces Droits&Devoirs, pour participer à la gestion dEDBA (gestion des conflits, appel à compléter, appels à valider un exercice,
)
et plusieurs fonctionnalités (accessibles à lutilisateur seulement) :
- laccès aux travaux anonymés des autres utilisateurs sur les exercices introduits par lutilisateur lui-même ;
- la possibilité denvoyer un message aux autres utilisateurs de ces exercices (tout en conservant lanonymat de ces utilisateurs) ;
- la sauvegarde des exercices travaillés (état courant, états significatifs -corrects syntaxiquement) et du temps de travail effectif passé sur chaque exercice ;
- lutilisateur peut lever son anonymat via la garantie dEDBA (cest EDBA qui lève lanonymat) et donner son nom réel et son adresse de courriel vérifiée à un autre utilisateur dEDBA ;
- lutilisateur peut voir, décrypter et utiliser les solutions des exercices ayant un niveau inférieur à son niveau de maîtrise algorithmique accessible - 8.
Les Droits&Devoirs et le portefeuille de Droits&Devoirs sont assimilables, respectivement, à la reconnaissance de compétences et à un portefeuille de responsabilités.
Le choix du terme « Droit&Devoir » plutôt que compétence tend à répondre à deux objectifs : dune part éviter le terme « compétence » dont le champ sémantique est trop large et sujet à controverse (cest pour une raison similaire que le terme point Xp de maîtrise algorithmique a été inventé à mi-chemin entre point dexpérience algorithmique ou point dexpertise algorithmique), dautre part, si laspect « droit » (droit daccès, par exemple) semble clair, il nous a semblé intéressant de rappeler quun droit trouve souvent son équilibre avec un devoir associé.
Cela demande peut-être un point déclaircissement. Prenant un peu de recul sur les organisations humaines, on constate quà partir du moment où lon a la compétence pour réaliser une action, que laction est en puissance entre nos mains, alors il est parfois nécessaire davoir également le droit de la réaliser pour que lacte puisse se faire. Réciproquement, parfois, lorsque lon a la compétence pour réaliser une action il est nécessaire dutiliser cette compétence, à la demande dun tiers, ou dune situation. Dans ces conditions, la possession de la compétence nous impose le devoir de lutiliser. Cest le cas, souvent, des experts, médecins par exemple.
Un terme plus complet « Droit&Compétence&Devoir » ou « Compétence&Droit&Devoir » aurait été possible sil navait été un peu plus lourd, un peu trop lourd. Droits&Devoirs est déjà assez lourd. « D&D » serait peut-être à considérer sil nétait trop vide de sens à sa naissance.
EDBA 2.0 gestion participative et collaborative de la base dexercices
Lévolution du portefeuille de Droits&Devoirs dun utilisateur suit son niveau de maîtrise algorithmique et son utilisation dEDBA. À chaque exercice résolu, il reçoit pour chacune des compétences distinguées dans EDBA autant de points de Droits&Devoirs que de points dXp de maîtrise algorithmique.
Ces Droits&Devoirs ne sont pas figés, ni fixés uniquement par le système. Ils peuvent évoluer au cours du temps selon les choix de lutilisateur.
Parmi ces points de Droits&Devoirs, 90% des points dun droit&devoir donnés sont liés initialement à ce droit&devoir, 10% peuvent être transférés par lutilisateur de ce droit&devoir vers un autre droit&devoir. En cas de transfert, une perte de 25% de ces points est appliquée ; un gel pour un mois de la transférabilité de ces points est par ailleurs- appliqué. Des mécanismes similaires sont en uvre dans certains jeux sur internet.
Un mécanisme doubli des Droits&Devoirs rarement utilisés est aussi à prévoir. Un modèle utilisant les travaux de psychologie cognitive sur la mémoire peut être utilisé, par exemple, en suivant les systèmes de Flashcards [Leitner & Totter 72].
Comme on la vu au début de cette section, ces Droits&Devoirs concernent la rédaction dexercices, au sens large, découpés en éléments distinguant chacune des parties dun exercice (lénoncé, la spécification, les jeux dessais, etc.).
Ce découpage a pour objectif de permettre des travaux collaboratifs entre individus ayant des compétences complémentaires dans différents domaines.
Ainsi, quelquun de littéraire pourra-t-il se charger de la rédaction de lénoncé de lexercice, quelquun de plus formel pourra rédiger les spécifications et quelquun de pratique pourra rédiger les jeux dessai.
Des Droits&Devoirs concernent aussi la gestion des conflits qui risquent de survenir lors des travaux concurrents (la concurrence étant entendue au sens informatique, comme par exemple dans les systèmes de gestion de versions concurrentes [CVS], c'est-à-dire le travail en parallèle, qui est nécessaire à un travail collaboratif et qui mène à des modifications incompatibles conflits, au sens informatique et quil faut reconstruire ou fusionner « à la main » ; la concurrence au sens commun qui en découle et qui mène aux conflits au sens commun quand deux personnes ne sont pas daccord et sopposent sur la manière de rendre compatibles les différents points de vue et où alors une négociation est nécessaire, éventuellement sous le patronage dun tiers qui encadrera la concertation et amènera chacun à faire peut-être quelques concessions pour arriver à un consensus)
Plus précisément, lutilisation des Droits&Devoirs dépend du nombre de points de Droits&Devoirs obtenus par lutilisateur et de la complexité algorithmique de lexercice considéré. Lutilisateur peut utiliser un droit&devoir (rédiger/valider/gérer un conflit vis-à-vis dun exercice/test/solution/spécification) pour des exercices ou proposition dexercices complets ou incomplets selon les règles dutilisation des droits&devoirs suivantes :
pour lever des conflits : utilisation possible sur des exercices de difficulté algorithmique inférieure au niveau de droit&devoir acquis -3
pour la rédaction déléments et lappel à compléter : utilisation possible sur des exercices de difficulté algorithmique inférieure au niveau de droit&devoir acquis 6,
pour la gestion de conflits et la validation dexercices : utilisation possible sur des exercices de difficulté algorithmique inférieure au niveau de droit&devoir acquis -12.
Pour les derniers niveaux 80-100 dexercice, et la gestion dEDBA, des règles spéciales sont à définir.
Exemple dutilisation
Un utilisateur ayant un niveau de maîtrise algorithmique de lordre de 14 aura :
accès à des exercices de difficulté algorithmique jusquà 20,
possibilité dune observation libre des solutions dexercice de niveau 6 ou moins,
un droit&devoir pour lever des conflits sur des énoncés dexercices de niveau 11 ou moins,
des droits&devoirs en rédaction dexercices/de spécifications/de tests/de solutions pour des exercices de niveau 8 ou moins (rappel : une fois rédigés, ces exercices devront être validés. Cela pourra se faire par un utilisateur ayant un niveau 20 ou plus),
des droits&devoirs en validation dexercice ou résolution de conflit pour des exercices de niveau 2 ou moins.
Remarque : la rédaction dun exercice, et en particulier la rédaction des exemples, doit pouvoir se faire via un environnement spécifique facilitateur, utilisant en particulier la console pour la rédaction et la mise au point automatique des jeux dessai ainsi que la vérification de la cohérence avec le programme de solution proposé.
Associé à ces règles dutilisation des droits&devoirs, EDBA 2.0 possède un moteur interne déclenchant lappel aux droits&devoirs nécessaires. Ainsi, la présence dun exercice complet mis en attente de validation provoque lenvoi dun message à un utilisateur compétent pour le valider. Ce message est renouvelé tous les jours dattente (ou toutes les semaines, selon la variable de temps adoptée par le système), jusquà validation, en changeant éventuellement le destinataire du message.
Pour un exercice incomplet, un appel à compléter un exercice peut être soumis à EDBA, qui alors relai cet appel auprès de 2 personnes compétentes pour compléter et valider cet exercice. Ce message est renouvelé tous les jours dattente (ou toutes les semaines, selon la variable de temps adoptée par le système), jusquà complétude et validation.
Associées à ces appels dEDBA, des listes dexercices incomplets ou à valider doivent être également visibles aux utilisateurs dEDBA pour permettre dautres démarches plus spontanées.
Lutilisation de ces échelles de Droits&Devoirs est à mi-chemin entre ce que lon trouve dans certains CMS pour les processus de validation des informations avant publication, les droits Unix et les droits dans les premiers systèmes de discussion sur internet, les IRC : Internet Relay Chat [IRC user level].
Coté collaboration, la gestion des contributions engendrées par ces droits dans EDBA est donc plus encadrée que dans Wikipédia [Wikipédia]. Sil est toujours assez facile pour lutilisateur de faire des propositions libres dexercices ou seulement dénoncés dexercices (le droit&devoir de rédaction dune proposition est assez facilement accessible dans la mesure où la progression dans EDBA est suffisante), ces propositions ne sont prises en compte quaprès validation par des utilisateurs experts dEDBA. Lexpertise, quant à elle, est obtenue daprès les compétences réelles et observées des utilisateurs, et non pas données a priori par un administrateur omnipotent comme cela peut se faire avec certains wikis.
La gestion des conflits diffère également de celle observée dans Wikipédia. Lintroduction de contenus dans EDBA étant sujete à une validation plus forte, les conflits sont à prendre en compte autrement, et leur gestion ne peut être confiée à tout utilisateur. Les conflits peuvent porter sur le nom de lexercice, la rédaction des différentes parties de lexercice, le niveau de lexercice, etc. Le résultat dun conflit peut-être le retour à une version antérieure (comme dans wikipédia) ou la suppression de lélément incriminé.
Une première limitation à lutilisation des conflits est liée au niveau des exercices ; une autre concerne la fréquence dutilisation de ce droit&devoir. Un utilisateur, dans la mesure où il en a la capacité, ne peut pas lever plus de deux conflits pour un exercice donné, sur une période dun mois. La levée dun conflit envoie un message à lauteur de la partie incriminée et à un utilisateur compétent pour résoudre le conflit. Le message peut être renouvelé tant que dure le conflit.
Lexposé des mécanismes proposés pour le travail participatif, les collaborations et la gestion des conflits met en avant la nécessité pour lutilisateur davoir les compétences nécessaires à ces activités pour pouvoir avoir le droit de les exercer. Il ne faudrait pas réduire ces compétences à des droits seulement. Cela napparait peut-être pas suffisamment dans lexposé, mais ces compétences sont autant des droits que des devoirs. À un certain niveau de compétence, lorsque le droit&devoir de rédaction a été obtenu par un utilisateur A, mais que le droit&devoir de publier nest pas obtenu par cet utilisateur A, le processus de publication du contenu produit par A passe par un appel à un utilisateur B ayant les compétences supplémentaires nécessaires à cette publication. Pour ce second utilisateur B, lappel à validation venant de A via EDBA correspond à un usage de la compétence dû au système. Parce que B a le pouvoir dutiliser sa compétence, le système se repose sur lui pour quil le fasse, et ce pouvoir devient un devoir. Ainsi, A peut voir son contenu publié.
Collaborations et conflits ne gèrent pas nécessairement tout ; par exemple, le niveau de difficulté dun exercice est fixé initialement par lutilisateur définissant son noyau (nom et énoncé informel) et éventuellement à travers un travail collaboratif.
Il peut évoluer par la suite après des phases de conflits/gestion de conflits.
Cette évolution peut aussi être le résultat danalyses (automatiques) des résolutions de cet exercice par les utilisateurs de la base. Par exemple, la difficulté dun exercice, son niveau, peut être défini à partir dalgorithmes de classification automatique, en prenant en compte son niveau initial (défini a-priori), le temps passé moyen pour la résolution de lexercice, le nombre déchec avant la résolution de lexercice, le nombre déchecs face à lexercice (nombre de tests incorrects, avec leur degré de fiabilité), et tous autres éléments aussi objectifs que possible ressortant de la pratique dEDBA. Un ordre non complet, sur la difficulté des exercices, peut également être considéré. (De même, le niveau des utilisateurs peut être calculé à partir dalgorithmes de classification automatique sur la pratique dEDBA prenant en compte les exercices abordés, ceux réussis, les tests incorrects, ...)
En cas de changement du niveau dun exercice, un message est envoyé aux auteurs des différentes parties de lexercice (les points attribués pour la résolution de cet exercice seront ou ne seront pas rétroactivement modifiés).
Dautres possibilités de travail collaboratif plus classiques sont également introduites avec, par exemple, la notion de groupes de travail. Ainsi, lespace de noms des fonctions doit pouvoir être organisé hiérarchiquement, avec en 1er un espace de noms spécifique pour lutilisateur, venant ensuite des espaces de groupe et un espace public. Lobjectif visé par cette hiérarchie despaces de noms est de permettre le partage de code et de solutions entre utilisateurs. Si une fonction ne se trouve pas dans lespace de nom courant, elle peut être recherchée par élargissement successif, en respectant les niveaux de difficulté algorithmique, parmi les codes du groupes, puis les codes publics. Toutefois, laccès à ces espaces est limité : une fonction de niveau N ne peut être accédée que par un utilisateur maîtrisant le niveau N+12 (par exemple, daprès ce qui précède).
À considérer également des écrans déditeur de code ou de console partagés pour le travail à plusieurs en même temps, et dautres outils associés au travail collaboratif (forum, chat,
)
Au-delà, choix technologiques, conclusion et perspectives.
EDBA 3.0 Pour la recherche en didactique de lalgorithmique.
Au-delà dEDBA 2.0, on peut imaginer un EDBA 3.0 centré sur des problématiques de recherche en didactique de lalgorithmique, orienté vers les chercheurs de cette discipline et les enseignants en informatique. Ainsi, divers outils pour lenseignant et le chercheur ou didacticien en algorithmique peuvent être imaginés :
- diverses études des enregistrements anonymés
- outils de scénarisation et de visualisation des traces et contenus obtenus
- définition dune plateforme de tests et dexpérimentation
- console de suivi des activités en direct ou en différé (magnétoscope)
- algorithmes de diagnostic des apprentissages observés
- modélisation sémantique des contenus
-
Choix et défis technologiques
Les choix technologiques font rarement lobjet dexposés approfondis, cest bien dommage. Choisir une technologie nest pas une chose anodine et est porteur de bien autant dinformations que certaines études statistiques trop locales [Trgalova&Al. - 09]. Ainsi, mes premiers projets [Bouhineau - 97], sous mac-OS, nécessitant un interpréteur spécifique (PrologIII, payant de surcroît) peuvent difficilement être comparés aux travaux entrepris depuis [Bouhineau - 03] pour Windows, sous forme dexécutable distribué librement (un temps), sur le web, avec installateur et documentation.
La technologie envisagée pour EDBA :
- pour la couche métier, le client EDBA 0.0 (client lourd/riche) : javascript (ajax)
- pour les aspects BD : mysql
- avec un minimum de php pour faire la liaison entre javascript et mysql, et déventuels utilitaires (par exemple pour produire des graphiques, ou des pdf).
Divers formats dexercices doivent être disponibles en sorties :
- format lisible humainement (pdf, html)
- XML, JSON
Ces choix technologiques sont portés par diverses raisons liées à la recherche et lenseignement.
Lexistence des plateformes denseignement, type Moodle, encourage lécriture dapplications web reposant sur des technologies Ajax.
Les grandes possibilités déchanges liée à la publication aisée des codes produits, les modèles ouverts (au sens open-source) pour les données favorisent la communication et le travail de recherche.
La légèreté des solutions logicielles mises en uvre, les facilités dinstallation (un navigateur et internet suffisent), les possibilités de paramétrisation, dadaptation, de réutilisation, de localisation ou dinternationalisation permettent lélaboration rapide de prototypes pour expérimenter ou essayer dans sa classe une version adaptée à son enseignement.
En particulier, pour les problèmes techniques, et les assemblages technologiques prévus, de gros espoirs sont fondés sur lutilisation de javascript, le nouvel assembleur des applications web. Des interpréteurs dune dizaine de langages informatiques existent déjà en javascript. Des éditeurs de code et des terminaux existent également. Javascript, à ne pas confondre avec java, est un langage plus puissant que sa réputation ne le laisse penser, pour le web et aussi pour un usage plus général. Il permet de faire des prototypes/expériences facilement. Une communauté importante utilise ce langage pour produire des solutions à de très nombreux problèmes, dont des problèmes non triviaux. Enfin, cest un langage à la mode. Google, en particulier, lutilise et cherche à le promouvoir activement.
Résumé des défis techniques prévus pour EDBA :
application Ajax intelligente, c'est-à-dire obtenir une application comportant une intelligence mise en uvre sur le poste client ;
application Javascript + SQL, c'est-à-dire, limiter au strict minimum le nombre de langages nécessairse pour la réalisation de cette application web ;
application Monopage [SPA], c'est-à-dire arriver à fusionner des codes ayant des origines et des méthodes de travail diverses ;
application réseau et hors-réseau, c'est-à-dire concevoir une application qui puisse aussi continuer à fonctionner sans réseau (avec perte de certaines fonctionnalités, certes, mais permettant toujours de travailler sur un exercice obtenu avant le passage hors-réseau) ;
développement comme pour les applications habituelles, c'est-à-dire utilisant les outils de génie logiciel usuels (« compilation » séparée, tests automatiques, séparation code-contenu-présentation, internationalisation, paramétrisation, gestion de la qualité du code, documentation du code,
) ;
pouvoir ajouter un exercice en moins de 10 minutes.
Conclusions et perspectives
Le projet EDBA commencé en 2008 avec la rédaction de cet article (dans une forme plus réduite, certes, mais avant le début de la conception proprement dite et surtout, avant le début du codage effectif). Il a vu son développement et ses premières expérimentations en 2009 sur la base dune application à mi-chemin entre EDBA 1.0 et EDBA 2.0.
Quelques résultats peuvent déjà être exposés informellement. La place prise par les jeux dessai dans lapplication semble intéressante, à la fois élément de réflexion et de compréhension de lalgorithme recherché et élément de validation des solutions proposées. Le mécanisme général dattribution des points dXp de maîtrise algorithmique et le lien avec la complexité algorithmique des exercices a été bien perçu et est source effective de motivation chez les étudiants volontaires pour expérimenter de manière informelle lapplication.
Voir http://www.noe-kaleidoscope.org/public/people/DenisB/EDBA/index_EDBA_Full.html pour la version courante.
À ce jour, pour lessentiel, la plupart des défis techniques ont été relevés. Il reste cependant à affiner lattribution des points dXP de maîtrise algorithmique et lorganisation des droits&devoirs. Coté peuplement de la base dexercices, 200 exercices de complexité algorithmique allant de 1 à 20, associés à plus de 1000 jeux dessai, sont déjà disponibles. Comparé à ce que lon trouve dans les livres denseignement de lalgorithmique, cest un bon début, cf. Table 3. Une course au nombre est pour autant à éviter, dautant plus quavec la multiplication des exercices, la nécessité dune organisation plus fine de ces exercices commence à se faire sentir.
Les développements logiciels effectués ont provoqué un début de travail de réflexion vis-à-vis des tests et de la sécurité.
Sur les tests et jeux dessai, la piste de tests aléatoires automatiques envisagée un temps a été mise en sommeil devant lefficacité observée des tests choisis à la main comme ils ont été présentés dans cet article. La question de la validation des algorithmes nest pourtant pas close. Une réflexion sur les outils à mettre à disposition des rédacteurs dexercices pour choisir à la main ces tests est en cours. Une comparaison entre ces tests, choisis à la main, et les méthodes de correction manuelle (plus sémantique) est également en cours.
Vis-à-vis de la sécurité, deux sujets de préoccupation sont apparus : comment assurer la sécurité dune base de données dans une application web accédée quasi directement via le client à travers javascript ? Comment limiter les tentatives de fraude détudiants malhonnêtes cherchant à piéger le logiciel en utilisant les possibilités de suivi dexécution et de débuggage des codes javascript ? Des solutions partielles ont été trouvées. Dautres restent encore à trouver.
Dautres voies et perspectives de travail pour EDBA ont été imaginées, mais tout cela, ainsi quune analyse plus approfondie des premiers résultats obtenus avec EDBA et des enseignements tirés de la mise en uvre effective de la version courante dEDBA fera lobjet dun autre article.
ManuelExercices/ProblèmesAlgorithmes cherchésPagesAnnales ENS Lyon/Ulm
[Bougé & Al. 93]143 Lyon47134 Ulm24148Baynat [Baynat & Al. 03]144 exos, 722 Q120446Flasque [Flasque & Al. 10]4450218Knuth [Knuth 98] T I850175650 T II900123762 T III90098722Cormen [Cormen & Al. - 10]1146 parties 1-3550135313 parties 4-6838266366 annexes89166 Tableau 3 : Nombres dalgorithmes dans les exercices pour quelques manuels dinformatiques riches en exercices
Travail à faire / Sujets de stage possible (à part EDBA dans son ensemble) :
- Interpréteurs & Co : Rendre EDBA indépendant de la console, de léditeur et des interpréteur ou pouvoir être capable de proposer dautres éditeurs, consoles et interpréteurs pour EDBA (en particulier des interpréteurs Ada, C, Java, ARM, CAML) ; et par suite répondre à la question suivante peut-on sabstraire des langages informatiques ? Existe-t-il des adaptateurs entre langages (et structures de données) si lon se restreint aux entrées/sorties ?
- Test : Validation dalgorithme par jeu de tests, génération de tests automatiques aléatoire ou selon des patrons symboliques par conparaison avec lexécution dune solution de référence, (avec test dimplication possible) et amélioration de la console pour la saisie de ces tests standards et symboliques
- Editeur : Éditeur de texte collaboratif (pour les 2 étudiants dun binôme), et proposition dun nouveau mode dévaluation de lexpérience, de la maîtrise et des compétences dun utilisateur
- Aide à la production dalgorithme à partir de généralisation dactions effectuées dans une console via un interpréteur (forme de manipulation directe de suite dactions), définition dun langage de programmation par lexemple et laide à la généralisation.
Contact : Denis.Bouhineau@imag.fr
Version : 1.1.8
Date : Octobre 2010
Références
[Baron et al. 93] Baron, G.-L., Baudé, J., Bron, A., Cornu, P., Duchâteau, C. Actes de la troisième rencontre francophone de didactique de l'informatique, SION Juillet 1992. EPI (Association Enseignement Public et Informatique) (Ed.) 1993. http://edutice.archives-ouvertes.fr/edutice-00359968/en/
[Baron & Bruillard 01] Baron G.-L., Bruillard E. Une didactique de l'informatique ? Revue française de pédagogie n° 135, avril-mai-juin 2001. http://edutice.archives-ouvertes.fr/edutice-00286326/fr/
[Baynat & Al. 03] Bruno Baynat, Philippe Chrétienne, Claire Hanen, [et al.]. Exercices et problèmes dalgorithmique : 144 énoncés avec solutions détaillées. Dunod. 2003.
[Bougé & Al. 93] Luc Bougé et Al. (ouvrage collectif) Algorithmique : exercices corrigés posés à loral du concours dentrée à lEcole Normale Supérieure de Lyon. Ellipses-Marketing. 1993.
[Bouhineau 97] Bouhineau D. Construction automatique de figures géometriques et programmation logique avec contraintes, Thèses. Université Joseph-Fourier - Grenoble I. 1997. http://tel.archives-ouvertes.fr/tel-00004922/fr/
[Bouhineau - 03] Bouhineau D., Bronner A., Chaachoua H., Huguet T. Analyse didactique de protocoles obtenus dans un EIAH en algèbre. Actes de la conférence EIAH 2003, Environnements Informatiques pour l'Apprentissage Humain, Strasbourg, France, 15, 16 et 17 avril 2003. http://hal.archives-ouvertes.fr/hal-00190083/fr/
[Cormen & Al. 10] Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein. Algorithmique Dunod. 2010.
[Dijkstra 69] Dijkstra, E.W. Notes on structured programming. Technological University Eindhoven, Netherlands Department of Mathematics. 1969.
[Flasque & Al. 10] Nicolas Flasque, Helen Kassel, Boris Velikson,... [et al.] Exercices et problèmes dalgorithmique [Texte imprimé] : rappels de cours, exercices et problèmes avec corrigés détaillés, solutions en pseudo code et en langage C. Dunod. 2010.
[Knuth 98] D. Knuth. The art of computer programming. Addison-Wesley. 1998.
[Laborde - 88] Actes du 1er colloque franco-allemand de didactique des mathématiques et de linformatique, Textes réunis et présentés par Colette Laborde, La pensée sauvage édition. 1988. ISBN : 2 85919 067 9.
[Libbrecht - 08] Libbrecht, P. Cross curriculum search through the GeoSkills' Ontology. Proceedings of the Second International Workshop on Search and Exchange of e-le@rning Materials (NL Maastricht), 2008. http://svn.activemath.org/intergeo/Papers/2008-SEAM-ontology-for-cross-curriculum/SEAM-ontology-for-cross-curriculum.pdf
[Leitner & Totter 72] Leitner, S. and Totter, R. So lernt man lernen, Herder publisher, 1972.
[Lobato & Hache 07] Lobato, Rafael et Hache, Sébastien. Mathenpoche au fil des TICE. MathémaTice N°6, Sept 2007. http://revue.sesamath.net/spip.php?article94
[Melis et al. 01] Melis, E., Andres, E., Büdenbender, J., Frischauf, A., Goguadze, G., Libbrecht, P., Pollet, M. and Ullrich, C. ActiveMath: A generic and adaptive web-based learning environment. International Journal of Artificial Intelligence in Education. 12(4), 2001.
[Moreno-Navorro & Rodriguez-Artalejo 92] Moreno-Navarro, Juan Jose, and Rodriguez-Artalejo, Mario. Logic programming with functions and predicates: The language Babel. The Journal of Logic Programming, 12(3), February 1992.
[O'Reilly 05 ] O'Reilly, Tim. What Is Web 2.0. Design Patterns and Business Models for the Next Generation of Software. Web 2.0 Conference 2005.
[Pears & Al. 07] Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M., and Paterson, J. A survey of literature on the teaching of introductory programming. SIGCSE Bull. 39, 4 (Dec. 2007), 204-223. DOI= http://doi.acm.org/10.1145/1345375.1345441
[Sanwin 04] Sangwin, C. J.. Assessing mathematics automatically using computer algebra and the internet. Teaching Mathematics and its Applications, 23(1), 2004. http://web.mat.bham.ac.uk/C.J.Sangwin/Publications/tma03.pdf
[Trgalova&Al. - 09] Trgalova, Jana, Bouhineau, Denis and Nicaud, Jean-François, An Analysis of Interactive Learning Environments for Arithmetic and Algebra Through an Integrative Perspective, International Journal of Computers for Mathematical Learning 14(3), Springer, pages 299-331, 2009.
[Xiao 01] Xiao, Gang. WIMS: An Interactive Mathematics Server. Journal of Online Mathematics and its Applications. 1 (1). Jan 2001. http://mathdl.maa.org/mathDL/4/?pa=content&sa=viewDocument&nodeId=354&pf=1
Webographie (par défaut, pages accédées en Juin 2010)
[ActiveMath] http://demo.activemath.org/ActiveMath2/main/menu.cmd
[CVS] http://www.nongnu.org/cvs/
[DADS] http://www.itl.nist.gov/div897/sqg/dads/termsType.html
[Elm-Art] http://art2.ph-freiburg.de/Lisp-Course
[IRC user level] http://www.ablenet.org/irc_user_levels
[MathEnPoche] http://mathenpoche.sesamath.net/
[Matexo] http://matexo.smai.emath.fr/
[Moodle] http://moodle.org/
[OpenId] http://openid.net/
[ProjectEuleur] http://projecteuler.net/
[P99] https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/
[ShootOut] http://shootout.alioth.debian.org/
[Specif] http://www.specif.org/
[Spedago-lien inaccessible] http://spedago.unice.fr (lien inaccessible)
[SPOJ] http://www.spoj.pl/
[Wikipedia] http://fr.wikipedia.org/wiki/Aide:Sommaire
http://fr.wikipedia.org/wiki/Jeu_de_role_(jeu_video)
http://fr.wikipedia.org/wiki/Jeu_de_role_en_ligne_massivement_multijoueur
http://fr.wikipedia.org/wiki/Liste_des_algorithmes,
http://fr.wikipedia.org/wiki/Liste_des_langages_de_programmation
http://en.wikipedia.org/wiki/Spaced_repetition
http://fr.wikiversity.org/wiki/Faculte:Informatique
[WIMS] http://wims.unice.fr/wims/fr_home.html
PAGE \* MERGEFORMAT 27