Correction de Copies Assistée par Ordinateur

VERSION  2 - 23/12/05

Martial TARIZZO (e-mail : tarizzo@metz.supelec.fr)


Sommaire :

 


Présentation

Systèmes d'exploitation

CCAO est un programme d'aide à la correction de copies, écrit en Smalltalk (VisualWorks 7.3.1nc, de Cincom) et fonctionnant sous :

Son apparence est configurable (Mac OSX aqua, Mac OS9, Motif, Windows) pour s'intégrer au mieux dans chacun de ces environnements.
Pour apprécier cette fonctionnalité, les captures d'écran qui parsèment cette documentation ont été réalisées sous XP ou Linux, avec des apparences différentes (le système d'exploitation et l'apparence choisie sont indiqués à côte des images).

Licence

Bien que ne pouvant pas être qualifié de "logiciel libre" (le code source de la machine virtuelle Smalltalk n'est pas fourni en standard), l'environnement de développement VisualWorks 7.3.1nc est gratuit pour toute utilisation non commerciale (nc = non commerciale) ou pour toute utilisation éducative. On dispose alors du code source de toute la machinerie Smalltalk.
Le CD d'installation de VisualWorks 7.3.1nc est téléchargeable librement sur le site de Cincom.
Voir : http://Smalltalk.cincom.com

CCAO reprend les termes de la licence VisualWorks nc : le code source Smalltalk de CCAO est fourni, et l'utilisation du programme est libre dans un cadre non commercial.

Retour au sommaire


Fonctionnement général du programme

L'activité de correction de copies se déroule généralement en plusieurs phases :

Le rôle de CCAO est d'aider le correcteur dans les trois dernières phases.


Les pages du corrigé étant numérisées ou capturées à partir de leur affichage sur l'écran dans n'importe quelle application, la création du barème permet de définir les zones pertinentes pour toutes les questions, en y associant la note (ou les notes) correspondante(s) ainsi qu'un commentaire éventuel.

Lors de la correction des copies, le programme affiche à l'écran l'ensemble des informations provenant du barème nécessaires à la correction de la question courante (zone pertinente, note, commentaire).

L'attribution de la note est faite alors par le correcteur (c'est bien dommage qu'il faille encore travailler ;-), l'intervention avec le clavier étant réduite au minimum (en particulier pas de frappes de notes)
Le programme permet donc de "naviguer" entre les différentes questions en attribuant une note et en calculant totaux et sous-totaux, en ne présentant à l'écran que le nécessaire à la correction de la question en cours (plus de barème à apprendre par coeur, de nombreuses feuilles de corrigé accrochées au mur devant le bureau, ...)
Le résultat de la correction est exportable comme fichier CSV (fichier texte délimité), permettant son exploitation dans un programme externe de type tableur.

Enfin, dans une dernière phase, une exploitation statistique rudimentaire est offerte, permettant de calculer moyennes, écart-type, et de visualiser graphiquement les performances globales des étudiants (histogramme, taux de réponses justes, fausses ou absentes). Les résultats graphiques et numériques sont exportables vers d'autres programmes, permettant ainsi la mise en forme d'un rapport de correction.

Retour au sommaire


Installation

L'installation se déroule en 2 étapes :

Copie des fichiers

Pour installer CCAO, il faut d'abord décompacter l'archive de distribution dans un répertoire nouveau et vide de préférence (en activant la création des répertoires inclus dans l'archive).
On se trouve alors en présence des fichiers fondamentaux suivants :

Lancement du programme

Le principe est simple :
il faut lancer le fichier exécutable de la machine virtuelle contenu dans le répertoire « bin »en lui fournissant le chemin vers le fichier CCAO.IM.

La technique à utiliser dépend du système d'exploitation utilisé.

Linux

Il suffit d'écrire un script Shell (fichier texte exécutable).
Exemple de script, avec CCAO installé dans le répertoire /mnt/hda2/ccao (répertoire accessible en lecture/écriture/exécution) :

#!/bin/csh
cd /mnt/hda2/ccao # répertoire initial de CCAO
bin/linux86/visual -nologo ccao.im

Explications :

cd /mnt/hda2/ccao # répertoire initial de CCAO

Le répertoire initial est celui dans lequel le fichier des préférences sera sauvegardé (voir plus loin pour une description de ce fichier, et les informations techniques pour plus de précisions sur son répertoire qui doit être accessible en lecture/écriture)

bin/linux86/visual

est le chemin vers la machine virtuelle. "visual" est un fichier binaire x86 qui doit être rendu exécutable. Ici, il est relatif au répertoire initial, mais il pourrait être absolu (ex : /opt/ccao/bin/linux86/visual). Le répertoire doit évidemment être accessible en lecture/exécution (l'écriture n'est pas obligatoire)

-nologo 

pour ne pas afficher le logo Cincom au chargement (de toute façon, pas inclus dans la distribution de CCAO)

ccao.im

chemin vers l'image. Ici, il est relatif au répertoire initial, mais il pourrait être absolu (ex : /opt/ccao/ccao.im). Le répertoire doit évidemment être accessible en lecture (l'écriture n'est pas obligatoire)

Remarques :
(1) – un fichier script prototype est fourni dans l'archive, à adapter en fonction du répertoire d'installation.
(2) – il est possible de se passer de script : faire un « drag & drop » du fichier CCAO.IM sur Visual. Le répertoire initial est alors le répertoire Home de l'utilisateur courant (sous KDE)
(3) – ou enfin, associer les fichiers de type « .IM » à l'application Visual. Le répertoire initial est alors le répertoire Home de l'utilisateur courant (sous KDE)

Windows

Il suffit de créer un raccourci reproduisant les consignes ci-dessus, donc ayant les propriétés suivantes :

Cible : la ligne de commande.
Par exemple, si CCAO est installé dans le répertoire f:\ccao, on aura
F:\ccao\bin\windows\visual.exe -nologo F:\ccao\ccao.im

Démarrer dans : le répertoire initial de CCAO

Et c'est fini !




Remarques :
(1) – un raccourci prototype est fourni dans l'archive, à adapter en fonction du répertoire d'installation.
(2) – il est possible de se passer de script : faire un « drag & drop » du fichier CCAO.IM sur Visual.exe
(3) – ou enfin, associer les fichiers de type « .IM » à l'application Visual.exe

MacOSX

Après extraction de l'archive du programme dans son (le répertoire Applications/CCAO par exemple convient très bien), il suffit de faire un « drag & drop » du fichier CCAO.IM sur l'application Visual.app, ou d'associer les fichiers de type « .IM » à Visual.app (un double-clic sur l'image lance alors le programme). Un alias sur le bureau complétera alors l'installation.

Le répertoire initial est alors celui de l'utilisateur (comme sous Linux)

Remarque : pour les Mac équipés d'une souris à un seul bouton, le clic-droit mentionné dans toute la suite de cette documentation est obtenu par Ctrl-Click

Désinstallation

Rien de plus facile : supprimer le répertoire d'installation, et les scripts/raccourcis/alias créés.

Retour au sommaire


Lancement

La fenêtre du lanceur présente les différentes activités possibles.

Lanceur CCAO

  (XP-Mac OS9)

Les boutons les plus importants sont ceux de la rangée supérieure, dont le fonctionnement est détaillé dans les paragraphes qui suivent.

Les autres permettent :

Retour au sommaire


Réglages

La fenêtre de réglages comporte 4 onglets. Le programme fixe une valeur par défaut à toutes les options accessibles, ce qui permet en général un fonctionnement correct. Ces valeurs par défaut seront notées entre [] dans les paragraphes qui suivent
En cas de problème, modifier une de ces options peut arranger les choses...

Général

  (Linux-Mac OSX)

- Le répertoire par défaut est utilisé pour l'ouverture des boîtes de dialogue de recherche/sauvegarde des fichiers barème et correction. Il est commode de pointer ici un répertoire de travail. [défaut : calculé par CCAO en fonction du répertoire de démarrage du script ou du raccourci, du répertoire de l'image ccao.im et du répertoire de la machine virtuelle]

- le navigateur Internet est utilisé pour demander l'affichage de l'aide à partir de CCAO.
[Windows : C:\Program Files\Internet Explorer\iexplore.exe ; Linux : firefox ; MacOSX : safari]

- l'apparence choisie pour les fenêtres du programme (sauf celle du lanceur qui est toujours en Mac OS9)
[défaut : Mac OSX Aqua]

barème

  (Linux - Motif)

- Images capturées réduites en 256 couleurs : pour minimiser la taille des fichiers barème, la profondeur de couleurs des images capturées depuis l'écran peut être réduite (au détriment de la rapidité d'exécution). Pour du texte en noir sur blanc, la différence est minime. [défaut : coché]

- pourcentage maxi de bonus/malus [défaut : 10]

- valeur maxi d'une question [défaut : 5]

Correction

  (Linux - Mac OS9)

- Liste des candidats par défaut [défaut : vide]
Cette liste est la liste de candidats par défaut lors de la création d'une correction. Si on modifie la liste des candidats lors de l'utilisation du module de correction, cela ne modifie pas cette option (la prochaine correction créée utiliser toujours celle définie ici)

- Exportation
Lors de l'exportation d'une correction au format CSV, il est nécessaire de fixer le séparateur des valeurs et le séparateur décimal pour rendre l'importation du fichier texte dans le tableur utilisé (Excel, Open Office, ...) la plus commode possible.
[défaut : le ";" est le séparateur des valeurs, le "." est le séparateur décimal]
L'exportation du CSV peut être automatiquement réalisée à chaque changement de candidat, et lors de la fermeture du fichier de correction [défaut : coché]

Exploitation

(Linux - Win 98)

La couleur des barres affichées dans les histogrammes présentés dans le module d'exploitation est réglable dans cet onglet. Pour régler une couleur (réponses justes/fausses), il suffit de choisir la couleur dans la palette en cliquant sur le petit carré correspondant (ou de la fixer en agissant sur les curseurs).
Cliquer ensuite sur le bouton coloré choisi en dessous de la palette.
Les couleurs par défaut sont Vert (justes) et Rouge (fausses)

Le réglage du seuil d'affichage des questions selon leur score (gras/italique) est réglable en bas de l'onglet (cf. le § Exploitation pour la description de ces affichages). Par défaut, ce pourcentage vaut 50%

Retour au sommaire

 


Première phase : Elaboration du barème

Un appui sur

b_bareme.GIF (1557 octets)

  lance alors l'élaboration du barème

Par défaut, le programme ouvre la fenêtre de conception sur un barème vide :

  (Linux-Motif)

Le menu "barème" permet la gestion des chargements/sauvegarde sur disque.

  (Linux-Motif)

Remarques :

Les autres menus, explicites, permettent la gestion des images et des questions du barème :

           (XP-MacOSX aqua)

Images

La récupération des images utilisées pour élaborer un barème peut se faire de deux façons différentes :

Les images obtenues par numérisation des pages du corrigé peuvent être dans un des formats suivants :

  • GIF (limité à 256 couleurs au maximum)

  • BMP Windows

  • JPEG

    Le format recommandé est GIF, suffisant pour du texte numérisé, se chargeant rapidement.
    A titre d'exemple, sur une machine relativement ancienne (processeur à 1GHz), le chargement d'une image de 1000x950 pixels dure environ :

    • GIF : 42Ko, moins d'une seconde

    • BMP : 2,8 Mo, environ 2 secondes

    • JPG : 220Ko, environ 6 secondes

    Devant essentiellement être affichés à l'écran, choisissez une résolution adaptée. Celle d'un écran étant de l'ordre de 96 dpi (points par pouce), une numérisation en noir et blanc (ou niveaux de gris, bien contrasté) de 100 à 150 dpi est généralement suffisante, produit des fichiers de taille raisonnable, dont l'affichage est possible sur la largeur de l'écran.

Les images obtenues par capture de l'écran sont dans un format propre à CCAO, conservées dans le fichier barème (images ayant la même profondeur de couleur que l'écran, comprimées par l'algorithme LZW (Zip)

 

Voilà ce que donne par exemple la capture d'une image obtenue à partir d'un fichier PDF affiché dans Acrobat Reader :

  (Linux-Mac OSX aqua)

Questions

Pour définir une question du barème, il faut :

En haut de la fenêtre figurent le total des points, ainsi que les sous-totaux éventuels. Ce derniers sont définis en cliquant avec le bouton droit dans la zone graphique affichant la dernière question d'une section. Par exemple, si les questions sont nommées A1, A2,..., A8 pour le premier problème et B1,...B5 pour le deuxième, définir questions A8 et B5 comme sous-total permettra d'obtenir deux sous-totaux (un pour chaque problème)
Remarque : la dernière question du barème est automatiquement considérée comme sous-total

Dans le cas (fréquent !) où la correction ne tient pas sur une page, il suffit de charger/capturer l'image suivante et de poursuivre la saisie du barème.

Pour enregistrer le barème, utiliser les entrées du menu "Fichier" ou la barre d'outils. Un fichier d'extension ".BAR" est alors créé, qui contient toutes les informations nécessaires (images compressées, zones de définition des questions, nom des questions, notes et commentaires)

Sortir alors de cette section du programme. Il ne reste plus qu'à attendre les copies...

Retour au sommaire


Deuxième phase : correction des copies

Le paquet de copies étant prêt à être corrigé, lancer le module de correction

b_correction.GIF (701 octets)

ouvrir le menu Fichier dans la fenêtre qui s'affiche :

  • Créer une Nouvelle correction vide à partir d’un fichier barème (*.BAR)

  • Ouvrir une correction déjà créée

  • Exporter la correction dans un fichier texte CSV

Des détails sur les fichiers créés sont donné plus loin.

Création d'une correction

Une correction est crée en utilisant les données d'un fichier barème.
La fenêtre de création à l'allure suivante :


Le nom de la correction est le nom du fichier correction qui sera créé dans le répertoire contenant le fichier barème. ici : agreg04.COR.
Le nom du fichier barème proposé est le dernier utilisé dans le module de création du barème.
Il est possible de modifier le nom du fichier barème ou de le rechercher sur disque en cliquant sur le bouton contenant "..."
La validation de cette boîte de dialogue crée le fichier correction et l'ouvre dans la fenêtre de correction.

Correction

(Linux-XP)

Dans la fenêtre de correction, on voit alors (en haut, de gauche à droite) :
(la copie d'écran correspond à la question affichée dans la section concernant l'élaboration du barème

La zone d'extraction correspondant à la question en cours est affichée au centre, la zone de sous-question éventuelle étant entourée par un trait épais.

En bas de la fenêtre sont affiché de gauche à droite :

REMARQUE IMPORTANTE
Pour pouvoir corriger commodément, toutes les manipulations se font à l'aide du clavier,
sous réserve que le focus soit sur la zone de correction (qui est alors entourée d'une bordure plus épaisse)

Il suffit pour cela de cliquer dans la zone de correction

Saisie d'un candidat

Pour commencer la correction d'un candidat, il faut saisir son nom. Appuyer sur Entrée (ou cliquer sur le bouton suivant).

La fenêtre ci-dessous est alors affichée. Taper le nom dans la zone Référence

Pour simplifier la saisie, il est possible d'utiliser une liste de noms prédéfinis, affichés alors dans une liste, dont l'élément sélectionné est en accord avec les caractères déjà présents dans la zone Référence.
Appuyer alors sur la touche "flèche vers le bas" du clavier pour pouvoir se déplacer dans la liste. Un appui sur Entrée enregistre le candidat sélectionné.

  (XP-Mac OS9)

La modification de la liste est obtenue en cliquant sur le bouton Liste. Initialement, la liste est remplie à partir de celle définie dans la fenêtre de réglage du programme.

Le bouton parcourir permet de choisir un fichier texte (une référence par ligne) pour fixer la liste des candidats pour la correction en cours..

Touches de correction

L’attribution des points pour une question se fait à l’aide des touches de déplacement du curseur quand la cible des entrées clavier est la zone de correction.

Voilà les touches actives :

Modification du barème pendant la correction

Le menu Question permet d'ouvrir une boïte de dialogue permettant la modification du barème et du commentaire associés à la question en cours. 

modif_questions.png

Pour modifier le barème, entrer la nouvelle note dans la case barème. Pour mettre à jour les notes des copies déjà corrigées, sélectionner la case Mise à jour des copies [cochée par défaut]. Le tableau présente les anciennes notes dans la première colonne, tandis qu'il est possible de choisir dans chaque case de la deuxième colonne la nouvelle note.

La validation par Ok sauvegarde le fichier barème et le fichier correction en cours.

Fichiers créés et sauvegardes

Le fichier de correction "xxx.COR" est automatiquement sauvegardé à la fermeture de la fenêtre de correction (ou au chargement d'une nouvelle correction dans la fenêtre de correction). Ce fichier est un fichier binaire, adapté à CCAO, contenant les notes et la liste des candidats..

Il est possible d'exporter la correction dans un format texte adapté au chargement des notes dans un tableur (Excel, Open Office Calc, ....). Cette sauvegarde peut être manuelle (menu fichier) ou automatique (à chaque sauvegarde du fichier de correction, et à chaque changement de candidat, voir la fenêtre réglage).
Ce fichier texte est au format CSV (Comma Separated Values) : un candidat par ligne, notes séparées par un séparateur (en général la ",")

Pour pouvoir s'adapter facilement aux différents tableurs, il est possible de fixer pour l'exportation par CCAO :

dans la fenêtre de réglage du programme.

Référence des menus

Fichier

Candidat

Question

Retour au sommaire


Troisième phase : exploitation des résultats

Le module d'exploitation permet l'analyse des résultats à partir d'un fichier de correction (*.COR).

Au lancement, une boîte de dialogue de choix de fichier s'affiche automatiquement, présentant par défaut le dernier fichier correction utilisé.

La fenêtre présente trois onglets détaillés ci-dessous.

Candidats


rem : cette image correspond à des données réelles... les noms des candidats ont été brouillés : ce n'est pas un bug du programme !

On retrouve ici les notes obtenues pour tous les candidats, avec regroupement possible par sous-total.

L'histogramme de répartition des notes est présenté sur la droite de la fenêtre, avec réglage possible du nombre de classes. La couleur des barres est déterminé par le choix retenu dans la fenêtre de réglage du programme (couleur des réponses justes)

Des informations statistiques élémentaires sont affichées dans le bas de la fenêtre : moyenne, écart-type, ...

Sections




Cet onglet présente pour chaque section du barème (sections définies par les sous-totaux) :

Deux affichages sont proposés :

Il est facile à partir de ces graphiques de détecter les questions ayant posé le plus de difficultés aux candidats.

Les couleurs des barres sont réglables dans la fenêtre de configuration du programme.



Questions




Cet onglet permet de préciser les résultats présentés par section dans l'onglet précédent. La liste des questions est présentée à gauche de la fenêtre, avec les attributs suivants :

ces attributs peuvent évidemment se cumuler.

La partie droite de la fenêtre reprend les barres représentant graphiquement les résultats, ainsi qu'une zone de rappel de la question (même affichage que lors de la correction)

Modification du barème pendant l'exploitation

Le bouton Modifier... permet d'ouvrir la boïte de dialogue de modification du barème pour la question affichée. 

modif_questions.png

Pour modifier le barème, entrer la nouvelle note dans la case barème. Pour mettre à jour les notes des copies déjà corrigées, sélectionner la case Mise à jour des copies [cochée par défaut]. Le tableau présente les anciennes notes dans la première colonne, tandis qu'il est possible de choisir dans chaque case de la deuxième colonne la nouvelle note.

La validation par Ok sauvegarde le fichier barème et le fichier correction en cours, et réactualise le calcul des statistiques.

Retour au sommaire


Bugs connus

La liste des bugs n'est certainement pas exhaustive...

  1. Linux Ubuntu 5.10 : le lancement de l'aide provoque un crash violent (sans fichier de log). Provient de l'absence dans cette distribution du shell csh. L'ajout de tcsh via Apt (ou synaptic) corrige le problème.

  2. Crash de l'application sous Ubuntu 5.1 quand on utilise les apparences Windows 95 98/NT. Provient de polices absentes en standard dans cette distribution.

  3. Caractères accentués bizarres dans les titres des fenêtres sous MacOSX.

Retour au sommaire


Informations techniques

Les fichiers de travail de CCAO

Smalltalk a un fonctionnement identique à Java : une machine virtuelle interprète (ou plutôt compile en temps réel) un code intermédiaire (pseudo-code) indépendant du système d'exploitation, contenu dans une Image (*.IM)

Fichiers

Répertoires

Le code source

Dans le répertoire « source », on trouvera deux types de fichiers : des PST et des PCL

Les PST sont de simples fichiers texte (XML), contenant le code source de CCAO (fichiers indépendants du système d'exploitation). Difficiles à lire tels quels, il prennent toute leur valeur quand il sont chargés dans l'environnement de développement VisualWorks.

Les PCL sont les versions compilées correspondantes. Fichiers binaires contenant du code destiné à la machine virtuelle, ils sont eux aussi indépendants du système d'exploitation.

Voir le fichier texte (TXT) contenu dans le répertoire pour plus d'informations concernant essentiellement ledéveloppement de l'application.

CCAO.PCL
fichier binaire contenant le pseudo-code compilé de CCAO. Petit fichier indépendant du système d'exploitation.
Ce fichier est inclus dans l'image CCAO.IM de départ.
CCAO.PST
fichier texte (XML) contenant le code source de CCAO, indépendant du système d'exploitation.
Difficile à lire tel quel, il prend toute sa valeur quand il est chargé dans l'environnement de développement.

Mise à jour

CCAO est programmé de façon à permettre des mises à jour mineures, c'est à dire ne nécessitant pas d'ajout de classes/méthodes dans l'image CCAO.IM, hormis celles de CCAO lui-même.

Il suffit de placer dans le répertoire de l'image les versions mises à jour des deux fichiers suivants : CCAO.PCL et CCAO.PST

La version d'origine de CCAO.PCL est incluse dans l'image initiale (CCAO.IM), le mécanisme est alors le suivant :

Retour au sommaire


Annexes

Pourquoi CCAO est-il programmé en Smalltalk, et pas en xxx... ?

Motivations et résultats

Connaissant bien Scheme (et les limites des outils de développement disponibles gratuitement), mais ne connaissant Smalltalk que superficiellement, j'ai trouvé que CCAO était un bon « premier projet de taille respectable ».

Le résultat a parfaitement comblé mes espérances : l'environnement de développement est d'une richesse et d'une puissance rares, la programmation est un mélange permanent de création et d'apprentissage entremêlés.
Entrer dans un environnement Smalltalk, c'est changer de monde (par exemple, la notion de fichier source est quasiment absente du mode de développement : tout se passe dans un micro-univers dont il n'est pratiquement jamais nécessaire de sortir). De plus, il est très facile de naviguer dans l'intégralité du code (celui du système, de l'environnement de développement, du compilateur...) et de l'analyser/modifier en temps réel !

Tester l'application est de plus un vrai plaisir : l'ensemble des fichiers de développement (# 30 Mo pour l'image, machines virtuelles, fichiers « source » et « changes », etc...) tient aisément sur une clé USB de 128 Mo. Cette dernière, branchée sur une machine quelconque, me permet de lancer CCAO à partir de la clé. En cas de problème, je lance l'environnement de développement et débogue sur une machine dans laquelle je n'ai rien eu à installer...

Enfin, la communauté Smalltalk est particulièrement intéressante : les concepteurs de Smalltalk furent des visionnaires (ils ont créé les systèmes de fenêtrage chez Xerox, inspirant Apple et les autres), et il est bien possible qu'ils le soient encore...
Voir par exemple :

Pour conclure, voilà une présentation largement inspirée de http://fr.wikipedia.org/wiki/Smalltalk

Smalltalk est un des premiers langages de programmation orienté objet (créé en 1972 au Palo Alto Research Center de Xerox).

Les principaux concepts de Smalltalk sont :

Une caractéristique surprenante de Smalltalk est l'absence totale d'instructions de contrôles intégrées au langage: if-then-else, for, while, etc. Toutes ces instructions sont implémentés en utilisant des objets. Par exemple, les décisions sont prises en envoyant un message ifTrue à un objet Booléen, et en passant un fragment de code a exécuter si le Booléen est vrai. La seule chose intégrée par défaut est la syntaxe pour envoyer un message à un objet.



Bibliographie

Une documentation gratuite et abondante est disponible pour Smalltalk :



Remerciements

Retour au sommaire