Compare commits
11 Commits
f0af9f721e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ee0b7d40fb | |||
| defc4b893e | |||
| e91bea5dee | |||
| 7c729156ca | |||
| 67e501c5a3 | |||
| c0f325e038 | |||
| a5f39d4315 | |||
| 356d0974f0 | |||
| 6479525d29 | |||
| 6bc2324896 | |||
| dc3bab4951 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -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
|
||||
|
||||
@@ -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
BIN
ia/cognitive_debt.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
305
ia/culture_ia.ipynb
Normal file
305
ia/culture_ia.ipynb
Normal 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\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 Paris–New 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
185
ia/metiers_ia.ipynb
Normal 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 | 28–35 k€ | 45–60 k€ |\n",
|
||||
"| Data scientist | 38–45 k€ | 60–80 k€ |\n",
|
||||
"| Cybersécurité | 38–45 k€ | 65–90 k€ |\n",
|
||||
"| DevOps / SRE | 40–50 k€ | 65–90 k€ |\n",
|
||||
"| Chef·fe de projet IT | 35–45 k€ | 55–75 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
|
||||
}
|
||||
@@ -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 |
|
||||
|
||||
@@ -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:
|
||||
- ..............................
|
||||
- ...............................
|
||||
|
||||
@@ -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 :
|
||||
|
||||
|
||||
@@ -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 ?__*
|
||||
|
||||

|
||||
|
||||
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 :
|
||||
|
||||

|
||||
|
||||
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 :
|
||||
|
||||

|
||||

|
||||
|
||||
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…) :
|
||||
|
||||

|
||||

|
||||
|
||||
Et que se passe-t-il dans ce cas ...?
|
||||
…les paquets manquants sont **retransmis** automatiquement. C'est la garantie de fiabilité de TCP :
|
||||
|
||||

|
||||
|
||||
@@ -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
|
||||
|
||||
BIN
reseau/tcp/assets/concept.jpeg
Normal file
BIN
reseau/tcp/assets/concept.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 247 KiB |
Reference in New Issue
Block a user