From 000b498ff8d211bee3473ccda0a25eacb84677cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicolas=20M=2E=20Thi=C3=A9ry?= <nthiery@users.sf.net>
Date: Mon, 30 Sep 2024 18:01:02 +0200
Subject: [PATCH] =?UTF-8?q?Pr=C3=A9paration?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gradebook.db                       | Bin 245760 -> 253952 bytes
 00-jupyter-les-types-de-cellules.md |  48 ++++++++++++++++++----------
 01-fonctions.md                     |  29 ++++++++++-------
 cours.md                            |   4 ---
 4 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/.gradebook.db b/.gradebook.db
index ae41f14af364e0ac4c1c4ac96d262606b4a632b4..89d09147a4b7306eef0c6aef2fa82a7a153b5927 100644
GIT binary patch
delta 7655
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

delta 6904
zcmai2d3+T`@}KUWnfK;SAR#0n<b@;<kmKb}NC-(t0*Vn-T)dYYFBrKm1%!}@%8{D~
z6e<SrUR*8%8HAwWz7J)&4{>GH{po7(hbJJvnwh}*-!Jcz>F-omS65e8^;B17n^9S5
zG=ysz9LHtizx~%3mr61=jd_1wSEE4Rq=#s8)q9l<O0Yaf8sk2tekpz592l_0-F#|c
zI3arTwMEydOA`wR6jo{Q=|Sr8tF_Yz-&|RnNL*AbjJ4=Hw;=s|-9$qC_ttNX#CcRb
zpVR*^Cg_{>XN_UT62mm2^?d!DaZ#^F`LVj+(<H!W*J-4`yy-ro`!_djC7OT2su+Qf
zVTA<9G3pVR4K3*cjb??Ce?+}Ul`ZjFHD_!$7B#D@(>1>*puk_fZZ2votq&w9CVWGR
z$fxiF3W-0vE}k&|u?_Je&EpGE#H9M{Hv>FxdIFYQ(Kk)4F>rLL#~Wrz9pv(I$}94Z
z^3(bs`Z;%^w#m4NYHv1%`MbA=kO}^j_InvF1sAYh#0BupNx$^v$xwgMjToW8)^*Ms
z#3SU}a5X}b2b<QB7%~Jrb=c(k!*0fq9RFZ^W<x!aguym%Wd-tP`PU;o1a4R(x`1ar
zHo^XgTQMXEp0!>&L%r2>^4B0O(7y?v0q_S(A%_3Pt&beTja-GIBpAN|$!=)GMsV44
zv|@)K+VG0SBlySPjv>6i@pepyq0v%z4E_0S&t|g6fbZ&9Mr^QP{FBp+7R!G!jT^?#
z#x>(R<7?xRan?9#95W6WyNuT6%Jyop*%Kg3Y+zL|v__K1*o1L7qW_cl5UjEHWaFbx
z3O;(@gO9ifeDn%z@sKM9eAvJuSW3Ly;w2{xIDVWCAO`N!haNtlPgms%XMAS7Z&Vng
zj6MdZpVr^k-qvPoBefptb#<S*LVZ@vRCVQw*?%%wqmc+WF_-is-QbV8q_+^x7fQh}
zv5t7;l1Zh$xG?M8|IAH~Xub9gg*g?-?1r^g<ASplWUj#5Jd<xbJaG&v=b<EOOF}b6
zN!Cb$uMvJUm1jcH)N!Sgo}XxWQCD>lr=7N3-H6u4>YLR?#suhENg_I2=RwtS9kaHE
zn1n>w9?{MAh;YXv!v5<Kq4plT?LF?;#Wgpm2Zq*@p8wD8_0&+67`dH8HMSZ{jmgIS
zMx4RxSM*kWg+5&$srS|0+EvgS&@5V;wo;p^jncg6+N))={WX$9S#MehQR|3@_K1VO
zyg{N#FPLpLJ)sF37K`1lGv?uY7>J&dEu<s5Z4c3)e-kpPw9p@Q3wsponYi8(Cc|sk
zgD(1U6R9TxJg^G+c<i3MfgmHp5#%=VQP_q(gurENLhRKX<+QQtdOS@gC@1hl8D?BG
zyRIe;GRAPMWmJFCFCO#SS~8N7-gZ#N*|xNUvX>3*pzP@cWvm@<h7)hP6K|RwZ>ke-
ziW6_L9d8nbSPa}+Plo>~&IBjUcqh)B<I0XR`?vxt&RRASvavU+AIM$hj3@O6wRhCV
zlpr}$S}IZZbFMF4_X|__IqVx&K$mh?{ec17*!+HhW}iiL1Ht&du$XQl2Gmv4HAIK_
z8tNw+?5m+as`DRJrNYz*>E-ysLRgo<Jm$Y@X*ucHUzP_B92lRH9-ms|ElMki_j*&3
z5=#?OlfA{h;<VCYU$QU73psmP6b(|~WCL4HWEj`Tmf)t`Ze-OM3pGnvBgR6cpDiXL
zeBfu-iD0f-%JK-|&99fS;e;?q0=8CiQ(K7_1K}HBFOYn=y@Cag@JyRg{#?<->Aq>6
zDKpAFrMv%DRz9(O+BDz9>7G*GjG3OYNfS$^mrt5F&CxcsBsnEMF}2j2l9H5^6z@$h
zF7_fwN>4~CEh#C1?7gf9jUw>$t8C5k6O8YsauuB3RXwlfDeIIj;soIU|2TVwW|0!E
z0&Vy-t16BF-(GeVPl4h4*m)9e_S(;S6A}gw9bnf;sF{C|O(3KzY(B)^CL!kIhuOQl
zQWez2U6>jyC89|q1~Csj@e-X#g5mH>bU7ZwB`?#ZQbuQI#m@tIh1M#b@x6RAeG?{+
z_sQ_aD>VK-PsyaIQ_IKtW_!jL-Cd_Vt=uzl_uoo<)20=bPxb9uJ<!@DZ&GQzx7h1T
zON{px6_@(T%1V+_lYHq3WeG`TULQ<3OrzL*UnetX0sR-T7VgoxG!8#XSz3YehN8&R
zqzh8MJ4iUmf6qTmzvt2#bArsDi)jmGFBbPPKR?4t3F!^_=h$l`4!$_Yu0nJXEjHsW
zu+ItUX-b!vmylS<xXhN382Icm0}>76K4;5VmC*yr+t3f9%$sfOJtEEU*bA>32kUmR
zIuZ|=yIEL_y^zwh1h3bZoR(fxRurFZ{gsw_)5>sB$;Bx?AFQdtfG&=NHM?;~y2FA!
z?7X#_FokR4)OX~sr03nD__g@3;A6+=1u~y&!cD9+n<mp|T;|I~bP6$-mD5SY>^zo!
zLQH-feS$5oq<nXob>{TLdMCA${HC<SeOA0KY+%2#&a@ZF<z_br23(`)3fYixo?az`
z&8Q2sg^(=s+(nA6Jjjf^Oury%RdFV+EZALDh})i%iQ69V8QV@W;OJ+l?m)BoB%4G?
zx*2nd-6m2RdPsyc30W)Ck+tv)t2d8S&?GX?I{x#yw>bPRZZKXko-&dQMgOP%kzSz>
z!PEArwnQ7Pbt8WD3-w)foa$A6Qno4cxVOl0B~Ov$W3pc!Eq9Z?klvNXNnZC)?rrXQ
z?mQCimR!eNe%GU}2<~(7pW=Jscrjl1S=cUAlF>rGAoIuhrTk-j=kDxF_CA}y66i0q
zl~&OLs=&cE8V+CWU;&V@10!e!4BAdJ$TFB^H4V^d8#eXOW@1wdkGEj681@b(8T>##
zwGf`HV=3ZaElA*hH_>EKaPWW+X)>MwWgpV-Iw+%?u~&6^4{Ss{#KC@~qemTTrX3;&
z*P_S(r?X%)cIq&9GtKA_^P5HK3EnMtDU-LLux<|j#yu<;rXHpqvAaWPJWGS&Mji8r
zxeg&hWyxd^MB+kVc?*56Lu{alLS%;paS#-lG)i<kgdcPq6A3rb1|95~Tai7~>D@2|
zr>NaZp`)+&M>JXJYW2aqnJk55!pe_mCG6Tv<Ap^wdF3pYB1G8m3k!zZFmf)gd%6V)
zG`8V7!naco=>c1|-?ibpt+@CYxYT-Ak!;K6gPlQ-?LZvl;AM!30!Mb-<!nEXB9nBq
zL@$SB=M9<+b3djkytoOosVuYNV>+MA6Z&%5gy)RC#$scH5u~4UWwJwh6MxNp4;!VI
z=y5Dm`(A6-W{L~N`?W!Qwno+cYK{7!+C{mbtai;*eDpG=E^|mW?WgpSf4~TBmp99^
z_!s0X7bpBfc#`}mGwFc1N2-+`l0w`USv@bf*N6ea3i_7YUB<T%-nALydk&m$qcV&=
zM&rq=P<Mc~f_op0hldZ~=3U&6j|sc+k$n&!pB%x*l%q5s*6cw;J4^iJH?%@IJh=zS
zy$<8Z-qxU>cj4pjN73If9KASCUuT|C3z?U404EO93~_k|ZUlw@@GO~fOD$R`+@|<N
z<oqyWA4b6v*km=0aNk~R>fn7;h19@RtEq+xoP#WcZP<tl9A!Rl!|f?>aNue58ShT?
z(|m`JvKu>t9UQv{afpM@Sh$me|AVe8W;nR>UZjf-9=#KBo`b6`dYpszTR7dpKh)ra
zuKhTn<`9nWLU*XJ2p)&<&VJ<X+|g-C%yw|M1L)3S7KSU;=%IZa@~;Qcw1F_-5G{bh
zU37pr(4qUSp*arTRD_de+{8HsIE1x_urt=d0n1T=8;7vdK1m2Xbr>Z|pyEb$Y~TGy
zkUcFOr<PzL;tuj{gd_@5j^fn6{Eky6Iue_XA$u1GpSQ5f!Cj6ce{U!}ephfUQevs*
zj^QM>fRh(X@3=1+UVXSaz%@>Moh`6_T)p+f4@3zw`_HCt@VxRI_Yr!_7FLx%1Xi7)
z`$;Z5a~3}vIq<+a`ftmdoc@<W3(UhOX*k7f=bKZ=kO#+3)1xg{C<(|xt`M<}GhR1R
z^iTEiI*+M!l6pifRc<S<DGBl+xmda-t-#~`fP0MVS6728PHYnz?O$JhKmS)Vx1E;p
zc$4Z%X;}z7DzmY88*IZy3>FGg3uD3CMDVktuw2YY8Wf~=cIZ}q4R`?Nl1?y2MS7r3
z_cz?~06JGLW|Llxm5PQ%j)aR9Xyxr1%Mx{m@AfT^x#)NN{JP2{N1}C^gh-v`if)Hs
z<>;`$BDkC}n5qMwpShywFj(0yj5d%UI0P#PhEEKZ<0|1TN~9leRm&Ez!GtZ_kI4yz
zzQoE=ppmeWQJUDw_2dq5;%MPVp;n0HckquGD{$|Q=%w0CZK?E@^q~8;d!4*WS)%2t
z?dt11$39?xVTAsjj;7Q-3=`@KSExKt>7yo+*GK|)2>0|kSJ_ZU9qU2^;S`Ng08dl2
zQNBaB?g;QLWjW?g0(+R6C4bO2h^r*pRv9YiqN&<`qk|ys7wY4spSY(`>SL~w9A`=0
zZ+c)M&jyRx4!?ETw9b~nWH9s-(BxSia`2uHrogh`_v`d$*U0`tVIb~ALoJe5-lX^N
z@-;3WCFjtRT=;{r64%HChh_2{WI28vS(K|>I<h3wvLUdXu`<Y!*dt^Fl7`c=Jm_zc
zhPl~q(EbxWVeY?4R}%X&XmB$)y^of!j!|Bam%D#+MT_%=SNU7)BvUXMn$68X5hKju
zZ_+KA`RGh~8uJ-8k;@^^a4g346@Q7;x)hh!{U~{c@8#YvJweWpo6;d;g7}pZ;#P%i
zVqfVU+90k(SLjX0X`8guQlNfLix8GdDRc`n*(Kv5hQSHp3TxDA<oV=7-lXT150oN)
ziom2F*uAts7(t`l-$|9?L#{T(^%K@%JnDM$6%U(5;lcpSQ)8mp5@As+!?U~SQ|h7I
zLbw!-Sy>%iiea&s!mwCuYM{5(RKti^){{QZK~5!$fYoV?hZV6b3QzTIR)0NQiDgrr
z``osk%)^F=J2Cxbz2J)Vmg9QFdFyilD^O0Qrf)B-k!0C-$+*i%9ps+NjYGqYb)*Nx
zp>%*}d!qE^&|o#o;MrsrEBNg(^;2+6vK++Shhqw?J1b0?K|SWTaf~O9BJKTfhCcH9
z+$3ZfXR~zakEEVT=ATGY+EBqB$}5h78+PHFM-6k{8ulQ2cYD6|*2oAO{=<UZusHGG
zsUJ9q!$Q@Q&M?maWC+o6|HLrvWmGpvyYVN|c;xC6Xh}>eO-YO|N=!*BPAN%BOpY&3
z^p&L+r<9c@;@vGV!53gpyA}DFq31hu9Iruvni0({#l<z)i+d*yr*+%Bz5EDW#*#lx
z*S-u%*3oNg&0AGKXu>_1Crk6VJfS=18sPfIxL~vhd9GQ;cw?y1!!=6$mwrn>t2gU)
zdb#kd9;yBAlC@J}o3>G_*2=UTt(*9o`iuIRx=vlFmWU6iS!$>lr(9Q#D{GaPh3-m*
z(nYu^9}!wyyX6<%2||OMCU=&;mkvsAyETzYk4u5c;&ds%{jGbStI55_J;yz|IWVA(
zcf6o$5_-X_(B0a1^f&ZXEr_A7E`<gpVQSH0H4SjlVpwc5gr2mVd4U<1!bVZY5v~u!
zr8@<?nk<CTwvDEo#jG(GzD;A39JXtxsE6gtPdNtOn1q~8+2h1{gihI`^(4Z9_V^=s
zXX&W-h2u?!Wy|k5BiHW6w@CS#^Cs-Xw<u+d^A?uDqMX^RIs;SnJcoYFQc<$ywjN?0
zyiFg^V6hITbvY8!?7s7t5ysfC-zj8EhmuTopTky;w``%a-FKz}og>wT*4<m^V#C67
z2z%Rb?NWq-4KFmH90jTe-I>n1wh5Vb-}z}+Bl~R->*>spg(hJIMx(8AY*A5Ca!G1&
za=I@mF)7VkoSu|g6d&(RNh>W)FUDd+ur1=IWyV+=diNs?w_y=3Ug%`QCk`NVN_FX$
zPwO`Ie*me}hG$OWw&Zb~W2kL|?-(!uO-3?WvhgY}Gp+;^W)i`bU^G0!SEW?BAn+t@
zF(ZoD*E)W3gvl)0gGEn6->=WpQ?(!Dayd#1Q%|W4>M)g4wky+=d(2^z*=5SKVsX=y
zUq$dNU<&;DJj-+q$rJE<OW?09coUdBlSw2C*3ZTyb12ediIpnkU{QIiL59JIS!^g4
ze73*9YGL+F#GL?UVY!FFMXR9@HkS>v;;<G~UF1yi`&@SPj;uS^kG`1V8S_}a*fIAU
zyuiQ@8k5{cynx?2k^p2X>jQ`8vD87*7%tqM&0&FZy3tqvT3@A));np3v=_C3>W}JL
z=>ye+cMiW)raU0;lxNAwQoH+vd!f`-k=)rBZ`5rmGL#I3;nge*{*BcV7)hCm-*zMn
z74z+d!j#=K1@8Zus;<7Oj}viE>K3v*S9XVrv-jOG&tPa@#1_HidN$N`XJME)<zOQG
z!6LLmt~D?W)>-pd_H^ZRSn@b##c-?|XAXi3)yT<%r-tQQ_Od_cj=jb$Vwqx|qf@{U
z)am2j@phJ8%T(ZxQZKaXOm(?CMBcqZ*m7MV9pr1j(;Nt_V|B36T6q`PxfrJlfPuBB
zvoOTka0#+&S@N=0Cc)Nvc5gH)p>umVeW<oleF+b_QCMggCT$nr7Dn*Pu(-IA+lza;
zhOc@U>-PORv(qHV<bzlcA)U?8VD=?JU%1tUeMACHGlY%8qNJ&YvMx+A>{3|-7D7Ib
z#X`vNZkWgEu(2C^S<>t-1G~P6!LFwx*i%G>)(Ex=gZ9bpte(i`cinLgzN%N11nW-F
zwZv^c`YGK)mbWqfJ$^L{P<eSJYOa2*Y?fEzZr8~Ci$PVP=IT}!f`vPC>kgJcuyXh9
T$1Ire^XF7`G5ZCwo8<ohn0|{t

diff --git a/00-jupyter-les-types-de-cellules.md b/00-jupyter-les-types-de-cellules.md
index 6557fc6..aa7e635 100644
--- a/00-jupyter-les-types-de-cellules.md
+++ b/00-jupyter-les-types-de-cellules.md
@@ -16,26 +16,25 @@ kernelspec:
 
 :::{admonition} Objectif pédagogique
 
-Mieux comprendre les deux types de cellules qui
-composent un carnet Jupyter et permettent d'alterner texte riche et
-code exécutable.
+Mieux comprendre les deux types de cellules qui composent un carnet
+Jupyter et permettent d'entrelacer texte riche et code exécutable.
 
 :::
 
 +++ {"deletable": false, "editable": false}
 
-L'intérêt des carnets numériques est de permettre d'entremêler, au
+L'intérêt des carnets numériques est de permettre d'entrelacer, au
 sein d'un même document, **narration**, **interaction**, **calcul**,
 **visualisation** et **programmation**. Pour cela, Jupyter propose un
 modèle très simple : un carnet Jupyter est une simple succession de
 cellules de deux types :
 
-* Des cellules de texte riche, au format ***Markdown*** ;
+* Des cellules de texte riche, au format ***Markdown*** / ***MyST***;
 * Des cellules de code exécutable.
 
 :::{admonition} [Markdown](https://fr.wikipedia.org/wiki/Markdown) : Kesako ?
 
-* Un langage à balisage léger pour écrire du texte riche;
+* Un langage à balisage léger pour écrire du texte riche.
 * Avec une syntaxe facile à lire et écrire.
 
 Markdown vous permet ainsi de rédiger du texte ***mis en forme*** et
@@ -56,10 +55,22 @@ structuré (sections, listes à puces, ...) avec, par exemple :
 
 :::
 
-**Exercice 1 :**
+:::{admonition} [MyST](https://mystmd.org)
 
-- Consultez les cellules de texte riche de ce document pour voir
-  comment elles ont été rédigées en Markdown.
+MyST est une extension de Markdown fournissant des structures
+supplémentaires (encarts, références croisées, citations, inclusions,
+...), doublée d'une collection d'outils pour publier des documents
+scientifiques offrant une [navigation web riche](https://mystmd.org/guide).
+
+:::
+
+
+:::{admonition} Exercice 1
+
+Consultez les cellules de texte riche de ce document pour voir comment
+elles ont été rédigées en Markdown/MyST.
+
+:::
 
 +++ {"deletable": false, "editable": false}
 
@@ -67,17 +78,19 @@ structuré (sections, listes à puces, ...) avec, par exemple :
 
 * À la souris : dans la barre d'outil de la feuille, sélectionnez
   `Markdown` ou `Code`.
-* Au clavier: passez en mode commande (voir le
-  [tutoriel](concept-mode-edition-vs-commande.md)) puis utilisez
-  <kbd>Y</kbd> pour convertir une cellule Markdown en cellule de code.
+* Au clavier : passez en [mode
+  commande](../Semaine2/00-jupyter-mode-edition-vs-commande.md) puis
+  utilisez <kbd>Y</kbd> pour convertir une cellule Markdown en cellule
+  de code.
 * Inversement, toujours en mode commande, utilisez <kbd>M</kbd> pour
   convertir une cellule de code en cellule de Markdown.
 
 +++ {"deletable": false, "editable": false}
 
-**Exercice 2 :** La cellule ci-dessous est « accidentellement » une
-cellule de texte. Changez-la en cellule de code pour pouvoir
-l'exécuter :
+:::{admonition} Exercice 2
+La cellule ci-dessous est « accidentellement » une cellule de
+texte. Changez-la en cellule de code pour pouvoir l'exécuter.
+:::
 
 +++ {"deletable": false, "editable": false}
 
@@ -86,12 +99,13 @@ codecs.decode('Oenib!', 'rot_13')
 
 +++ {"deletable": false, "editable": false}
 
-## En savoir plus sur la syntaxe Markdown
+## En savoir plus sur la syntaxe Markdown ♣
 
-Voici quelques tutoriels :
+Voici quelques tutoriels que vous pourrez explorer après le TP :
 
 * [Tutoriel Markdown (SNDS)](https://documentation-snds.health-data-hub.fr/contribuer/guide_contribution/tutoriel_markdown.html)
 * [La syntaxe Markdown (Framasoft)](https://docs.framasoft.org/fr/grav/markdown.html)
+* Le chapitre «Authoring» du [guide de MyST](https://mystmd.org/guide)
 
 +++ {"deletable": false, "editable": false}
 
diff --git a/01-fonctions.md b/01-fonctions.md
index d0f7bde..f71fab3 100644
--- a/01-fonctions.md
+++ b/01-fonctions.md
@@ -14,11 +14,13 @@ kernelspec:
 
 # TP : premières fonctions
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "7c56137d066444109bb04444924dccca", "grade": false, "grade_id": "cell-8b56bb2323e686a8", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "fa28aa0e65e07eb070cacc788c8bae4d", "grade": false, "grade_id": "cell-8b56bb2323e686a8", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition} Exercice 1 : renvoyer versus afficher
 
-1.  Exécutez les cellules suivantes qui définissent deux fonctions.
+1.  Les deux cellules suivantes définissent respectivement les
+    fonctions `abs` et `afficheAbs`; notez les différences entre ces
+    deux fonctions, puis exécutez les cellules.
 
 :::
 
@@ -184,7 +186,7 @@ nbgrader:
 afficheAbs(-3) == 3
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "16917a0a8c100643d2750beb8dbe5e60", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "11cf6cf006086fd5692ad6ced17f0884", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 :::{hint} Explication
 
@@ -192,7 +194,9 @@ afficheAbs(-3) == 3
 qu'**afficher** une valeur.  On notera ci-dessus que, avec `abs(3);`,
 Jupyter ne montre pas du tout la valeur alors que, avec `abs(3)`,
 Jupyter montre la valeur avec son type (`int`). Inversement
-`afficheAbs` affiche la valeur mais ne la renvoie pas.
+`afficheAbs` affiche la valeur mais ne la renvoie pas; de ce fait, il
+n'est pas possible de réutiliser la valeur produite, que ce soit pour
+un calcul ou un test.
 
 :::
 
@@ -272,12 +276,12 @@ int distance(int a, int b) {
 }
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "04d10b0e8310abdeffc474e92f24f0e5", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3ebfc99e85e04e0b8acad75fefa2323d", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition}
-2.  Vérifiez le comportement de votre fonction `distance` sur l'exemple
-ci-dessous; essayez sur quelques autres exemples; corrigez la fonction
-si nécessaire :
+2.  Vérifiez le comportement de votre fonction `distance` sur
+    l'exemple ci-dessous; essayez sur quelques autres exemples;
+    corrigez la fonction si nécessaire :
 :::
 
 ```{code-cell}
@@ -286,8 +290,9 @@ distance(5,3)
 
 :::{admonition}
 3.  Les tests ci-dessous automatisent partiellement la vérification du
-    comportement de votre fonction; comme la valeur attendue est
-    spécifiée. Vérifiez que l'on obtient bien `true` à chaque fois :
+    comportement de la fonction `distance`, en spécifiant chaque fois
+    la valeur attendue. Vérifiez que l'on obtient bien `true` à chaque
+    fois :
 :::
 
 ```{code-cell}
@@ -489,10 +494,10 @@ nbgrader:
 // REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d8200e589afa199999dd08f0ab5b6ee3", "grade": false, "grade_id": "cell-d27b0a203d050706", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "e23fcc5f4ec2f1631575f1543948e0b0", "grade": false, "grade_id": "cell-d27b0a203d050706", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition} Exercice 4 (à la maison)
-Mêmes consignes que pour l'exercice 1 avec la fonction suivante:
+Mêmes consignes que pour l'exercice 2 avec la fonction suivante :
 :::
 
 ```{code-cell}
diff --git a/cours.md b/cours.md
index db961e6..c27bad0 100644
--- a/cours.md
+++ b/cours.md
@@ -376,8 +376,6 @@ slideshow:
 pow(2, 3)
 ```
 
-<!-- -->
-
 +++ {"slideshow": {"slide_type": "slide"}}
 
 #### On remarque
@@ -899,8 +897,6 @@ slideshow:
 b
 ```
 
-<!-- -->
-
 +++ {"slideshow": {"slide_type": "slide"}}
 
 ### Passage des paramètres par valeur
-- 
GitLab