From 2961c5736232eecaadf804bd8ff70e4044392024 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicolas=20M=2E=20Thi=C3=A9ry?= <nthiery@users.sf.net>
Date: Sun, 10 Sep 2023 14:24:55 +0200
Subject: [PATCH] =?UTF-8?q?Pr=C3=A9paration?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitlab-ci.yml |   3 ++-
 .gradebook.db  | Bin 200704 -> 200704 bytes
 TD.md          |  42 +++++++++++++++++++++---------------------
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5ca424e..2e5ca08 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,10 +2,11 @@ image: gitlab.dsi.universite-paris-saclay.fr:5005/info111/computerlab/image:late
 
 variables:
   ASSIGNMENT: Semaine1
-  STUDENT: $CI_PROJECT_NAMESPACE # CI_PROJECT_ROOT_NAMESPACE is GitLab 13.2 only
+  STUDENT: $CI_PROJECT_ROOT_NAMESPACE
 
 autograde:
   script:
+    - STUDENT=`echo $STUDENT | sed -e 's/_travo//;s/_/./'`
     - info-111 student_autograde $ASSIGNMENT $STUDENT
   artifacts:
     paths:
diff --git a/.gradebook.db b/.gradebook.db
index 08aa612949bcca9cb31118394e14f8bfdd6d3f0d..e551af62008ae036385296e36efc90e77e7c50e5 100644
GIT binary patch
delta 1592
zcmYLJTWl0n7~cQP%+6kBc13!DZrdGTTcxEiv$M08LX1#Ru?|}n<l+OkJ3DI(p&BII
zY=w<T8nDo211BM^VvN^xvD;z>qaiWzK_j*{NUYI90Uy+mh{hMXXgqrc!<kIZ|9|se
z&iT%F=I~kJ@L6FX0OtqmJK%ijxl4ywc7}VolrOS{nIqU)&FS;>c^G(*#?QQdsTQio
zpC3Nv_g1&CwK}}eoi+Ctrgli<^~IZOpla;)*KTOX=SCm|iNYUuLR>t==zt#>1_@%g
zp-Av(Vf$PNG~CcnoJipV;;4mh=R#bVhRVGpRKcanSGlmN9D)_&>GE5ZvcQ4rN~oM)
zZ-NM25+2|{aK&v%y$_LI!z37@c&d`4$s{L8JhF|Yu88evwx`-2t+&(_wmn*EsY|iF
zFpUHm&pAPc6;>+`pDl1E9S%q9)7GsZkRB;~v572r1HMTnu8Z!Z_cD?oiQAgVhxIsB
znRIJkGZfePguUWXajV!O+!ZE-v!(oF0^ZvLtz3ZBT@83qKS-Wk>D@cCFYfDJR)@dq
zfi_r(|E)|5@UmWL<7#Q($uT71S9`(D)l~e#qh-k&>4j5%2vA<@D6b3e^SZ$1wYI`5
zS3_|)k0dL20z~8!dc;klEDFM}!k3j*tr2j~5HvACq~rb(kl4kINH0v>Aw~m%c1$7(
zEw0DDVOYWh2(YLK1gNt%55pEe1Z^2KQW-SRUQ`D4whRJP26csWIb<C#!hydUMPxd}
zUBXA+jh@%sx7<~(E&N5U%)ZV1j_x9}l<z>FOf#n$tNbo<dzdP|jQLTt#@`309Jd`q
z|39VtJG@o4kkhr&H|nT!?stf<h&94FVV(E7_kg#`Gvax|eZzgw{h+T?yy^egzuhnT
zK6icLddXGKf5q?NCFdpQ{!)IGlTWpCI?)>4JN{t;Eq5j;P@w>~PNL-y$InipjYMtd
zCQ%BdqWH~Gw9%>AX<LctaczmDMJhm$o-5v2Lam@;TtZ2!WgJbhd~P|X$4HyQLnPia
zf!>=>lqHatj%1i77pCSUERLa8r(zeY+!MT=07RF^#!wfmz(0+lq)#MS471tczQ7fk
z&87U440B{t(%N$wZ9+nyYrR|dH@HqDbR8?rAX$H3L5+x&$iVZbQ8(Uw6-DsaG<v^c
z$)R>KWLed;tf87lI+szkxEhfSBcUnrTqc&yC<%J)Ja4SkX=$ul-~Wi}8N246KcmNO
zD?Wo(+t$Gu^oVVJI)gfF>z^64mReTFRYZ1{FwC^7MY2jdBFBxe77xd>ayBiisuGJw
zGbZhMdKNi--#DNSIpG>yfI;>ou9`&yg98uY{@;)XUztTu;SXogBGB>b>*yKs*Qxx-
z$Thuo9X0b^&8%N1XHmiUBz5Rjmteisb_3NQNDk&Z@gRxiQtfO^$3Ztlt=qq#s(^=K
zw>i9*dCYDr<vUs7=*kq`{_!ATcDRW!dxmAEz~*zv$(*5lE+KSk;hd5U=TuEmGO>(d
z#-dt0k(14Y5tXAEBWKgum)Jn-oeWr`Jkxov&@wkuO$*^}H`8ZZOFYc9Z9VK|x}~U^
z&17??A!p>Y8B;VvQDgC(sVEUmG1aVmuY60FErecc*2}ap_>hm0al4;6Dj8vNx^gCF
Zs755BnUP3T38&*xvS`&*GEtlQ{{U@AzT*G@

delta 1492
zcmYLJeQXnD7{BMeUfb)gy=^TFg|X|_b|2la*WUGm7$f^&7;?eD1T;~(_EuvIBf|vL
zY}p!NF5-lyz#DbbX^<G*40V5;i3xug14D7R7<DApeXtlbB%uGX8smF+0)PG9=Xsy|
zz0dP|p67-qx#3Cf)JB-hZ|Z=_;(@C}Hs)npshFF#6-vjj-ODIdN)-kN2s7^<zgh#{
znHMJB<SV=_wi*Rq?9+N*Da=1F%xs#z(GE>t+_}O+EB<^60uV0Tz8hd#0<;3SasmWs
z#<kPL-&A;REdY(Uc8nOI!Y9NC7QSB#Faa|(GDt!jaM8G}FFaZffPY3Ue_+r812Jbf
z#_&oIBr_#^iUH2qV!2`uT;#0@5)4gv-uR|5LcXbkxDn9o3|W?JSwYJ(`I?;p%QC5&
zoeh>1H6x)Ouh}62em(4fuQu4bD2fWV>$mEFys-mc3_^hEHcMEnpas~Dogq>}7j844
z6Yn;lLq8gV=_fqy5%+#~3-=E<$4zoain&e>9~po!<FhHwTI?SK!F5nQ{E~L)XkV)r
z|1bb;P>ugJpbEDR5~#$_5MX#CzVLWi(5D9B3=ck2POm9v^#eJpEIBJpIeEQ21|ssf
zd)yH>$KB+<Avp{bbL|`+7>6Le0V#Os5)y3nHApGU-4#&%di>`&G{8FSnSch`M*{rQ
zK>S{P?*#1QVT0B28nff;A9Q@3)p4KMac@B_2lNxu@ao^|Sf)(54|1PY>~X!$-eP^u
zeU6Jvv44fp%O4}wMK@97*l_{1^ViWRO2F@M20E!b)ObGE>Db-GC}aZ66!7iKXbYL8
z&9i8aJ!JUnO!Y9HMPYl;bQGr61blNAwV+)Ad~psvNv4axMxY)aFu;$C*U&D#`U;x2
z>17?+onF#eyZZ*kPx1SCo9BXOr~5`Rcg^j{Zef%Jd3typ1nina=h5y~{Mse72f}!c
zfW5^^?Ur%hO;WQrTMlFX@q3q1o5xMKX}X_czh!3W{$ege)5m(c^rwGBJ&1c_sFPLr
zTIbu1ih{)u2>SJ(&}IZIF8_l12;>)0D}HAIeP*2>@o!COqLzxOVy`O8YAT`1lBmj&
zlok^c@mM;WGIxS|E7oBWW1bN2HHcTQqcwwg<yW+wKx+wYBhX($j}e$Dp$-CTCDaA1
z-tikEJDF59NlK<<IW4BuWF(tTkw>#)Z&J>v(X49jh;ViZ**)hd>Kr_b?63%5LLU2;
z&?$U!6*0JO8Tp|Df478sz=|h(v27VWg-@@Nn;kg6j6#m?kd0UV-*2)-i^K<AdfN(G
zkKjl?cNmZTfm}GqLPWo_ihLWZ9n=C<@w4N+t&fc6vv7!7$mhP+dp|;FX>LT`VHSSE
zOA4O|lERPM=y@Q;nNp6}>G!R(xH*}~X0n-RRL*FrL?)S(6Y1WVl!$4msFqBdI=V*N
zx=p&1wEm%k-g%#A6H7mIkF%GhM~P~Gv9#^}eXxS=6C!dZ5|w35jwU5limO^ei$~I`
z7>`JDDwehWXs*%5?bZw&)k_t08-0&<D^HIIDJdD3#JHBxGKsV#iP=;(CTgM-7c*oI
JA{jHw{{V35r}Y2;

diff --git a/TD.md b/TD.md
index 8a3b634..c74f692 100644
--- a/TD.md
+++ b/TD.md
@@ -24,7 +24,7 @@ semaine sur l'autre.**
 
 :::
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "8ad448955b1ba80fb9a1ef1e85ca2fa2", "grade": true, "grade_id": "1", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9cea354d1a408c25828d0da0331786be", "grade": true, "grade_id": "1", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 :::{admonition} Exercice : Modélisation d'un problème et notion d'algorithme
 
@@ -43,12 +43,12 @@ se retrouvait seule en présence du chou.
     -   `décharge(objet)`
     -   `traverse()`
 
-	**Indication :** Ne cherchez pas à résoudre le problème de tête;
-	au contraire, l'objectif est d'apprendre à raisonner sur papier
-	pour aborder ensuite des problèmes plus complexes et pouvoir
-	transmettre ce raisonnement. Cherchez une manière de représenter
-	l'état du système, et décrivez sur votre feuille comment celui-ci
-	évolue au fur et à mesure des instructions.
+    **Indication :** Ne cherchez pas à résoudre le problème de tête;
+    au contraire, l'objectif est d'apprendre à raisonner sur papier
+    pour aborder ensuite des problèmes plus complexes et pouvoir
+    transmettre ce raisonnement. Cherchez une manière de représenter
+    l'état du système, et décrivez sur votre feuille comment celui-ci
+    évolue au fur et à mesure des instructions.
 
     % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
@@ -61,7 +61,7 @@ se retrouvait seule en présence du chou.
 
 :::
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9d1d93a1ea55a97a541a509d31763bf9", "grade": true, "grade_id": "2", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "00355dc3ecafb358340cc9518fb7db19", "grade": true, "grade_id": "2", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 ::::{admonition} Exercice : Modélisation d'un problème et notion d'algorithme
 
@@ -75,16 +75,16 @@ cruches.
     d'instructions, puis donnez une suite d'instructions permettant
     d'atteindre une solution.
 
-	**Indication :** Comme dans l'exercice précédent, ne cherchez pas
+    **Indication :** Comme dans l'exercice précédent, ne cherchez pas
     à résoudre le problème de tête.
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 2.  Peut-on trouver une suite d'instructions de façon que l'une des
     deux cruches contienne 1 litre? 2 litres? 3 litres? 4 litres? 5
     litres?  6 litres? 7 litres?
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 ::::
 
@@ -107,7 +107,7 @@ pour poser les opérations (pas de calculatrice).
 
 :::
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9486416dcdc7b441f9f31d1461cd1d0c", "grade": true, "grade_id": "4", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "c2cc90b7c3c445e44612a86f1d3e1b6e", "grade": true, "grade_id": "4", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 <s></s>
 
@@ -136,7 +136,7 @@ Voici un exemple d'algorithme pour le robot :
 2.  Décrivez un algorithme qui permet au robot de donner l'âge exact
     de l'utilisateur.
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 3.  Quelles difficultés avez-vous rencontrées pour écrire les
     algorithmes?
@@ -145,7 +145,7 @@ Voici un exemple d'algorithme pour le robot :
 
 :::
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "05c0255d5284a46ad7d60ba1604593f4", "grade": true, "grade_id": "5", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "63dbdfec0b0ae715c1378fe11451e3d0", "grade": true, "grade_id": "5", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 :::{admonition} Exercice : $\clubsuit$ Un peu de logique et de booléens
 
@@ -155,29 +155,29 @@ Voici un exemple d'algorithme pour le robot :
     -   `op1(a, b): (a ET (NON b)) OU ((NON a) ET b)`
     -   `op2(a, b): (a OU b) ET ((NON a) OU (NON b))`.
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 2.  Que constatez-vous?
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 3.  `op1(a, b)` est en fait une opération très courante en informatique;
     elle a même un nom. Savez-vous comment on l'appelle?
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 4.  Écrivez une opération `op3(a, b)` dont le résultat est vrai si et
     seulement si le résultat de `op1(a, b)` est faux. Utiliser au plus
     5 mots `OU`, `NON` et `ET` dans l'écriture de `op3(a, b)`.
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 5.  Expliquez pourquoi cette opération permet de déterminer si deux mots
     booléens sont identiques.
 
 :::
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9c87fcfc225cd97c8857be3473d92d8b", "grade": true, "grade_id": "6", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "52f1d2f3511b7bce76589f0e9c606bcf", "grade": true, "grade_id": "6", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 :::{admonition} Exercice : $\clubsuit$ Notion de test de programme
 
@@ -189,13 +189,13 @@ voulez tester si les résultats de ce programme sont cohérents.
 1.  Spécifiez le programme sans écrire l'algorithme : que va-t-il
     prendre en entrée? renvoyer en sortie?
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 2.  Donnez une série de tests dont vous connaissez le résultat sans
     calculs: situations extrêmes (par ex : tirer verticalement),
     symétries, ...
 
-	% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+    % REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
 
 :::
 
-- 
GitLab