OpenMCQ Slides

Post on 09-Aug-2015

22 views 1 download

Transcript of OpenMCQ Slides

Création et correction automatisées de QCM

Christophe Outteryckchristophe.outteryck@gmail.com

Laurent Delpratlaurentdelprat@gmail.com

Suiveur :M. Hubert Wassner

hubert.wassner@esiea.fr

Projet Pluri Disciplinaire ESIEAAvril 2005

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 ?

Organisation de l'exposé

1. Présentation du projet

2. Fonctionnement du logiciel

3. Cheminement du projet

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

Présentation du projet

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 »

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++

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.

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

Fonctionnement du logiciel

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é

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 :

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

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)

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)

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é

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

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>

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 »

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 »

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.

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

Cheminement du projet

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

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

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

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

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

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.

En quelques mots...

OpenMCQ est :

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

Merci de votre attention.