Skip to content
Snippets Groups Projects
Commit bf3cf7af authored by Adeline Pierrot's avatar Adeline Pierrot
Browse files

Merge branch 'master' of gitlab.lri.fr:nthiery/wims-info

parents a6703121 a12de09a
No related branches found
No related tags found
No related merge requests found
......@@ -3,18 +3,10 @@ Pour le moment, la plateforme d'exercices interactifs pour `WIMS
l'enseignement de l'informatique. L'objectif de ce dépôt est de
développer collaborativement de nouveaux modules.
Le module `U2~coding~oefprogramC.fr/`_ contient un dérivé du module
éponyme déjà existant dans WIMS, avec quelques menues améliorations.
Modules:
Le module `test~coding~readingCppPrograms.fr/`_ présente à l'étudiant
des programmes qu'il doit lire et comprendre, afin de deviner quelle
sera la sortie, ou bien l'entrée appropriée pour obtenir 42. Les
programmes sont tirés d'une collection de programmes groupés par
thèmes. Contribuer un nouveau programme est simple: il suffit de
l'ajouter dans le répertoire idoine. Voir
`test~coding~readingCppPrograms.fr/README`_. Pour l'instant, la
collection est constituée d'exercices de C++, donnés dans le cadre des
cours d'introduction à l'informatique `Info 111
<Nicolas.Thiery.name>`_ et Info 121 de la licence MPI de l'Université
Paris Sud, mais l'infrastructure est conçue pour être généralisable à
d'autres langages de programmation.
- `U2~coding~oefprogramC.fr/`_: un dérivé du module éponyme déjà
existant dans WIMS, avec quelques menues améliorations.
- `Compréhension de programmes C++ <test~coding~readingCppPrograms.fr/>`_:
deviner l'entrée ou la sortie d'un programme
......@@ -86,3 +86,46 @@ You don't have permission to access /wims/ on this server.
Se créer un compte développeur
* A propos des modules WIMS existants exécutant du code
** Modules
Chercher sur programmation sur le serveur
*** U1/algo/progstring.fr
*** ... arithmetic
** Supporte: perl, c, pascal
cf. public_html/bin/c
** Infrastructure:
- Un type de réponse: wims/public_html/scripts/anstype/code
définit:
- comment l'utilisateur rentre la réponse
- comment traiter la réponse (ici exécuter le code dans un chroot)
- le retour: qu'est-ce qui est affiché, note, ...
Objectif: mettre à jour pour utiliser docker à la place du chroot / secure_execq
Voir aussi ~/wims.log/unsecure.
Passe par WIMS/src/Misc/wrap.c à un moment ou un autre
** Variante: public_html/modules/tool/directexec/ (en particulier var.proc)
Outil indépendant permettant à un utilisateur d'exécuter un
programme quelconque écrit dans un des systèmes suivant:
outil,software, language, pari, gp, maxima, octave, macaulay, yacas, gap, scilab, c, perl, sh, python, pascal, fortran,jmol, jsgraph, canvasdraw,graphviz
entrée: une chaîne de caractère contenant le programme
sortie: l'affichage du programme
À confirmer: nécessitait un patch sur le noyau.
Utilise _calc_exec de WIMS/src/calc.c.
Exécute une commande, dans un chroot s'il n'est pas de confiance.
TODO: mettre à jour pour utiliser docker
** Consommation de ressources jugées raisonnables
Cf. src/wimsdef.h
Cf. aussi wims/log/wims.conf: rlimit_cpu et
public_html/bases/sys/defaults.conf pour les valeurs par défaut
** Si on se connecte avec une certaine IP alors on est en mode debug / admin
Affiche en particulier des informations sur l'exécution
* si un programme est présent dans public_html/bin, il est exécutable depuis les oef.
* Serveur WIMS de test
https://wimstest1.di.u-psud.fr/
Module WIMS: Compréhension de programmes C++
============================================
Présentation
------------
Ce module présente à l'étudiant des programmes qu'il doit lire et
comprendre, afin de deviner quelle en sera la sortie, ou bien l'entrée
appropriée pour obtenir 42. Les programmes sont tirés aléatoirement
d'une collection de programmes groupés par thèmes. Pour rajouter un
nouveau programme il suffit de l'ajouter dans le répertoire
idoine. Voir ci-dessous.
Pour l'instant, la collection est constituée d'exercices de C++,
donnés dans le cadre des cours d'introduction à l'informatique `Info
111 <Nicolas.Thiery.name>`_ et Info 121 de la licence MPI de
l'Université Paris Sud, mais l'infrastructure est conçue pour être
généralisable à d'autres langages de programmation.
Étendre le module avec de nouveaux programmes
---------------------------------------------
Le répertoire `data/`_ contient des programmes C++. Le nom des
programmes est de la forme ``<theme>_nom.cpp`` ou ``<theme>_nom_input.cpp``.
Dans le premier cas, l'utilisateur doit deviner la sortie du
programme. Dans le second cas, le programme doit lire un entier entre
0 et 99 sur l'entrée standard, et l'utilisateur doit deviner lequel
donne 42; pour l'instant cet entier doit être unique.
L'infrastructure du module est implantée dans
`src/cpp/read_program.cpp`_.
Mise à jour de l'exercice sur WIMS
----------------------------------
wims.u-psud.fr -> serveur de l'université -> Accueil WIMS -> modtools -> login -> Restauration
Documentation générique des modules WIMS
========================================
Pour installer des exercices OEF dans un module :
1. Créer un module de type OEF
......@@ -28,16 +72,3 @@ en changeant le nom.
doit être répétée à chaque fois que les fichiers sources sont modifiés).
%%%%
Le répertoire data/ contient des programmes C++. Le nom des programmes
est de la forme <theme>_nom.cpp ou <theme>_nom_input.cpp.
Dans le premier cas, l'utilisateur doit deviner la sortie du
programme. Dans le second cas, le programme doit lire un entier entre
0 et 99 sur l'entrée standard, et l'utilisateur doit deviner lequel
donne 42; pour l'instant il doit être unique.
Mise à jour de l'exercice sur WIMS:
wims.u-psud.fr -> serveur de l'université -> Accueil WIMS -> modtools -> login -> Restauration
......@@ -35,8 +35,8 @@ target=variable io if loop function vector1D vector2D
#define TARGET_FR tableaux
#endif
\title{Comprhension d'un programme C++ (TARGET_FR)}
\description{Comprhension d'un programme C++ (TARGET_FR)}
\title{Comprhension de programmes C++ (TARGET_FR)}
\description{Comprhension de programmes C++ (TARGET_FR)}
\language{fr}
\niveau{U1}
\author{Nicolas M. Thiry}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment