Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (1)
No preview for this file type
......@@ -77,3 +77,7 @@ nbgrader:
CHECK( a_gagne() )
```
```{code-cell}
```
---
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)
......
......@@ -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
......
......@@ -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
......
......@@ -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
![image](media/travo_workflow.png)
......@@ -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
.
::::
......@@ -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
......
......@@ -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
......