Les challenges sont des petits exercices pratiques auto-correctifs (vous vérifiez vous-mêmes que votre solution est correcte).
Chaque challenge est une tarball compressée qu'il est possible de décompresser et extraire avec la commande tar :
$ tar xvf challenge_<num>.tar.gz
Un répertoire challenge_<num> est créé, et contient 3 fichiers :
un fichier texte
README.txtqui contient les instructions du ou des exercices.un répertoire
sandbox/qui contient les fichiers sur lesquels agir (modifier, ajouter, supprimer, déplacer, etc). Ce répertoire peut être initialement vide.un script Python 3 exécutable
autovalidation.pyqui doit être exécuté comme suit lorsque vous voulez vérifier si votre solution est correcte :$ ./autovalidation.py
La numérotation des challenges ne suit pas nécessairement la progression du cours et ne correspond pas à sa difficulté, mais juste à l'ordre de rédaction par un·e enseignant·e.
Les challenges suivants sont une expérimentation pédagogique, dont l'objectif est de vous sensibiliser à une équivalence importante que vous ne verrez qu'en L3.
Pour pouvoir les faire, il suffit de comprendre comment fonctionnent les liens symboliques. Mais certains demandent un peu d'ingéniosité.
Si vous arrivez à tous les faire alors vous adorerez le cours de théorie des langages en L3. Si vous n'arrivez pas à tous les faire, alors vous comprendrez l'intérêt du non-déterminisme et de la déterminisation.
Ces challenges ne font pour l'instant pas partie du cours, ne les faites que si vous avez fait tout le reste.
Les exercices sont censés être effectués depuis un shell sous GNU/Linux.
Pour télécharger un fichier sur le web depuis la ligne de commande, vous pouvez utiliser wget :
$ wget https://lipn.univ-paris13.fr/~monteil/sysadmin2022/challenges/challenge_<num>.tar.gz
Pour télécharger ou mettre à jour l'ensemble des challenges :
$ wget --accept .tar.gz --mirror --execute robots=off --no-directories https://lipn.univ-paris13.fr/~monteil/sysadmin2022/challenges/Cette commande télécharge le fichier
index.htmlpuis télécharge tous les fichiers.tar.gzqui sont plus récents sur le serveur que dans le répertoire, du coup si un challenge est modifié, il est retéléchargé.
- L'option
--accept .tar.gzlimite le téléchargement aux fichiers dont le nom finit par.tar.gz,- l'option
--mirrorpermet de faire du téléchargement récursif, c'est aussi l'option qui dit de ne pas retélécharger les fichiers qui sont plus vieux sur le serveur que chez vous,- l'option
-e robots=offpermet que wget ne se sente pas interdit par le fichiersrobots.txtdu serveur qui lui demande gentiment de ne pas faire de téléchargement récursif,- l'option
--no-directoriesévite de créer des répertoires emboîtéslipn.univ-paris13.fr/~monteil/sysadmin2022/challenges/comme c'est le cas par défaut pour les miroirs (c'est en général utile pour éviter que 2 fichiers avec le même nom apparaissant dans des répertoires différents soient écrasés, utile aussi pour pas que les liens relatifs dans les pages web soient cassés).Vous pouvez faire un
man wgetpour voir l'étendue des options dewget.
En cas de blocage total (plusieurs heures de recherche), vous pouvez contacter un·e enseignant·e, mais ne vous refilez pas la solution, ça gâche le plaisir de trouver.