diff --git a/.gradebook.db b/.gradebook.db index e551af62008ae036385296e36efc90e77e7c50e5..fcd05c16a9a7bffe2d9215ea4101bbfd1335f8d1 100644 Binary files a/.gradebook.db and b/.gradebook.db differ diff --git a/1a.md b/1a.md index 3d51168ed7ad7ee45a2255728b88a31a2225d8ac..933b98a476bd1bc70f43c349de5c5b7b2fef3551 100644 --- a/1a.md +++ b/1a.md @@ -77,3 +77,7 @@ nbgrader: CHECK( a_gagne() ) ``` +```{code-cell} + +``` + diff --git a/2a.md b/2a.md index 79bb20e673ef9c7ba8e951e618de29d63ea8a955..2ae720de5f3b6526b9e3dbb664af68e69d3e960e 100644 --- a/2a.md +++ b/2a.md @@ -1,5 +1,6 @@ --- jupytext: + notebook_metadata_filter: semantic text_representation: extension: .md format_name: myst @@ -9,13 +10,22 @@ kernelspec: display_name: C++17 language: C++17 name: xcpp17 +semantic: + programming_language: + wikidata: Q2407 + subjects: + - smglom:computing?loops + - wikidata: Q8868615 + - didactic_role: initiation --- -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "b3c7b6b3dbbfe091d64d11f2af7d0074", "grade": false, "grade_id": "cell-fc82dd31f240c228", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "2e4b98b62671ffb9894c02229684a076", "grade": false, "grade_id": "cell-fc82dd31f240c228", "locked": true, "schema_version": 3, "solution": false, "task": false}} # Laby, niveau 2a: Que c'est loin ... -Simple pas vrai ? Mais bien répétitif, non? Le but du jeu ici est d'écrire un programme court en utilisant une boucle “while†qui dit à la fourmi d'avancer tant que la case devant lui est vide. +Affichez le labyrinthe suivant. Simple pas vrai ? Mais bien répétitif, non? + +Le but du jeu ici est d'écrire un programme court en utilisant une boucle `while` (tant que ... faire ...) qui dit à la fourmi d'avancer tant que la case devant lui est vide. On vous a fourni un squelette à compléter. [Niveau précédent](1c.md), <!--[Liste des niveaux](index.md#ListeDesNiveaux), !-->[Niveau suivant](2b.md), [Documentation](0b.md#Documentation) diff --git a/TD.md b/TD.md index c74f692ee0fea269c8fbc57a527823c4c31107b9..352836964b5360196611ac8ac3b83961fa84e0ad 100644 --- a/TD.md +++ b/TD.md @@ -13,6 +13,10 @@ jupytext: format_name: myst format_version: 0.13 jupytext_version: 1.15.1 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 --- # TD 1: Notion d'algorithme diff --git a/counting-the-rocks.md b/counting-the-rocks.md index 3c1f6693dcfca02e0b10a87829c9ea245697f9cb..014eb9644b50fc955bab4b9cb6702c7024ea55f5 100644 --- a/counting-the-rocks.md +++ b/counting-the-rocks.md @@ -36,6 +36,22 @@ nbgrader: LABY("counting-the-rocks") ``` +```{code-cell} +--- +deletable: false +nbgrader: + cell_type: code + checksum: 73e4e8dd92f614b3b9e861393d196db0 + grade: false + grade_id: cell-dc0eba466ac0f399 + locked: false + schema_version: 3 + solution: true + task: false +--- +// REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE +``` + ```{code-cell} --- deletable: false diff --git a/cours.md b/cours.md index 14364b4f4188c7d3c725c1f2f779fbc9fe3fceda..6290e41792ec10c451d7302de809e70e413dca5d 100644 --- a/cours.md +++ b/cours.md @@ -7,12 +7,12 @@ jupytext: format_version: 0.13 jupytext_version: 1.15.1 kernelspec: - display_name: Python 3 (ipykernel) - language: python - name: python3 + display_name: C++17 + language: C++17 + name: xcpp17 rise: auto_select: first - autolaunch: true + autolaunch: false centered: false controls: false enable_chalkboard: true @@ -35,24 +35,28 @@ Nicolas Thiéry <http://Nicolas.Thiery.name/Enseignement/Info111> -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "slide"}} ## Pourquoi enseigner l'informatique? -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Évidence : l'ordinateur est partout! - Combien d'ordinateurs dans la salle? - Combien d'ordinateurs possédez vous? -- Le mot «assisté par ordinateur» a disparu +- Le mot « assisté par ordinateur » a disparu - Usage constant des ordinateurs, pour le travail comme le reste ::: +++ {"slideshow": {"slide_type": "fragment"}} -**Évidence : tous les jeunes connaissent déjà l'informatique!** +:::{admonition} Évidence : tous les jeunes connaissent déjà l'informatique! + +. + +::: +++ {"slideshow": {"slide_type": "fragment"}} @@ -96,27 +100,31 @@ Et pourtant, loin d'être Einstein ou Alonso, ... | Conduite | Réparation, Conception | Physique | | Consommation | Cuisine | Chimie, Biologie | | Utilisation | Programmation, ... | Informatique | + ::: -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "slide"}} ### Qu'est-ce qu'on apprend à l'école? -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Principalement **la science** -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Et il y a des raisons profondes pour cela - <img src="media/Vinci.jpg" height="20ex" /> + :::{image} media/Vinci.jpg + :width: 60% + :alt: "Ceux qui sont férus de pratique sans posséder la science sont comme le pilote qui s'embarquerait sans timon ni boussole et ne saurait jamais vraiment où il va -- Léonard de Vinci" + ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Et des pressions pour que ce ne soit pas le cas -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} <!-- TODO IMG --> @@ -136,89 +144,94 @@ Une conférence de [François Élie](http://fr.wikipedia.org/wiki/Fran%C3%A7ois_ ::: :::: -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ### Tous les jeunes connaissent déjà l'informatique? -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **L'usage?** -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Évidence : tous les jeunes savent utiliser un ordinateur -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Vraiment? [les-enfants-ne-savent-pas-se-servir-dun-ordinateur](http://nicolaslegland.wordpress.com/2013/08/15/les-enfants-ne-savent-pas-se-servir-dun-ordinateur/) -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **La technologie?** - Qui sait programmer? Configurer un réseau? -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **La science?** -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Ma petite expérience :** - 6ème : ```{image} media/Epson-hx-20.jpg - :alt: Beautiful Sunset + :alt: Ordinateur portable Epson HX-20 :height: 100px :align: center ``` 3ème: ```{image} media/TurboPascal-Objet.jpg - :alt: Beautiful Sunset + :alt: Manuel Turbo Pascal Objet :height: 100px :align: center ``` -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Fac : apprendre la *science* a chamboulé ma programmation -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "fragment"}} - 2023 : après 33 ans et 300000 lignes de code, j'apprends encore ... -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "slide"}} ## La science informatique? -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} -- ***Science du calcul et de l'information*** +:::{prf:definition} -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} +L'***informatique*** est la Science du calcul et de l'information -- Notion fondamentale : **étude des systèmes en évolution** +::: - - État du système avant - - Étape de calcul - - État du système après ++++ {"slideshow": {"slide_type": "fragment"}} -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} +:::{admonition} Thème fondamental : étude des systèmes en évolution -- Modèles de calcul +- État du système avant +- Étape de calcul +- État du système après -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} +::: + ++++ {"slideshow": {"slide_type": "slide"}} ### Grands thèmes de l'informatique :::{admonition} Calculabilité : Que peut, ou ne peut pas faire, un ordinateur? +- Modèles de calcul - Indépendamment du langage - Indépendamment du matériel - Miracle : tous les langages sont équivalents! ::: ++++ + :::{admonition} Complexité : Combien faut-il de ressources pour résoudre un problème? - Indépendamment du langage @@ -226,9 +239,9 @@ Une conférence de [François Élie](http://fr.wikipedia.org/wiki/Fran%C3%A7ois_ - Indépendamment de l'algorithme? ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "subslide"}} -### Grands problèmes de l'informatique +### Grands thèmes de l'informatique (suite) :::{admonition} Maîtriser les systèmes extrêmement complexes @@ -238,17 +251,17 @@ Une conférence de [François Élie](http://fr.wikipedia.org/wiki/Fran%C3%A7ois_ - Services gérant des millions de clients ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} Problématiques de **passage à l'échelle** -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} Stratégies d'**abstraction** Exemple : Couches OSI pour les réseaux -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Difficulté :class: attention @@ -258,11 +271,11 @@ Apprendre des outils conçus pour les programmes de 100000 lignes en travaillant sur des programmes de 10 lignes ... ::: -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ### Grands thèmes de l'informatique (suite) -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Comment mieux s'exprimer pour que l'ordinateur résolve nos problèmes?** @@ -288,9 +301,9 @@ problèmes?** - Au delà des langages: modélisation, ... ::: -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "subslide"}} -### Autres grands thèmes de l'informatique +### Grands thèmes de l'informatique (suite) - Interactions Humain Machine - Bases de données @@ -304,7 +317,7 @@ problèmes?** - Langages formels, automates, compilation - Mathématiques discrètes : graphes, combinatoire, ... -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "slide"}} ## À propos de ce cours @@ -314,7 +327,7 @@ problèmes?** - **Usage** : environnement de programmation, GNU/Linux ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Ce que l'on va voir - Des briques de bases, des règles de compositions @@ -323,7 +336,7 @@ problèmes?** ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{hint} Pour quoi faire?? - Bénéficier de l'expérience de plus de 50 ans de programmation @@ -331,13 +344,13 @@ problèmes?** - Intuition de comment résoudre un nouveau problème ::: -+++ {"editable": true, "jp-MarkdownHeadingCollapsed": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ### Organisation du cours 1h30 amphi, 1h30 TD, 2h TP -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{hint} Du TD? pour quoi faire??? - Apprendre la science informatique, en utilisant un ordinateur, pour @@ -346,14 +359,14 @@ problèmes?** - C'est pas facile ... ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Une difficulté : la forte hétérogénéité de niveau :class: attention Ce module s'adresse à tous, *débutants* comme *expérimentés* ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{important} Évaluation - 25% : Examen mi-semestre (dans l'axe des TD) @@ -362,7 +375,7 @@ Ce module s'adresse à tous, *débutants* comme *expérimentés* - 15% : Exercices en ligne, notes de TP ::: -+++ {"editable": true, "jp-MarkdownHeadingCollapsed": true, "slideshow": {"slide_type": "subslide"}} ++++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ### Comment travailler l'informatique? @@ -391,7 +404,7 @@ Ce module s'adresse à tous, *débutants* comme *expérimentés* - Il vous faut un ordinateur ou tablette avec un navigateur web! Variante: salle informatique en libre service -+++ {"editable": true, "slideshow": {"slide_type": ""}} ++++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ### Fraude et plagiat @@ -404,7 +417,7 @@ C'est super! +++ {"editable": true, "slideshow": {"slide_type": "fragment"}} :::{attention} Récupérer du code de quelqu'un d'autre (dont IA générationnelles comme chat-GPT) -**C'est contre-productif** +**À ce stade, c'est contre-productif** ::: +++ {"editable": true, "slideshow": {"slide_type": "fragment"}} @@ -422,7 +435,7 @@ C'est de la **fraude** +++ {"editable": true, "slideshow": {"slide_type": "fragment"}} -:::{warning} Mais, au cas où, nous avons des outils ... +:::{warning} Mais, au cas où, nous avons quelques outils :-) <!-- asdfsdf --> ::: @@ -435,14 +448,14 @@ C'est de la **fraude** Suivez le guide! -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "fragment"}} :::{admonition} Espace eCampus - Pour interagir avec les enseignants - <https://ecampus.paris-saclay.fr/course/view.php?id=80953> ::: -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "fragment"}} :::{admonition} Page web - Pour trouver toutes les informations @@ -450,30 +463,31 @@ Suivez le guide! - Mot clés: «Info111» ou «Nicolas Thiéry» ::: -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ### Infrastructure du cours, suite -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "fragment"}} :::{admonition} Salles de TP - Pour programmer - Salle de TP physique à la fac au 336 (SIF / PGIP) -- Salle de TP virtuelle JupyterHub@Paris-Saclay +- Salle de TP virtuelle [JupyterHub@Paris-Saclay](https://jupyterhub.ijclab.in2p3.fr/) ```{image} media/logo-jupyterhub.svg :alt: logo jupyterhub :height: 20px :align: center ``` - <https://jupyterhub.ijclab.in2p3.fr/> + <!-- <https://jupyterhub.ijclab.in2p3.fr/> --> - Ou directement sur votre machine personnelle - Exercices en ligne PLaTon ::: -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "fragment"}} :::{admonition} Forge logicielle GitLab + ```{image} media/logo-gitlab.svg :alt: logo gitlab :width: 5% @@ -484,7 +498,7 @@ Suivez le guide! - <https://gitlab.dsi.universite-paris-saclay.fr/> ::: -+++ {"editable": true, "slideshow": {"slide_type": "skip"}} ++++ {"editable": true, "slideshow": {"slide_type": "subslide"}} :::{admonition} Gestion des devoirs avec GitLab et travo  @@ -492,15 +506,15 @@ Suivez le guide! Une innovation pédagogique Orsay / Montréal! ::: -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "slide"}} ## Ordinateurs et traitement automatique des informations -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Exemples d'ordinateurs :** -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} - Calculatrice (programmable) - Ordinateur personnel (PC, Mac, ...) @@ -508,7 +522,7 @@ Une innovation pédagogique Orsay / Montréal! - Super-ordinateur (Cray, IBM-SP, ...) - Clusters d'ordinateurs -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Mais aussi :** @@ -519,44 +533,47 @@ Une innovation pédagogique Orsay / Montréal! - Téléviseurs, ... - Arduino, Raspberry Pi, ... -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "slide"}} ### Caractéristiques principales d'un ordinateur -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Absolument stupide +:class: warning - Il obéit strictement aux ordres reçus -- Est-ce qu'il fait ce que l'on veut? +- Fiable? Est-ce qu'il fait ce que l'on veut? ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Très très rapide +:class: hint - 2GHz : 2 milliards d'opérations par seconde - sans faire d'erreur ::: -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{admonition} Très très bonne mémoire +:class: hint - Bible : Mo (million de caractères) - Mémoire : Go (milliards de caractères) - Disque : To (1000 milliards de caractères) - Data center : Po ::: -+++ {"editable": true, "slideshow": {"slide_type": "subslide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ### À quoi sert un ordinateur? -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Stocker des informations :** - Documents, musique, photos, agenda, ... -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Traiter automatiquement des informations :** @@ -568,9 +585,9 @@ Une innovation pédagogique Orsay / Montréal! - ***Sortie***: informations envoyées vers l'écran, la mémoire, d'autres ordinateurs, ... -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} -**Définition :** +:::{prf:definition} Programme Informellement, un ***programme*** est une séquence d'instructions qui spécifie étape par étape les opérations à effectuer @@ -579,11 +596,13 @@ pour obtenir à partir des ***entrées*** un résultat (la Voir aussi : <http://fr.wikipedia.org/wiki/Programme_informatique> -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} +::: + ++++ {"slideshow": {"slide_type": "slide"}} ## Premiers programmes -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "fragment"}} :::{prf:example} @@ -601,7 +620,7 @@ Voir aussi : <http://fr.wikipedia.org/wiki/Programme_informatique> **Entrée? Sortie?** -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ::::{prf:example} :::{image} media/programme-lego.jpg @@ -611,7 +630,7 @@ Voir aussi : <http://fr.wikipedia.org/wiki/Programme_informatique> :::: **Entrée? Sortie?** -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} :::::{prf:example} @@ -626,11 +645,9 @@ Voir aussi : <http://fr.wikipedia.org/wiki/Programme_informatique> :::: ::::: -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} - **Entrée? Sortie?** -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} :::::{prf:example} ::::{grid} @@ -663,7 +680,7 @@ ouvre() **Entrée? Sortie?** -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} :::{prf:example} Un exemple de programme C++ @@ -688,23 +705,23 @@ int main() { ``` ::: -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Démo :** *Compilation* en ligne de commande, *exécution* -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "fragment"}} **Un peu lourd?** **Pas de panique!** -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} -### Le coeur du programme C++ +### Le cœur du programme C++ ```{code-cell} --- editable: true slideshow: - slide_type: slide + slide_type: fragment --- // Entrée int x = 5; @@ -714,7 +731,7 @@ int x = 5; --- editable: true slideshow: - slide_type: slide + slide_type: fragment --- // Traitement int xCarre = x * x; @@ -725,48 +742,64 @@ int xPuissanceQuatre = xCarre * xCarre; --- editable: true slideshow: - slide_type: slide + slide_type: fragment --- // Sortie xPuissanceQuatre ``` -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "subslide"}} ### Jupyter + Cling : une super calculatrice programmable -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} ++++ {"slideshow": {"slide_type": "fragment"}} -**Jupyter :** +:::{admonition} Jupyter - Un environnement de calcul interactif multi-langage - <http://jupyter.org> -**Cling :** +::: + ++++ {"slideshow": {"slide_type": "fragment"}} + +:::{admonition} Cling - Un interpréteur C++ - <https://root.cern.ch/cling> -+++ {"editable": true, "slideshow": {"slide_type": "slide"}} +::: + ++++ {"slideshow": {"slide_type": "slide"}} ## Résumé -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": "fragment"}} -- À propos d'Info 111 - - Qu'est-ce que l'informatique (**Usage**, **Technologie**, **Science!**) - - Objectifs du cours - - Infrastructure du cours: eCampus, page web, salles de TP (virtuelles), forge GitLab +:::{admonition} À propos d'Info 111 -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} +- Qu'est-ce que l'informatique (**Usage**, **Technologie**, **Science!**) +- Objectifs du cours +- Infrastructure du cours: eCampus, page web, salles de TP (virtuelles), forge GitLab -- Un aperçu de premiers éléments de programmation : - - Ordinateur - - Programmes +::: + ++++ {"slideshow": {"slide_type": "fragment"}} - On reviendra dessus! +:::{admonition} Un aperçu de premiers éléments de programmation -+++ {"editable": true, "slideshow": {"slide_type": "fragment"}} +- Ordinateur +- Programmes -- Environnement Jupyter+Cling +On reviendra dessus! + +::: + ++++ {"slideshow": {"slide_type": "fragment"}} + +::::{admonition} Environnement Jupyter+Cling + +. + +:::: diff --git a/index.md b/index.md index cdf98ad52254fdc9070dc772d8b46f28b1747446..1e563a70533fd5882e1272e9ff92618128ab6fe4 100644 --- a/index.md +++ b/index.md @@ -79,6 +79,49 @@ fin du TP pour que tout ce que vous avez fait soit bien sauvegardé. +++ +Le jeu [`laby`](https://sgimenez.github.io/laby/) propose plusieurs +défis successifs; pour chacun d'entre eux, le but est de guider +pas-à -pas une fourmi vers la sortie d'un labyrinthe à l'aide d'un +programme. Chacun de ces défis sera l'occasion de découvrir ou +manipuler un concept de programmation. + +Nous allons utiliser +[`laby-jupyter`](https://github.com/nthiery/laby-jupyter/), une +réimplantation de laby dans Jupyter. + +1. Chaque feuille ci-dessous correspond à un défi. Ouvrez les + tour-à -tour dans l'ordre et suivez les instructions + incluses. Déposez votre travail après chaque feuille. + + - [Laby 0b : Démonstration](0b.md) + - [Laby 1a : À vous de jouer](1a.md) + - [Laby 1b : Oh le caillou](1b.md) + - [Laby 1c : Encore un caillou!](1c.md) + - [Laby 2a : Que c'est loin ...](2a.md) + - [Laby 2b : Le couloir des cailloux](2b.md) + - [Laby 2c : Zig-Zag](2c.md) + - [Laby 2d : Le Zig-Zag des cailloux](2d.md) + - [Laby 3a : Ahhh des toiles!](3a.md) + - [Laby 3b : Toiles et cailloux](3b.md) + - [Laby 4a : La spirale infernale](4a.md) + - [Laby 4b : Par où passer?](4b.md) + + +2. Résoudre en Python le défi [Chou, chèvre, loup](chou-chevre-loup.md). + +3. ♣ Dans l'ordre que vous souhaiterez : + + - Reprendre en Python tout ou partie des défis de laby. Pour cela, + vous utiliserez le tableau de bord pour télécharger le devoir + `Semaine1Python`. + + - Résoudre en Python le [jeu des cruches](cruches.md). + - Faire les feuilles laby supplémentaires en C++ : + - [Laby C++ : Counting the rocks](counting-the-rocks.md) + - [Laby C++ : C'est fou!](this-is-crazy.md) + ++++ + ### Exercice 4 : À faire pour la semaine prochaine Deux heures supplémentaires de `Laby`! Vous pouvez par exemple diff --git a/this-is-crazy.md b/this-is-crazy.md index 4e4f77c8e73f67e30b5130ee9b42d3686b8a6462..1b9e43312b18a28732be50bb4f1f737686dc8f77 100644 --- a/this-is-crazy.md +++ b/this-is-crazy.md @@ -11,12 +11,19 @@ kernelspec: name: xcpp17 --- -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "1412fa8dba22a59e78085d1ef371cf70", "grade": false, "grade_id": "cell-05f3f0bf76964094", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3ec5c74d7827a86b9563e8ea4942ea3c", "grade": false, "grade_id": "cell-05f3f0bf76964094", "locked": true, "schema_version": 3, "solution": false, "task": false}} # Laby: C'est fou! Les obstacles se multiplient pour un défi de plus. +:::{admonition} Indication +:class: dropdown hint + +Les toiles d'arraignées peuvent être neutralisées avec des cailloux + +::: + [Niveau précédent](counting-the-rocks.md), <!--[Liste des niveaux](index.md#ListeDesNiveaux), !-->[Documentation](0b.md#Documentation) ```{code-cell} @@ -37,6 +44,54 @@ nbgrader: LABY("this-is-crazy") ``` +```{code-cell} +--- +deletable: false +nbgrader: + cell_type: code + checksum: 5175ca859f4bf6fabf94895343e7fbf4 + grade: false + grade_id: cell-6f9c72052cad1db5 + locked: false + schema_version: 3 + solution: true + task: false +--- +// REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE +``` + +```{code-cell} +--- +deletable: false +nbgrader: + cell_type: code + checksum: 1bef98b8da2b78e6f16ebf6fefabc274 + grade: false + grade_id: cell-6f9c72052cad1db6 + locked: false + schema_version: 3 + solution: true + task: false +--- +// REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE +``` + +```{code-cell} +--- +deletable: false +nbgrader: + cell_type: code + checksum: bed78d165b165fafc71f6ac63bc707ea + grade: false + grade_id: cell-6f9c72052cad1db7 + locked: false + schema_version: 3 + solution: true + task: false +--- +// REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE +``` + ```{code-cell} --- deletable: false