1 / 54

L’école d’ingénieurs des sciences et technologies de l’information et de la communication

L’école d’ingénieurs des sciences et technologies de l’information et de la communication. JNEWS ( J ava N ew E valuation W eb S ervice) Une plate-forme de dépôt, test fonctionnel, et analyse de code source pour Travaux Pratiques en programmation. Le Conservatoire National

binta
Télécharger la présentation

L’école d’ingénieurs des sciences et technologies de l’information et de la communication

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. L’école d’ingénieurs des sciences et technologies de l’information et de la communication JNEWS (Java New Evaluation Web Service) Une plate-forme de dépôt, test fonctionnel,et analyse de code source pour Travaux Pratiques en programmation Le Conservatoire National des Arts et Métiers ESIEE,

  2. Présentation et plan Jean-Michel DOUIN (CNAM Paris)&Denis BUREAU (ESIEE) • I. Introduction • II. L’outil JNEWS • III. Technique et outils • IV. Bilan au CNAM • V. Bilan à l’ESIEE • VI. Perspectives & conclusion • Questions ?

  3. Contenu de la partie I. • I. Introduction • I.1 Présentation des intervenants • I.2 Historique de JNEWS à l’ESIEE • I.3 Démonstration • pour étudiant • pour enseignant

  4. I.1 Présentation des intervenants • Jean-Michel Douin : • Enseignant au CNAM Paris(Cedric) • concepteur et implémenteur de JNEWS • Denis Bureau : • Enseignant permanent à ESIEE Paris (A2SI) • Spécialisé en langages de programmation (M. OO)

  5. I.2 Historique de JNEWS à l’ESIEE • 1998/1999 et 1999/2000 : rendu par mail ! • 2000/2001 et 2001/2002 : dépôtbalbutiements : Brazil, requêtes SQL par les enseignants ! • 2002/2003 et 2003/2004 : dépôtlien vers page web avec applettes et sources (serveur cnam, mais consultation étudiants)- risque de copie sauvage dénoncé par les étudiants- risque d’ inaccessibilité des pages web par les enseignants • 2004/2005 : dépôtpage web avec applettes et sources sur serveur cnam • 2005/2006 et 2006/2007 : autoévaluation et dépôtjunit3 : sur serveur a2sidepot : sources par php (pas BdD) sur serveur a2si

  6. Démonstration depuis Bluej, outil submitter

  7. Soumettre ses travaux

  8. Le résultat des tests unitaires

  9. Bravo !!

  10. Bonne documentation ?

  11. Métriques de Berkeley

  12. Se situer …

  13. Dépôt des sources et du rapport • En fonction d’un agenda

  14. I.3 Démonstration 2007/2008 : junit3 et depot à l’ESIEE (serveur a2si) En résumé (étudiant / enseignant) : • Compilateur : erreurs de syntaxe • Tests locaux : fournis, ou pensés par l’étudiant • Tests distants : pensés par les enseignants • Consultations : historique, et résultats des autres • Visualisations : erreurs, assertion, source • Analyses des sources : outils pointilleux, verbeux • Dépôt des sources : TP rendu !

  15. Contenu de la partie II. • II. L’outil JNEWS • II.1 Objectifs & Principe • II.2 Côté enseignant : gains • II.3 Quelques statistiques • II.4 Quelques interrogations

  16. II.1 Objectifs • Enseignement de la programmation … • Cours magistral et éventuellement des Exercices Dirigés • Travaux Pratiques (pour de futurs professionnels) • Quels types d’applications ? • Combien de classes ? de lignes ? Complexité ? • Qualité des programmes ? • Tests fonctionnels, analyse des sources, documentation, preuves ? • Comment encourager les étudiants ? • Comment vérifier le travail fourni ? • Étudiants comme enseignants

  17. II.1 Principe • Principe initial de JNEWS • Auto-évaluation • Pour les étudiants : une aide à la réponse attendue • Pour les enseignants : mesures et statistiques • Enseignant/correcteur : mise en place de tests, d’assertions • JNEWS maintenant • Une analyse des sources et du code par des outils existants • Un dépôt des travaux effectués avec un échéancier

  18. II.2 Enseignants : gains escomptés • Identifier les échecs/réussites rencontrés afin de : • Reprendre une partie du cours, • Vérifier les acquisitions • Ajouter d'autres questions, • Retirer les questions triviales, • Ajouter de nouveaux tests, • Retirer certaines ambiguïtés de l’énoncé • ...

  19. II.2 Quelles mesures ? • Statistiques pendant et après la remise du TP • Le nombre d'auditeurs et leurs tentatives, • Les échecs et leur occurrence, • Le nombre d'auditeurs ayant réussi, en une seule soumission, • Les échecs les plus fréquents pour un TP donné, • Des ratios comme le nombre d'échecs sur le nombre de réussites, • Le source des assertions ayant engendré un échec, • Le nombre de réussites ou d’échecs pour chaque assertion • …

  20. II.3 Ratio échecs/succès : taux de complexité ? • Un exemple d’interrogation • tp7 et tp8 • tp9 en cours

  21. II.3 Aide à la correction d’un TP (1/2) • Par tp, le tp8 était facile

  22. II.3 Aide à la correction d’un TP (2/2) • Le tp7 était moins facile … • * Traces sur la console détectées System.out.print indésirables ?

  23. En détail ou une mesure de l’effort ? II.3 Tous les résultats par étudiant • Un bilan

  24. II.3 Assertions référentes du correcteur • Quels échecs rencontrés ? Quelles mesures ?

  25. II.3 Assertions en clair et statistiques • Soit pour cette assertion du tp7 :

  26. II.4 Accès aux échecs rencontrés pendant le TP • En temps-réel, un poste/portable dédié • Moniteurs de TP, vacataires • Accès aux sources des tests établis par le correcteur  Réponse immédiate • Aux doutes, aux questions de l’étudiant :« expected: "az" but was: "bz" »mais à quel test ?

  27. II.4 Interface administrateur

  28. II.4 Interface administrateur : agenda et outils • Interface extensible

  29. Contenu de la partie III. • III. Objectifs, technique et outils • III.1 Brazil et HSQLDB • III.2 Java, IDE, plugin : JDK6, BlueJ, Submitter • III.3 Tests et java : junit • III.4 Dépôt • III.5 Autres outils distants(pmd, findbugs, jass, esc/java, prolog, …) • III.6 Ajouter un nouvel outil • III.7 Sécurité, permissions

  30. III.1 Objectifs • Accessible depuis internet • Étudiants et enseignants, correcteurs et administrateurs • Assurer un couplage faible • JNEWS / Outils • N’importe quel outil, n’importe quel exécutable ? • Quel que soit le système d’exploitation ? • Sécurité, permissions ?

  31. III.1 Brazil et HSQLDB • Technologies utilisées • Serveur Brazil de Sun, 100% Java (Sun Public License) • Choix historique • Boîte à outils pour la construction de serveurs Web • Modulaire, léger, simple • BSL langage de script associé (cf. PHP, …) • HSQLDB, 100% Java (BSD License) • Base de données éprouvée (OpenOffice 2.0, Hibernate, …) • 20 classes développées + une vingtaine de scripts BSL • 2 JVM indépendantes

  32. III.2 IDE, plugin • BlueJ : • IDE avec Outil submitter intégré, • envoi des travaux au protocole HTTP • Via un simple formulaire

  33. III.3 Tests et java • Tests fonctionnels en « Boîtes Noires » • Outil www.junit.org ou www.httpUnit.org • Exemple : void test_ajouter_référent() { • liste.ajouter(3); // méthode ajouter de la solution de l’étudiant • assertTrue("ajouter est en échec ???", liste.contient(3)); // le test } ajouter est en échec ??? C’est le commentaire retourné à l’étudiant

  34. III.4 Agenda, soumissions et dépôt • Échéances gérées par l’agenda de JNEWS • Échéance rappelée à chaque soumission • Dépôt de la solution de l’étudiant • Un document HTML comme rapport de TP (avec ou sans applette) • Seul ou en binôme, • À temps, en retard …

  35. III.5 Autres outils distants implémentés • Autres tests unitaires (inspirés de jUnit) • HttpUnit, jWebUnit, • Pour Prolog (swi-prolog), • Analyse de sources • PMD, checkstyle, findbugs, jlint • Programmation par contrats • Jass3, ModernJass • Aide à la « Preuve » de programme • ESC/JAVA2

  36. III.6 Ajout d’un nouvel outil • Scénario pour un couplage faible JNEWS / Outil • Envoi du travail de l’étudiant • Exécution de l’outil côté serveur • Analyse de l’affichage résultant • Transmission des résultats d'évaluation 2. : Exécution de l’outil Une balise BSL <exec nouvel_outil paramètres> 3-4. : Analyse de l’affichage résultant Une nouvelle balise BSL <nouvel_outil paramètres> Déclenche un programme Java d’analyse de l’affichage et de calcul du résultat

  37. III.6 Table OUTILS_JNEWS pmdhttp://pmd.sourceforge.net/ checkstylehttp://checkstyle.sourceforge.net/ findbugshttp://findbugs.sourceforge.net/ escjavahttp://kindsoftware.com/products/opensource/ESCJava2/ prologhttp://www.swi-prolog.org/ …

  38. III.7 Sécurité, permissions • Exécution d’un « Outil » ? • À l’identique d’une commande effectuée localement • Exécution du programme d’un étudiant • Qui boucle ? •  délai de garde • Qui exécute des appels systèmes ? (fichiers, requêtes, …) •  SecurityManager en Java, • adaptable en fonction du TP ou de la question

  39. Contenu de la partie IV. • IV. Bilan au CNAM • IV.1 CNAM Paris(plusieurs unités, plusieurs années) • IV.2 Les centres associés CNAM(diffusion, utilisation locale, agrégation) • IV.3 Observations- sur étudiants (monôme, à distance)- sur enseignants

  40. IV.1 CNAM Paris • Programmation Avancée (niveau L3) (NFP121) • 250 auditeurs/an, 10 TP, plus de 10000 soumissions • « Il est fortement conseillé de faire les TP » • environ 150 auditeurs/an pour plusieurs UE en M1 et M2 • 20 auditeurs pour une unité M1 totalement à distance (FOD) • Écoles d’ingénieurs notamment l’ESCPI-CNAM.

  41. IV.2 Les centres associés CNAM • Un site JNEWS par centre associé CNAM • Gestion/soumissions autonomes • Diplôme national : même contenu et même examen • Exemple : NFP121 (Programmation Avancée L3) • Collecte des résultats des Centres Cnam, • Statistique nationale des tentatives aux mêmes TP, • Export en XML des journaux de JNEWS • Cf. projet ESIEE/IN4 en 2007 • par Aymen Boudrigua et Aymen Bouzouita

  42. IV.3 Observations • NFP121 : Côté auditeur ( cours/ED en présentiel, TP à domicile) • + Les tests/JNEWS deviennent l’objet de discussions animées  sur le forum • « je ne comprend pas, mes tests fonctionnent …  à la soumission, j’ai les problèmes suivants … » • + Motivation accrue, • + Interactions avec les enseignants en ED ! • - Critiques • Sur le canevas des classes imposé • Sur le nom imposé des méthodes  Créativité moindre

  43. IV.3 Observations • Côté correcteur • + Un cadre imposé des réponses attendues, • + Tests/JNEWS + rapport = correction facilitée (ou bien les tests réussis induisent une lecture plus rapide du rapport … en moyenne 120 TP à corriger par semaine !) • - Un test référent se construit sur au moins 2 années • + Acquis effectifs pour la poursuite de la formation

  44. Contenu de la partie V. • V. Bilan à l’ESIEE • V.1 IN413 passées (depuis 1999) • V.2 IN413 2007/2008 (junit3, depot) • V.3 OV5-SEJA 2007/2008 (junit3, depot) • V.4 Observations

  45. V.1 IN413 passées • Statistiques sur les 4 premiers TP 2006/2007686 soumissions junit3 :réparties entre 9h40 et 19h24, + 1 22h10    dont 368 avec 0 fautesdont 285 hors créneaux de TPdont 5 le week-end ( => à l’ESIEE !)43 soumissions pmd par 17 étudiants25 soumissions findbugs par 15 étudiants62, 62, 58, 57 sur 65 ont rendu leur TP 1, 2, 3, 4

  46. V.2 IN413 2007/2008 • 1735 soumissions (dont 850 succès et 135 exceptions) • Seulement 20 findbugs et 14 pmd • Et 525 dépôts (dont 450 à temps) • 67 (60) étudiants sur 69 ont soumis (déposé) 7 TP • groupe1: 456, groupe 2 : 478, groupe 3 : 649 • Tests unitaires pour • Applettes, graphique, junit • Clients et Serveurs Web junit, HttpUnit

  47. V.3 OV5-SEJA (COSI) 2007/2008 • 221 soumissions (dont 107 succès et 41 exceptions) • Et 60 dépôts (dont 38 à temps) • Tests unitaires pour • Applettes, graphique, junit • Clients et serveur RMI, junit • Clients et Serveurs Web junit, HttpUnit • Dépôt du projet

  48. V.4 Observations • Les étudiants travaillent !- pendant les 2h de TP : 611 dont 498- pendant les heures scolaires - TP : 1125 dont 738- 7h30-8h, 12h-13h, 19h-22h : 447 dont 188- 22h-2h20 : 109 dont 74donc 2/3 hors des TP et 1/4 hors heures scolaires • Les étudiants vont au bout de chaque questionet acceptent les remarques … de l’ordinateur !- [4, 1, 3, ] n’est pas acceptable- [4,1,3] est différent de [4, 1, 3]

  49. Contenu de la partie VI. • VI. Perspectives & conclusion • VI.1 Analyse des sources(générale ou particulière) • VI.2 Autres développements futurs • VI.3 Développement « en cours » • VI.4 Utilisations futures(à l’ESIEE / ailleurs ?)

  50. VI.1 Analyse des sources • Existant : PMD, FindBugs, CheckStyle, … :non adaptés à chaque questionExemple : « Certains attributs ne servent à rien. » • A faire : vérifier la méthode employée par l’étudiant pour résoudre une question, même s’il a 0 échec=> introspection Java et/ou décompilationExemple : « Pour résoudre ce problème, une HashMap serait plus appropriée qu’une ArrayList. »

More Related