Compare commits

...

11 Commits

10 changed files with 570 additions and 36 deletions

1
.gitignore vendored
View File

@@ -15,6 +15,7 @@ ressources/*.pdf
Groupes NSI.md
eval/
DSC_Kit_Communication/
CLAUDE.md
# Fichiers non versionnés
Automate Your Network - John Capobianco - Paperback.pdf

View File

@@ -251,13 +251,7 @@
"cell_type": "markdown",
"id": "cell-21",
"metadata": {},
"source": [
"### Missions\n",
"\n",
"<li><strong>Mission 1</strong> : Crée un nouveau dossier sur le bureau, comme tu l'as fait sur System 7. La méthode est-elle identique ?\n",
"<li><strong>Mission 2</strong> : Ouvre le <em>Panneau de configuration</em> (via le menu Démarrer), puis clique sur <em>Système</em>. Observe les informations sur le matériel affichées.\n",
"<li><strong>Mission 3</strong> : Appuie sur <strong>Ctrl + Alt + Suppr</strong> pour ouvrir le Gestionnaire des tâches. Regarde l'onglet <em>Processus</em> : que vois-tu tourner en arrière-plan ?"
]
"source": "### Missions\n\n<li><strong>Mission 1</strong> : Crée un nouveau dossier sur le bureau, comme tu l'as fait sur System 7. La méthode est-elle identique ?\n<li><strong>Mission 2</strong> : Ouvre le <em>Panneau de configuration</em> (via le menu Démarrer), puis clique sur <em>Système</em>. Observe les informations sur le matériel affichées.\n<li><strong>Mission 3</strong> : Ouvre le Gestionnaire des tâches via le menu <strong>Démarrer → Exécuter</strong>, tape <code>taskmgr</code> puis Entrée. Regarde l'onglet <em>Processus</em> : que vois-tu tourner en arrière-plan ?\n\n> ⚠️ **Note :** Le raccourci <strong>Ctrl+Alt+Suppr</strong> est souvent intercepté par ton propre ordinateur avant d'atteindre la machine virtuelle. Passe par <em>Démarrer → Exécuter → taskmgr</em> pour contourner ce problème."
},
{
"cell_type": "markdown",
@@ -324,17 +318,7 @@
"cell_type": "markdown",
"id": "cell-29",
"metadata": {},
"source": [
"Tu arrives maintenant à la couche la plus proche du système : **la ligne de commande**.\n",
"\n",
"Plus d'icônes, plus de fenêtres. Tu communiques avec l'OS en tapant du texte, et l'OS te répond en texte.\n",
"\n",
"Ouvre cette adresse : <https://webvm.io>\n",
"\n",
"Une machine virtuelle Linux se lance entièrement dans ton navigateur. Tu obtiens un **terminal** — c'est-à-dire une interface en ligne de commande directement connectée à un OS Linux.\n",
"\n",
"*(Si le chargement est lent, recharge la page une fois.)*"
]
"source": "Tu arrives maintenant à la couche la plus proche du système : **la ligne de commande**.\n\nPlus d'icônes, plus de fenêtres. Tu communiques avec l'OS en tapant du texte, et l'OS te répond en texte.\n\nOuvre cette adresse : <https://webvm.io>\n\nUne machine virtuelle Linux se lance entièrement dans ton navigateur. Tu obtiens un **terminal** — c'est-à-dire une interface en ligne de commande directement connectée à un OS Linux.\n\n> 💡 **Petit aparté tech :** WebVM utilise **WebAssembly**, une technologie qui permet à un navigateur web d'exécuter du code très rapidement — assez pour faire tourner un vrai système Linux. Ton navigateur devient une machine à part entière.\n\n*(Si le chargement est lent, recharge la page une fois.)*"
},
{
"cell_type": "markdown",
@@ -346,10 +330,7 @@
"cell_type": "markdown",
"id": "cell-31",
"metadata": {},
"source": [
"#### Question 7\n",
"Compare la Mission 3 ici avec la Mission 1 sur System 7 et Windows 2000 : tu as créé un dossier dans les trois cas. Qu'est-ce que la CLI **montre** que le GUI **cachait** ?"
]
"source": "#### Question 7\nCompare la Mission 3 ici avec la Mission 1 sur System 7 et Windows 2000 : tu as créé un dossier dans les trois cas.\n\nDans un GUI, on **voit** le résultat avant d'agir (les icônes, les menus sont là). En CLI, on **conçoit** l'action (on écrit la commande) avant de voir le résultat.\n\nQu'est-ce que la CLI **montre** que le GUI **cachait** ? Qu'est-ce que tu trouves plus clair, et qu'est-ce que tu trouves plus difficile ?"
},
{
"cell_type": "markdown",
@@ -490,7 +471,7 @@
"cell_type": "markdown",
"id": "cell-48",
"metadata": {},
"source": "Tu viens de taper tes premières commandes Linux sur WebVM. Mais la ligne de commande, ça s'apprend aussi en jouant !\n\n**Terminus** est un jeu d'aventure textuel dans lequel tu navigues en utilisant de vraies commandes Linux : `ls`, `cd`, `cat`, `mv`...\n\nAdresse du jeu : <http://luffah.xyz/bidules/Terminus/>\n\nUn document d'accompagnement est disponible pour t'aider à progresser dans le jeu : [Notebook Terminus](./terminus.ipynb)\n\nLe jeu fonctionne dans le navigateur, sur ordinateur **et sur téléphone**. Tu peux y jouer chez toi, dans le bus, n'importe où.\n\nC'est une excellente façon de continuer à pratiquer ce que tu as découvert aujourd'hui — et de descendre encore une couche de plus."
"source": "Tu viens de taper tes premières commandes Linux sur WebVM. Mais la ligne de commande, ça s'apprend aussi en jouant !\n\n**Terminus** est un jeu d'aventure textuel dans lequel tu navigues en utilisant de vraies commandes Linux : `ls`, `cd`, `cat`, `mv`...\n\nAdresse du jeu : <http://luffah.xyz/bidules/Terminus/>\n\nUn document d'accompagnement est disponible pour t'aider à progresser dans le jeu : [Notebook Terminus](./terminus.ipynb)\n\nLe jeu fonctionne dans le navigateur, sur ordinateur **et sur téléphone**. Tu peux y jouer chez toi, dans le bus, n'importe où.\n\nC'est une excellente façon de continuer à pratiquer ce que tu as découvert aujourd'hui — et de descendre encore une couche de plus.\n\n---\n\n### Tu veux aller encore plus loin ?\n\nSi tu as terminé toutes les missions en avance, voici d'autres OS à explorer dans ton navigateur :\n\n<li><a href=\"https://www.pcjs.org/blog/2015/09/21/\">PCjs.org</a> — Windows 95 et d'autres OS historiques (DOS, Windows 3.1...) émulés avec précision\n<li><a href=\"https://copy.sh/v86/\">v86</a> — Un émulateur très puissant : FreeDOS, Windows 98, et bien d'autres OS plus exotiques\n<li><a href=\"https://infinitemac.org\">Infinite Mac</a> — Du Mac System 1.0 jusqu'à Mac OS 9, version par version"
},
{
"cell_type": "markdown",

BIN
ia/cognitive_debt.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

305
ia/culture_ia.ipynb Normal file
View File

@@ -0,0 +1,305 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "cell-0",
"metadata": {},
"source": [
"# L'Intelligence Artificielle — Culture générale et enjeux"
]
},
{
"cell_type": "markdown",
"id": "cell-1",
"metadata": {},
"source": [
"Durée : 1h<br>\n",
"Objectifs : Comprendre ce qu'est un LLM, ses enjeux éthiques et environnementaux, faire le lien avec les algorithmes vus en cours<br>\n",
"Niveau : Première NSI<br>\n",
"Prérequis : Notions de probabilités (maths)"
]
},
{
"cell_type": "markdown",
"id": "cell-2",
"metadata": {},
"source": [
"---\n",
"\n",
"## Table des matières\n",
"\n",
"1. Qu'est-ce qu'un LLM ?\n",
"2. Comment ça apprend ?\n",
"3. Enjeux et questions à se poser\n",
"4. Et en NSI, ça donne quoi ?"
]
},
{
"cell_type": "markdown",
"id": "cell-3",
"metadata": {},
"source": [
"---\n",
"\n",
"## 1. Qu'est-ce qu'un LLM ?"
]
},
{
"cell_type": "markdown",
"id": "cell-4",
"metadata": {},
"source": "Vous utilisez peut-être ChatGPT, Gemini ou Copilot. Ces outils reposent tous sur un **LLM** — *Large Language Model*, ou grand modèle de langage.\n\nUn LLM, c'est fondamentalement une machine qui **prédit le prochain mot**.\n\nImaginez la phrase : *\"La nuit, tous les chats sont...\"*\n\nLe modèle attribue une probabilité à chaque mot possible :\n\n| Mot | Probabilité |\n|---|---|\n| gris | 0.59 |\n| endormis | 0.19 |\n| fatigués | 0.19 |\n| verts | 0.001 |\n| cuillère | 0.0001 |\n\nLe mot choisi n'est pas forcément le plus probable — ça dépend d'un paramètre appelé **température**.\n\n> **Température basse (ex. 0.0)** → le modèle choisit presque toujours le mot le plus probable. Réponses prévisibles, factuelles.\n>\n> **Température haute (ex. 1.0)** → le modèle peut choisir des mots moins probables. Réponses plus créatives, parfois surprenantes."
},
{
"cell_type": "markdown",
"id": "cell-5",
"metadata": {},
"source": "#### Question 1\nSi vous demandez à un LLM d'écrire un poème, quelle température lui donneriez-vous ? Et si vous lui demandez de corriger un code Python, laquelle ?\n\n*(Répondez en colorant votre texte : `<span style=\"color:blue\">votre réponse</span>`)*"
},
{
"cell_type": "markdown",
"id": "cell-6",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "markdown",
"id": "cell-7",
"metadata": {},
"source": [
"### Tokens : ce que le modèle voit vraiment\n",
"\n",
"Un LLM ne travaille pas sur des mots entiers mais sur des **tokens** — des fragments de mots.\n",
"\n",
"Exemple : le verbe *manger* peut apparaître comme *mange*, *mangeons*, *mangerait*... Plutôt que de traiter chaque forme séparément, le modèle travaille sur le fragment commun `mang`.\n",
"\n",
"C'est plus efficace et ça permet de gérer des langues très différentes avec le même mécanisme."
]
},
{
"cell_type": "markdown",
"id": "cell-8",
"metadata": {},
"source": [
"---\n",
"\n",
"## 2. Comment ça apprend ?"
]
},
{
"cell_type": "markdown",
"id": "cell-9",
"metadata": {},
"source": [
"Un LLM a des **milliards de paramètres** — imagine des milliards de boutons à régler. Au départ, tous ces boutons sont positionnés aléatoirement : le modèle ne sait rien.\n",
"\n",
"L'apprentissage se fait en deux phases :"
]
},
{
"cell_type": "markdown",
"id": "cell-10",
"metadata": {},
"source": [
"### Phase 1 — Pré-entraînement\n",
"\n",
"On nourrit le modèle avec des **milliards de textes** : pages web, livres, forums, articles...\n",
"\n",
"Le principe : on cache un mot dans une phrase, le modèle essaie de le deviner. S'il se trompe, on ajuste légèrement ses paramètres. On répète ça des **milliards de milliards de fois**.\n",
"\n",
"Cette phase peut durer **plusieurs mois** et coûte **plusieurs dizaines de millions de dollars**.\n",
"\n",
"À la fin, le modèle sait prédire des mots — mais il ne sait pas encore \"discuter\"."
]
},
{
"cell_type": "markdown",
"id": "cell-11",
"metadata": {},
"source": [
"### Phase 2 — Affinage\n",
"\n",
"Des humains évaluent les réponses du modèle et choisissent les meilleures. Le modèle ajuste ses paramètres pour privilégier ces réponses à l'avenir.\n",
"\n",
"C'est ici que se définit la **ligne éditoriale** du modèle : ce qu'il accepte ou refuse de dire, le ton qu'il adopte, ses \"valeurs\".\n",
"\n",
"> Un LLM n'est pas neutre. Ses réponses reflètent les choix faits pendant l'affinage — et donc les choix de l'entreprise qui l'a créé."
]
},
{
"cell_type": "markdown",
"id": "cell-12",
"metadata": {},
"source": "#### Question 2\nDeux entreprises concurrentes entraînent chacune un LLM. L'une est américaine, l'autre chinoise. Pensez-vous que leurs modèles répondront de la même façon à des questions politiques ou historiques sensibles ? Pourquoi ?"
},
{
"cell_type": "markdown",
"id": "cell-13",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "markdown",
"id": "cell-14",
"metadata": {},
"source": [
"---\n",
"\n",
"## 3. Enjeux et questions à se poser"
]
},
{
"cell_type": "markdown",
"id": "89bfc675",
"source": "---\n\n## 3b. Les risques cognitifs",
"metadata": {}
},
{
"cell_type": "markdown",
"id": "fe1be7cd",
"source": "### \"Your Brain on ChatGPT\" — MIT Media Lab, 2025\n\nDes chercheurs du MIT ont mesuré l'activité cérébrale de participants via **EEG** pendant une tâche d'écriture. Trois groupes : ceux qui utilisaient un LLM, ceux qui utilisaient un moteur de recherche, ceux qui écrivaient seuls.\n\n![Étude MIT — Cognitive Debt](./cognitive_debt.jpeg)\n\n**Ce que montre l'étude :**\n<li>Les utilisateurs de LLM présentent une activité cérébrale (bande alpha) significativement plus basse que les autres groupes\n<li>Moins d'engagement cognitif = le cerveau \"décroche\" et délègue la réflexion à la machine\n<li>Les auteurs parlent de <strong>dette cognitive</strong> : à force de ne pas solliciter son cerveau, on perd en capacité de raisonnement autonome\n\n> Ce n'est pas une raison de ne jamais utiliser l'IA. C'est une raison de **choisir quand** on l'utilise.",
"metadata": {}
},
{
"cell_type": "markdown",
"id": "630245b9",
"source": "#### Question 3b\nVous utilisez un LLM pour rédiger un texte. Votre cerveau travaille moins. Est-ce grave si vous comprenez quand même le résultat ? Et si vous ne le relisez pas ?",
"metadata": {}
},
{
"cell_type": "markdown",
"id": "9845f141",
"source": " ",
"metadata": {}
},
{
"cell_type": "markdown",
"id": "cell-15",
"metadata": {},
"source": [
"### Le coût environnemental\n",
"\n",
"Entraîner un LLM nécessite des fermes de serveurs qui tournent en permanence :\n",
"<li>Consommation électrique massive\n",
"<li>Refroidissement des serveurs → consommation d'eau importante\n",
"<li>Fabrication du matériel → ressources rares (lithium, cobalt...)\n",
"\n",
"Une seule requête à ChatGPT consomme environ **10 fois plus d'énergie** qu'une recherche Google.\n",
"\n",
"Et l'entraînement d'un modèle comme GPT-4 aurait émis autant de CO₂ que **plusieurs centaines de vols ParisNew York**."
]
},
{
"cell_type": "markdown",
"id": "cell-16",
"metadata": {},
"source": "#### Question 3\nEst-ce que ça change votre façon d'utiliser ces outils au quotidien ? Pour quelles tâches pensez-vous que l'usage d'un LLM est justifié, et pour lesquelles ça vous semble excessif ?"
},
{
"cell_type": "markdown",
"id": "cell-17",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "markdown",
"id": "cell-18",
"metadata": {},
"source": [
"### Les biais\n",
"\n",
"Un LLM apprend sur des textes produits par des humains — avec tous leurs biais. Si les données d'entraînement surreprésentent certaines cultures, langues ou points de vue, le modèle les surreprésente aussi.\n",
"\n",
"Exemples documentés :\n",
"<li>Associations stéréotypées entre certains prénoms et des qualités/défauts\n",
"<li>Moins bonnes performances dans des langues peu représentées sur le web\n",
"<li>Tendance à reproduire des stéréotypes de genre dans certaines professions\n",
"\n",
"Ces biais ne sont pas intentionnels — mais ils ont des conséquences réelles quand ces outils sont utilisés pour recruter, noter, ou décider."
]
},
{
"cell_type": "markdown",
"id": "cell-19",
"metadata": {},
"source": "#### Question 4\nUn employeur utilise un LLM pour trier des CV. Quels risques cela comporte-t-il selon vous ? Comment pourrait-on les limiter ?"
},
{
"cell_type": "markdown",
"id": "cell-20",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "markdown",
"id": "cell-21",
"metadata": {},
"source": [
"---\n",
"\n",
"## 4. Et en NSI, ça donne quoi ?"
]
},
{
"cell_type": "markdown",
"id": "cell-22",
"metadata": {},
"source": "Les LLMs sont impressionnants — mais ils reposent sur des mécanismes que vous pouvez comprendre.\n\nAprès les vacances, nous allons étudier l'algorithme **K-NN** (*K Nearest Neighbors* — K plus proches voisins). C'est l'un des algorithmes de base du **machine learning** — l'apprentissage automatique.\n\nLe principe : pour classer un objet inconnu, on regarde les *k* objets les plus proches qu'on connaît déjà, et on attribue à l'inconnu la classe majoritaire parmi eux.\n\n**Exemple :** on veut déterminer si une tumeur est bénigne ou maligne à partir de mesures (taille, forme...). On regarde les *k* tumeurs les plus similaires dans notre base de données, et on prédit la classe la plus fréquente.\n\nC'est exactement ce que font, à une tout autre échelle, les algorithmes de recommandation de YouTube ou Spotify : *\"les utilisateurs les plus proches de vous ont aussi aimé...\"*\n\nLes LLMs vont beaucoup plus loin — mais ils partagent avec K-NN l'idée fondamentale : **apprendre à partir d'exemples**."
},
{
"cell_type": "markdown",
"id": "cell-23",
"metadata": {},
"source": "#### Question 5\nÀ votre avis, quelle est la différence entre un programme \"classique\" (comme ceux que vous avez écrits en Python cette année) et un programme qui *apprend* ? Essayez d'expliquer avec vos mots."
},
{
"cell_type": "markdown",
"id": "cell-24",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "markdown",
"id": "cell-25",
"metadata": {},
"source": "---\n\n### Pour aller plus loin (optionnel)\n\nDeux vidéos excellentes de David Louapre (Science Étonnante) si le sujet vous intéresse :\n<li><a href=\"https://www.youtube.com/watch?v=7ell8KEbhJo\">Ce qui se cache derrière le fonctionnement de ChatGPT</a>\n<li><a href=\"https://www.youtube.com/watch?v=YcIbZGTRMjI\">Les 4 étapes pour entraîner un LLM</a>"
},
{
"cell_type": "markdown",
"id": "cell-26",
"metadata": {},
"source": [
"---\n",
"\n",
"Licence :\n",
"\n",
"Auteur : Florian Mathieu — contenu adapté du cours de D. Roche (pixees.fr/informatiquelycee)\n",
"\n",
"<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"Licence Creative Commons\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.10.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

185
ia/metiers_ia.ipynb Normal file
View File

@@ -0,0 +1,185 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "cell-0",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "# L'informatique, les métiers et l'IA\n### Votre avenir : ce qui change, ce qui reste\n\n<br>\n\n*NSI Première - M. Mathieu*"
},
{
"cell_type": "markdown",
"id": "cell-1",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Travailler dans l'info, c'est quoi ?\n",
"\n",
"Pas juste *\"coder dans un bureau\"*.\n",
"\n",
"L'informatique est **transversale** : elle touche tous les secteurs.\n",
"\n",
"<br>\n",
"\n",
"| Secteur | Exemples de postes |\n",
"|---|---|\n",
"| Industrie / Défense | ingénieur systèmes embarqués, cybersécurité |\n",
"| Santé | développeur logiciel médical, data analyst |\n",
"| Finance | ingénieur quantitatif, développeur trading |\n",
"| Jeux vidéo | game developer, technical artist |\n",
"| Éducation / Recherche | enseignant NSI, chercheur en IA |\n",
"| Web / Startups | développeur full-stack, product manager |"
]
},
{
"cell_type": "markdown",
"id": "cell-2",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Les grands métiers\n\n**Développeur·euse** : conçoit et code des logiciels, applications web ou mobiles\n\n**Data scientist / Ingénieur·e ML** : analyse des données, construit des modèles d'apprentissage\n\n**Administrateur·rice système / DevOps** : gère les serveurs, les déploiements, l'infrastructure\n\n**Analyste en cybersécurité** : protège les systèmes, détecte et répond aux attaques\n\n**Chef·fe de projet / Product Manager** : fait le lien entre les équipes techniques et le besoin client\n\n**UX Designer** : conçoit les interfaces pour qu'elles soient utilisables et agréables"
},
{
"cell_type": "markdown",
"id": "cell-3",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Ce que ça rapporte (en France, 2025)\n",
"\n",
"| Métier | Débutant | Confirmé (5 ans) |\n",
"|---|---|---|\n",
"| Développeur web | 2835 k€ | 4560 k€ |\n",
"| Data scientist | 3845 k€ | 6080 k€ |\n",
"| Cybersécurité | 3845 k€ | 6590 k€ |\n",
"| DevOps / SRE | 4050 k€ | 6590 k€ |\n",
"| Chef·fe de projet IT | 3545 k€ | 5575 k€ |\n",
"\n",
"<br>\n",
"\n",
"> Le secteur informatique est l'un des rares où le **chômage est quasi inexistant** et où les **salaires progressent vite**."
]
},
{
"cell_type": "markdown",
"id": "cell-4",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Les études après NSI\n\n**BTS SIO** *(2 ans, bac+2)* : deux spécialités, SLAM (développement) ou SISR (réseaux/systèmes). Opérationnel rapidement, possibilité de poursuivre en licence.\n\n**BTS CIEL** *(2 ans, bac+2)* : Cybersécurité, Informatique et réseaux, Électronique. Deux options : IR (Informatique et Réseaux) ou ER (Électronique et Réseaux).\n\n**BUT Informatique** *(3 ans, bac+3)* : solide, polyvalent, très demandé. Remplace l'ancien DUT.\n\n**Licence informatique** *(3 ans, puis master 5 ans)* : parcours universitaire, très complet théoriquement.\n\n**Prépa + École d'ingénieur** *(5 ans, bac+5)* : voie d'excellence, très sélective. NSI est un vrai atout.\n\n**École spécialisée** (Epitech, 42, SUPINFO...) : formations par projets, très professionnalisantes.\n\n<br>\n\n> NSI vous **différencie sur Parcoursup** pour toutes ces filières."
},
{
"cell_type": "markdown",
"id": "cell-5",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Ce que NSI vous apporte concrètement\n\n- **Parcoursup** : mention explicite de NSI valorisée dans toutes les filières informatiques et scientifiques\n- **Prépa** : les élèves de NSI ont moins de difficultés en informatique et algorithmique en MPSI/PCSI\n- **BUT/BTS** : vous arrivez avec un niveau Python + algorithmique que vos camarades sans NSI n'ont pas\n- **Université** : bases solides pour les UE d'algorithmique de L1\n\n<br>\n\n> Même si vous ne faites **pas** d'informatique après le bac, NSI vous a appris à **décomposer un problème**, compétence utile partout."
},
{
"cell_type": "markdown",
"id": "cell-6",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## L'IA va-t-elle tuer les métiers de l'informatique ?\n",
"\n",
"<br>\n",
"\n",
"### Qu'est-ce que vous en pensez ?"
]
},
{
"cell_type": "markdown",
"id": "cell-7",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Ce qui change vraiment\n",
"\n",
"**Ce que l'IA automatise :**\n",
"<li>Génération de code répétitif (tests, documentation, boilerplate)\n",
"<li>Débogage de bugs simples\n",
"<li>Traduction, mise en forme, résumé de documents\n",
"\n",
"<br>\n",
"\n",
"**Ce qui reste humain :**\n",
"<li>Concevoir l'architecture d'un système complexe\n",
"<li>Comprendre le vrai besoin du client\n",
"<li>Décisions éthiques et responsabilité\n",
"<li>Créativité et innovation\n",
"\n",
"<br>\n",
"\n",
"> **Un dev qui utilise l'IA > un dev qui ne l'utilise pas.**\n",
"> Mais l'IA seule ne remplace pas un bon développeur."
]
},
{
"cell_type": "markdown",
"id": "cell-8",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Les nouveaux métiers qui émergent\n\n**Prompt engineer** : spécialiste de la communication avec les LLMs\n\n**AI trainer / RLHF annotator** : humains qui évaluent et corrigent les réponses des modèles\n\n**AI safety researcher** : travaille à rendre les IA plus fiables et moins dangereuses\n\n**MLOps engineer** : déploie et maintient des modèles de ML en production\n\n**AI product manager** : conçoit des produits intégrant de l'IA\n\n<br>\n\n> En 2030, une part significative des postes tech n'existe pas encore aujourd'hui. Comme en 2010, personne ne cherchait de *data scientist*."
},
{
"cell_type": "markdown",
"id": "cell-9",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Ce que ça change pour vous, maintenant\n\n**Dans vos études :**\n<li>Les écoles et universités intègrent l'IA dans leurs formations, mais elles exigent toujours de <em>comprendre</em>, pas juste de <em>produire</em>\n<li>Utiliser ChatGPT pour faire vos TPs sans comprendre : efficace à court terme, dangereux à l'examen\n<li>L'utiliser pour <em>comprendre</em> ce que vous ne saisissez pas : excellente idée\n\n<br>\n\n**Dans vos futurs métiers :**\n<li>La compétence la plus recherchée restera : <strong>savoir apprendre vite</strong>\n<li>Les fondamentaux (algorithmique, logique, réseaux) ne se démodent pas\n<li>Ce que vous apprenez en NSI, c'est un socle, pas une fin"
},
{
"cell_type": "markdown",
"id": "cell-10",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": "## Questions pour la discussion\n\n- Quel métier informatique vous attire le plus, et pourquoi ?\n- Est-ce que vous utilisez déjà l'IA dans votre travail scolaire ? Comment ?\n- Avez-vous peur que l'IA prenne votre futur emploi ?\n- Qu'est-ce qui, selon vous, ne pourra **jamais** être automatisé ?\n\n<br>\n\n> *\"Les ordinateurs sont incroyablement rapides, précis et stupides. Les humains sont incroyablement lents, imprécis et brillants. Ensemble, ils sont puissants au-delà de toute imagination.\"*\n> Attribué à Albert Einstein (mais probablement apocryphe, ce qui en dit long sur l'IA aussi 😉)"
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.10.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -165,8 +165,8 @@ Puisque 45 est compris entre **32** et **48**, notre réseau commence à 32.
| CIDR | Masque | Nombre magique | Nombre d'hôtes |
|------|--------|----------------|----------------|
| /8 | 255.0.0.0 | 256 (octet 2) | 16 777 214 |
| /16 | 255.255.0.0 | 256 (octet 3) | 65 534 |
| /8 | 255.0.0.0 | 256 (octets 2, 3 et 4 libres) | 16 777 214 |
| /16 | 255.255.0.0 | 256 (octets 3 et 4 libres) | 65 534 |
| /24 | 255.255.255.0 | 256 (octet 4) | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |

View File

@@ -42,7 +42,9 @@ C'est pour cela que le __protocole__ *Domain Name System* a été créé.
### Adresse symbolique
Le protocole DNS permet d'associer une adresse IP à une *__adresse symbolique__* aussi appelée __*URL*__: celle ci est simple à retenir, et très souvent en rapport avec son contenu : http://www.nice.fr/fr/ par exemple, est le site qui traite de la ville de ...Nice.
Le protocole DNS permet d'associer une adresse IP à un **nom de domaine** (aussi appelé *adresse symbolique*) : celui-ci est simple à retenir, et très souvent en rapport avec son contenu. Par exemple, `www.nice.fr` est le nom de domaine du site de la ville de Nice.
> **Attention** : le nom de domaine (`www.nice.fr`) n'est pas la même chose qu'une URL (`http://www.nice.fr/fr/`). L'URL inclut en plus le protocole (`http`) et le chemin vers la ressource (`/fr/`). Le DNS ne résout que la partie **nom de domaine**.
Toutes ces adresses vont être enregistrées auprès d'un organisme, *L'ICANN*.
@@ -167,7 +169,7 @@ Que constatez vous ?
- Le **DNS** est un ............... et signifie D.......... N.........S.........
- Le protocole DNS permet d'associer une ......................... à une .................... aussi appelée . . .
- Le protocole DNS permet d'associer une ......................... à un .................... (aussi appelé adresse symbolique).
- Une **URL** est composée de 5 parties:
- ..............................
- ...............................

View File

@@ -2,7 +2,7 @@
--------------
Cette partie vous proposera d'observer le fonctionnement d'un ou plusieurs échanges [peer-to-peer](../../p2p/README.md) à l'intérieur du réseau précédemment utilisé lors de [l'activité 3](../seance_3/README.md).
Cette partie vous proposera d'observer le fonctionnement d'un ou plusieurs échanges peer-to-peer à l'intérieur du réseau précédemment utilisé lors de [l'activité 3](../seance_3/README.md).
Les objectifs :

View File

@@ -1,6 +1,6 @@
# Le protocole TCP
> Parmi tous les [protocoles](../definition/PROTOCOLE.md) employés dans le domaine de l'informatique, on peut très souvent entendre l'un d'entre eux revenir en boucle : IP. Et il se trouve qu'IP a un grand ami, le protocole TCP, avec qui il est très proche.
> Parmi tous les protocoles employés dans le domaine de l'informatique, on peut très souvent entendre l'un d'entre eux revenir en boucle : IP. Et il se trouve qu'IP a un grand ami, le protocole TCP, avec qui il est très proche.
TCP, ou *Transmission Control Protocol* est toujours associé à IP, sous la dénomination *__TCP/IP__*. Il s'agit d'un membre essentiel d'Internet : il permet de relier les machines entre elles, ainsi que d'assurer l'échange de données, en garantissant l'arrivée à destination de paquets.
@@ -53,6 +53,8 @@ Contrairement au protocole TCP, UDP s'affranchit de la numérotation des paquets
*__Pourquoi, d'après vous, le protocole UDP est-il plus rapide que TCP ?__*
![concept.jpeg](assets/concept.jpeg)
On suppose qu'Arobase souhaite envoyer des fichiers personnels sur son cloud Bobble Drive, et pour patienter, Arobase décide de regarder son jeu favori sur une plateforme de streaming.
À votre avis :
@@ -62,23 +64,57 @@ On suppose qu'Arobase souhaite envoyer des fichiers personnels sur son cloud Bob
- Que faire si un paquet se perd ?
- Que faire si un paquet arrive en double ?
## Mais au fait, comment se font ces échanges tcp ?
## Les ports : distinguer les services
Une adresse IP identifie une machine sur le réseau, mais une même machine fait tourner plusieurs services en même temps (navigateur web, messagerie, streaming…). Pour les distinguer, on utilise les **ports**.
Un **port** est un numéro compris entre 0 et 65 535 qui identifie un service particulier sur une machine.
| Port | Service |
|------|---------|
| 80 | HTTP (pages web) |
| 443 | HTTPS (pages web sécurisées) |
| 22 | SSH (connexion distante) |
| 25 | SMTP (envoi d'e-mails) |
| 53 | DNS |
L'association d'une adresse IP et d'un numéro de port s'appelle une **socket**.
> **Exemple** : quand vous accédez à `https://www.google.fr`, votre machine contacte l'adresse IP de Google sur le port **443**. La socket de destination est donc `adresse_IP_google:443`.
---------
## Mais au fait, comment se font ces échanges TCP ?
Avant de transmettre des données, TCP établit une connexion en **3 étapes** — on parle de ***three-way handshake*** (poignée de main en trois temps) :
1. **SYN** — le client envoie une demande de connexion au serveur
2. **SYN-ACK** — le serveur accepte et le confirme
3. **ACK** — le client confirme à son tour : la connexion est établie
Ce n'est qu'après ces 3 échanges que les données commencent à transiter, découpées en **paquets numérotés**.
---
Voilà comment se déroule un échange entre un client et un serveur TCP.
Tout d'abord, le client demande un canal TCP au serveur
Tout d'abord, le client envoie un **SYN** pour demander l'ouverture d'un canal :
![blague_1.png](assets/blague_1.png)
Puis le serveur se met en mode TCP et envoie les données découpées en paquets :
Le serveur répond **SYN-ACK**, puis envoie les données découpées en paquets. Chaque paquet reçu est **acquitté** (ACK) par le destinataire pour confirmer sa bonne réception :
![blague_1.png](assets/blague_2.png)
![blague_2.png](assets/blague_2.png)
Hélas on voit ici que le message était trop long, et que le canal s'est refermé après la durée choisie par défaut...
Si le canal se ferme avant que tous les paquets soient arrivés (timeout, coupure réseau…) :
![blague_1.png](assets/blague_3.png)
![blague_3.png](assets/blague_3.png)
Et que se passe-t-il dans ce cas ...?
…les paquets manquants sont **retransmis** automatiquement. C'est la garantie de fiabilité de TCP :
![blague_4.png](assets/blague_4.png)
@@ -88,3 +124,27 @@ Et que se passe-t-il dans ce cas ...?
- ............. permet de s'assurer que les données transmises sont bien arrivées à destination, contrairement à ............
- UDP est plus ..................... que TCP mais n'assure en aucun cas la fiabilité de la transmission
- Avec le protocole IP, ils forment un modèle informatique appelé ................
-------
# Licence
**Auteur** : Florian Mathieu
**Licence** : CC BY-NC-SA 4.0
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">
<img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" />
</a>
Ce cours est mis à disposition selon les termes de la [Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International](http://creativecommons.org/licenses/by-nc-sa/4.0/).
## Vous êtes autorisé à :
- **Partager** — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
- **Adapter** — remixer, transformer et créer à partir du matériel
## Selon les conditions suivantes :
- **Attribution** — Vous devez créditer l'auteur, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées
- **Pas d'Utilisation Commerciale** — Vous n'êtes pas autorisé à faire un usage commercial de ce matériel
- **Partage dans les Mêmes Conditions** — Si vous remixez ou transformez le matériel, vous devez diffuser vos contributions sous la même licence

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB