OpenMCQ Slides

28
Création et correction automatisées de QCM Christophe Outteryck [email protected] Laurent Delprat [email protected] Suiveur : M. Hubert Wassner [email protected] Projet Pluri Disciplinaire ESIEA Avril 2005

Transcript of OpenMCQ Slides

Page 1: OpenMCQ Slides

Création et correction automatisées de QCM

Christophe [email protected]

Laurent [email protected]

Suiveur :M. Hubert Wassner

[email protected]

Projet Pluri Disciplinaire ESIEAAvril 2005

Page 2: OpenMCQ Slides

Qu'est-ce qu'OpenMCQ ?

Que permet-il de faire ?1. création du sujet ;2. création des feuilles de réponses ;3. correction des copies ;4. statistiques sur l'ensemble des candidats.

Pourquoi ce nom ?

Page 3: OpenMCQ Slides

Organisation de l'exposé

1. Présentation du projet

2. Fonctionnement du logiciel

3. Cheminement du projet

Page 4: OpenMCQ Slides

1. Présentation du projet1.1 Cahier des charges1.2 Choix effectués

Présentation du projet

Page 5: OpenMCQ Slides

1. Présentation du projet1.1 Cahier des charges1.2 Choix effectués

Cahier des charges

Objectifs détaillés :- gagner du temps pour la correction ;- éviter la triche ;- automatiser la lecture des noms et prénoms ;- avoir des statistiques complètes ;- laisser le maximum de liberté à l'enseignant ;- pouvoir lire des chiffres/lettres en plus des cases.

Délai : 90h (45h/étudiant)

Contraintes techniques : ordinateur & scanner « classiques »

Page 6: OpenMCQ Slides

1. Présentation du projet1.1 Cahier des charges1.2 Choix effectués

Choix effectués (1/2)ToolKit Graphique Qt 3.3 :

- très répandu (C/C++, Open Source) ;- orienté objet ;- plus « simple » que GTK ;- fiable (KDE) & a de l'avenir (la version 4 arrive) ;- portable (Win32, Linux, Mac, Unix).

Langage C/C++

Page 7: OpenMCQ Slides

Choix effectués (2/2)

1. Présentation du projet1.1 Cahier des charges1.2 Choix effectués

XML (eXtensible Markup Langage) : - langage de l'avenir ;- eXtensible & évolutif.

Open Source & Licence GPL :- indispensable à la survie du projet ;- plus grande liberté aux utilisateurs & développeurs.

Page 8: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Fonctionnement du logiciel

Page 9: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

2.1 Pré-traitement de l'image2.1.1 Transformation de l'image en matrice2.1.2 Vérification des dimensions de l'image2.1.3 Détection du centre de la mire2.1.4 Calcul de l'échelle2.1.5 Calcul de l'angle de rotation

2.2 Lecture du fichier XML2.2.1 Qt et le XML2.2.2 Zones à cocher2.2.3 Exemple de fichier XML

2.3 Correction & notation2.3.1 Permutation des questions2.3.2 La case est-elle cochée ?2.3.3 Comparaison avec le corrigé

Page 10: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Pré-traitement de l'image (1/4)

Transformation de l'image en matrice

Echelle de 255 niveaux de gris.Noir = 0Blanc = 254

Vérification des dimensions de l'image :

Page 11: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Pré-traitement de l'image (2/4)

Détection du centre de la mire

Méthode pour rendre floue une zone

Page 12: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Calcul de l'échelle

1ère étape 2ème étape

Pré-traitement de l'image (3/4)

Page 13: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Pré-traitement de l'image (4/4)

angle

Calcul de l'angle de rotation Rotation

Attention à l'origine du repère ! (géométrie affine)

Page 14: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Lecture du fichier XML (1/3)

Qt et le XML : 2 méthodes (DOM et SAX)

On utilise DOM avec la classe QdomDocument

Le parcours se fait principalement à l'aide de la classe QDomNode.

Intérêt du XML ? Concevoir un QCM entièrement personnalisé

Page 15: OpenMCQ Slides

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Lecture du fichier XML (2/3)

Zones à cocher

<body><box number="1">

<mark><true>+1</true><false>0</false><null>0</null>

</mark><answer letter="A">

<x>-167</x><y>104</y>

</answer><answer letter="B">

<x>-160</x><y>104</y>

</answer><answer letter="C">

<x>-154</x><y>104</y>

</answer></box><box number="2">

[ ... ]</box>

<body>

Distances en mm par rapport au centre de la mire

Page 16: OpenMCQ Slides

Lecture du fichier XML (3/3) <box number="4" nbanswers="2"> <answer letter="A"> <x>-175</x><y>149</y> </answer> <answer letter="B"> <x>-137</x><y>149</y> </answer> </box><box number="4" nbanswers="2"> <answer letter="A"> <x>-175</x><y>149</y> </answer> <answer letter="B"> <x>-137</x><y>149</y> </answer> </box> <box number="5" nbanswers="2"> <answer letter="A"> <x>-175</x><y>176</y> </answer> <answer letter="B"> <x>-137</x><y>176</y> </answer> </box> <box number="6" nbanswers="5"> <answer letter="A"> <x>-175</x><y>199</y> </answer> <answer letter="B"> <x>-137</x><y>199</y> </answer> <answer letter="C"> <x>-99</x><y>199</y> </answer> <answer letter="D"> <x>-60</x><y>199</y> </answer> <answer letter="E"> <x>-23</x><y>199</y> </answer> </box>

<mcq><properties> <nbquestions>7</nbquestions></properties>

<head> <title>Sondage OpenMCQ</title></head>

<body> <box number="1" nbanswers="5"> <answer letter="A"> <x>-175</x><y>79</y> </answer> <answer letter="B"> <x>-137</x><y>79</y> </answer> <answer letter="C"> <x>-99</x><y>79</y> </answer> <answer letter="D"> <x>-60</x><y>79</y> </answer> <answer letter="E"> <x>-23</x><y>79</y> </answer> </box>

<box number="2" nbanswers="5"> <answer letter="A"> <x>-175</x><y>102</y> </answer> <answer letter="B"> <x>-137</x><y>102</y> </answer> <answer letter="C"> <x>-99</x><y>102</y> </answer> <answer letter="D"> <x>-60</x><y>102</y> </answer> <answer letter="E"> <x>-23</x><y>102</y> </answer> </box> <box number="3" nbanswers="5"> <answer letter="A"> <x>-175</x><y>126</y> </answer> <answer letter="B"> <x>-137</x><y>126</y> </answer> <answer letter="C"> <x>-99</x><y>126</y> </answer> <answer letter="D"> <x>-60</x><y>126</y> </answer> <answer letter="E"> <x>-23</x><y>126</y> </answer> </box>

<box number="7" nbanswers="9"> <answer letter="A"> <x>-175</x><y>227</y> </answer> <answer letter="B"> <x>-137</x><y>227</y> </answer> <answer letter="C"> <x>-99</x><y>227</y> </answer> <answer letter="D"> <x>-60</x><y>227</y> </answer> <answer letter="E"> <x>-23</x><y>227</y> </answer> <answer letter="F"> <x>-137</x><y>236</y> </answer> <answer letter="G"> <x>-99</x><y>236</y> </answer> <answer letter="H"> <x>-60</x><y>236</y> </answer> <answer letter="I"> <x>-23</x><y>236</y> </answer> </box></body></mcq>

Page 17: OpenMCQ Slides

Correction & notation (1/3)

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Permutation de l'ordre des questions : le rouleau Spartiate

Transposition

Modulo 5

« Applatissement »

Page 18: OpenMCQ Slides

Correction & notation (2/3)

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

Transposition

Modulo 20/5=4

« Applatissement »

Page 19: OpenMCQ Slides

Correction & notation (3/3)

2. Fonctionnement du logiciel2.1 Pré-traitement de l'image2.2 Lecture du fichier XML2.3 Correction & notation

La case est-elle cochée ?Si moyenne des couleurs < 130 alors oui

Comparaison avec le corrigé Simple comparaison cochée/non cochéePuis attribution des points avec données contenues dans les balises <mark> de chaque question.

Page 20: OpenMCQ Slides

3. Cheminement du projet3.1 Pourquoi ce projet ?3.2 Etapes du développement3.3 Enrichissement

Cheminement du projet

Page 21: OpenMCQ Slides

Pourquoi ce projet ?

3. Cheminement du projet3.1 Pourquoi ce projet ?3.2 Etapes du développement3.3 Enrichissement

Plusieurs raisons :- ambitieux- permettait aborder d'autres sujets que ceux vus en cours (Qt, C++, bases du traitement d'images...)- il peut servir à l'Ecole

Page 22: OpenMCQ Slides

Etapes du développement (1/2)

3. Cheminement du projet3.1 Pourquoi ce projet ?3.2 Etapes du développement3.3 Enrichissement

Pré-traitement de l'image- partie la plus longue et la plus difficile- beaucoup d'imprécisions qui ont du être rectifiées par la suite- partie indispensable pour la suite du projet !

Correction du QCM- plus rapide que la précédente

Page 23: OpenMCQ Slides

Etapes du développement (2/2)

3. Cheminement du projet3.1 Pourquoi ce projet ?3.2 Etapes du développement3.3 Enrichissement

Découverte de Qt- difficile (C++ nouveau langage)- spécificités du ToolKit

Conception de l'interface graphique- certains points à approfondir

Phase de test- essai en classe

Page 24: OpenMCQ Slides

Enrichissement

3. Cheminement du projet3.1 Pourquoi ce projet ?3.2 Etapes du développement3.3 Enrichissement

Autonomie - C++- Qt- XML- recherche documentaire autre

Gestion d'un gros projet - plusieurs fichiers sources- MakeFile

Page 25: OpenMCQ Slides

Mais il en reste encoreChanger l'ordre des réponses, éditer ses QCM dans un traitement de textes, statistiques, ...OpenMCQ ... OpenReader ?

Beaucoup de choses ont été faitesLes bases sont posées. Les choix techniques ont été faits (et justifiés !).

Ouvrages / SitesProgrammer avec Qt de Matthias Kalle Dalheimer (O'Reilly)Débuter avec Qt 3 de Jean-Luc Biordprog.qt.free.fr

Page 26: OpenMCQ Slides

Remerciements

Nous tenons à remercier ...

M. Hubert Wassner pour son aide et ses idées détonantes ! Les élèves de 2A et 3A qui ont bien voulu répondre correctement à la série de test (Couraud Benjamin, Lecat Thibault, Eckersley Hadiren, Hillaire Stephane, Mathieu Kevin, Maffon Alida, Sorolla Aurelien, Mauras Jonathan, Guiraud Bastien, Grandry Jean-Noel, Gobin-GAllon Killian, Renevey Hugo, Vallee Igor, Garreau Vincent, Robert Teddy, Ait Ouali Linda, Lim Lara, Noirot Thibaut, Colindre Alexandre, Azzopard Adrien, Spaniol Bastien, Le Prado Geoffroy, Bouffard Fabien, Titiaux Florent, Nogmoyi Serge, Feyssaguet Marc, Younan Stephane, Garrancher Benoit, Lony Eva, Naveau Cecile, Tetard Laurent, Harivel Anthony, Set Sotha, Le Bourgeois Guillaume, Travaillou Cyril, Sordoni Alessandro, Menegoz Alexis, Lespagnol Florian, Talon Vincent, Viaris Geoffroy, De Pardieu Vianney, Vuillaume Bendit, Camaret Arthur et Berhault Ceidric)..

Sébastien Delprat pour avoir prêter son matériel informatique.

Page 27: OpenMCQ Slides

En quelques mots...

OpenMCQ est :

- Open Source et Libre ;- ouvert ;- évolutif ;- utile ;- original ;- à finir ...

Page 28: OpenMCQ Slides

Merci de votre attention.