Création de la progression

This commit is contained in:
Alexis Fourmaux 2025-07-18 14:20:06 +02:00
parent 4c1925d3c4
commit 889358a091
18 changed files with 401 additions and 14 deletions

BIN
Planning.ods Normal file

Binary file not shown.

View file

@ -0,0 +1,43 @@
# Bases de l'algorithmique avec Python
## Le langage Python
Expliquer rapidement ce que c'est d'où ça vient, ses spécificités, pourquoi on apprend celui là...
- Rappels de représentation des données (binaire, nombres)
- Interpréteur
- Entrée / sortie (print + input)
- Opérations basiques
- Types + variables
- Chaines de caractères + formatage
- Structures conditionnelles
- Boucles while, for, break + continue
- Fonctions
- Import de modules
- Création de modules et packages
- Exceptions
- Structures de données
- chaines de caractères
- listes
- tuples
- dictionnaires
- set
- les fichiers
- Portée des variables et références
<!-- - Test unitaires
- Debug
- Bonnes pratiques -->
## TP
- TP1 découverte du langage avec Thonny et mode interactif + Bonus : Installation de python
- TP2 fonctions et utilisation de VSCode + Bonus modularité
- TP3 Modularité et structures de données
- Connexion avec l'adressage IP : [exercice de scanner d'adresse IP](https://lycee-benoit.tech/BTS/_defrance/ciel/d2/python/lab-containers.html#exo3)
- TP4 Python : jouer avec les fichiers et les exceptions
- Alternative TP4 : Tests unitaires
## TD
- Exercices sur les bases de python
- Fonctions et modules
- Les structures de données
- Fichiers et exceptions
- Préparation au devoir avec des révisions et les points les + importants

View file

@ -0,0 +1,39 @@
# L'adressage IP
## Adresse IP
- Qu'est-ce qu'une adresse IP ?
- A quoi ça sert ?
- Comment c'est construit ?
- IPv4 / IPv6
## Les classes d'adresse IP
## Les adresses IP spéciales
- Adresse de réseau
- Adresse de diffusion (broadcast)
- Adresses publiques, adresses privées
- Adresse d'initialisation
- Adresse de boucle locale (localhost/loopback)
## Les masques de sous-reseau
## Le plan d'adressage
- Unicité
- Choix des sous réseaux
- Obtenir une adresse IP ?
- Construire un plan d'adressage structuré
## IPv6 ??
- Pourquoi IPv6 ?
- Similitudes avec IPv4
- Différences avec IPv4
# Exercices
## Application / compréhension
## Exercices de programmation pour jouer avec adresses IP -> Voir TP Python
# Mise en pratique / TP
[Cisco Packet Tracer](https://wiki.archlinux.org/title/Packet_Tracer)
[GNS3](https://wiki.archlinux.org/title/GNS3)
# Evaluation

View file

@ -0,0 +1,31 @@
# Les conteneurs
## Concept
VM vs Conteneurs
Qu'est-ce qu'un conteneur et à quoi ça sert
Systèmes de conteneurisation : Docker, LXC, Podman...
Conteneurs, images, registries
## Utiliser Docker
### CLI
- Lancer/arrêter un conteneur avec une image existante
- Les variables d'environnement
- Les volumes
- Le réseau dans docker, et les applications multi-conteneurs
- Interagir avec un conteneur (accéder à un terminal)
### Docker Compose
- Le YAML
- Configurer un ou plusieurs conteneurs avec un fichier
## Créer une image docker
A mon avis ambitieux, voir avec les collègues. Sinon rester basique.
https://lycee-benoit.tech/BTS/_defrance/ciel/r3/docker/lab-docker-101.html#exo2
# Orga
## TP
- Découverte de docker avec 1 puis 2 conteneurs (site web et ensuite db) et docker compose
- Personnalisation d'une image et compilation + mise en route + destruction
## Cours
- Retour sur les conteneurs (après le premier TP)
- Retour sur la fabrication d'images (après le second TP)

View file

@ -0,0 +1 @@
# L'environnement de développement

View file

@ -0,0 +1,15 @@
# Les forges logicielles
## Git sur un serveur
### Local, HTTP ou SSH
### GitWeb --> ? à voir (+ installer un serveur git)
### Forgejo ? Install rapide avec docker pour la démo
## Travailler en groupe avec Git : git distribué
- notion de PR/MR
- Flux de travail
## Les plateformes
### GitLab
### GitHub
### Auto-hébergées

View file

@ -0,0 +1,41 @@
# Git
## La gestion de version, concept
### Concept
### Autres systèmes de gestion de version vs git
## Installer et paramétrer git à la première utilisation
### Installation sous windows
### Installation sous linux
### Fichier gitconfig
### Aide
- Doc
- man
- git help
## Bases
### Démarrer un nouveau dépôt
### Enregistrer une modification : commit
### .gitignore
### Voir l'historique
### Revenir en arrière
### Travailler avec un dépôt distant
### Etiquetage
## Branches
### Concept
### Brancher, fusionner
### Comment bien utiliser le branches
### Branches locales et branches distantes
### Rebase
## Git Cheat Sheet
### Avant toute chose : lire la doc
### Les commandes courantes
# Organisation
## TP
- TP découverte de git
+ utilisation régulière dans les autres TP
## Classe entière
Première approche ou synthèse ?

View file

@ -0,0 +1,50 @@
# Le Web statique
## Lancer un serveur web
### En développement
`python3 -m http.server`
Puis `http://localhost:8000`
### En production
Apache, nginx...
Voir à la fin d'un TP
## HTML : structurer et donner du sens au contenu
### Bases
[MDN - Introduction au HTML](https://developer.mozilla.org/fr/docs/conflicting/Learn_web_development/Core/Structuring_content_2f5dc6d6e575054cc70e0a8faa24bef31907d53cee6754dd2c92e644e705a7d8)
### Debug
[MDN - Debug HTML](https://developer.mozilla.org/fr/docs/Learn_web_development/Core/Structuring_content/Debugging_HTML)
### Multimédia
images, audio, video
### Tableaux
### Point sur l'accessibilité (ou intégrer au fil du temps ?) et les bonnes pratiques
### Balises de formulaire (à voir avec le JS ?)
## CSS : donner du style au contenu
### Bases
- sélecteur > accolades > `propriétés: valeurs;`
- Intégrer la CSS dans la page
- Mise en forme et modification du comportement par défaut
- Sélections : classes, état, position, combinaisons, cascades (bonus: pseudo classes et pseudo éléments)
- Propriétés et valeurs
- fonctions
- @rules -> @import et @media
- propriétés raccourcies (border, padding...)
- boîtes et flex
### Debugger du CSS
Firefox powaa
## Ressources supplémentaires
MDN Web Docs, section Learn: https://developer.mozilla.org/fr/docs/Learn_web_development
ou section référence : https://developer.mozilla.org/fr/docs/Web
# Orga
## TP
- Découverte du HTML + bases CSS
- Styler une page web avec CSS (boîtes et flex)

View file

@ -0,0 +1,38 @@
# JavaScript
## Que fait le JS ?
Programmation classique
Opérations sur chaines de caratères ou en réponse à des évènements
Interaction avec diverses API : DOM, WebGL, Canvas, Géolocalisation, WebRTC... Autres API tierces.
Interprété, dynamique
Côté client
## Ajouter du JS à une page
- Interne avec balise `<script>`
- Externe avec src dans `<script>`
- Attention au moment où le JS est chargé
## Variables `var` et `let`
## Console JS
## Opérateurs
### Arithmétiques
### Comparaison
## Structures conditionnelles
## Structures répétitives
## Fonctions
## Evènements
## Objets (utilisateur)
## Manipuler le DOM
### C'est quoi le DOM ?
### Manipulations de base
## Debug
## Un mot sur les frameworks : nope
# Orga
## TP
- Découverte du JS
- Evènements et manipuler le DOM
- Jouer avec les API REST (le faire en Python aussi ?)
## Cours
- DOM
- API REST ?

View file

@ -0,0 +1,50 @@
# Bases de données
## Bases de données, c'est quoi ?
### Différents types
### BDD relationnelles
## Définitions et modélisation (aborder avec une approche pratique)
- Relation, schéma, attributs
- Contraintes : intégrité, unicité, inclusion
- Clés (primaire, étrangère...)
- Schéma relationnel
- Many to One, One to Many, Many to many et One to One
## SQL
- Manipuler des données
- Manipuler le schéma
- Atomicité (begin, commit, rollback)
- Jointures
# Orga
## TP
- Découverte du SQL et des bases de données
- Docker pour lancer postgres ou mariadb
- Utilisation de la console
- Création d'une table, insertion de données, selection, mises à jour
- update et delete
- mise en place de contraintes
- clés primaires
- Création d'une seconde table et clés étrangères
- jointures naturelles et normalisées
- Bases de données relationnelles avancées
- Analyse et compréhension d'un MCD
- Mise en oeuvre du schéma et paramétrage des droits (création des tables + insertion de données)
- Modification/complétion du schéma
- Modification du schéma
- Atomicité
- Faire une sauvegarde / restauration
- Paramétrage du fichier de configuration
- Bonus : Optimiser une BDD
- Introduction aux index
- Analyse des performances d'une requête complexe + optimisation
- Nettoyage d'une base
## Cours
- Retour sur le TP + Lire un MCD + Many to one / One to many / etc...
- Bonnes pratiques de maintenance des BDD
## TD
- Requêtes (2 séances)
- Analyse de schéma, amélioration de schéma, création de petits schémas

View file

@ -0,0 +1,28 @@
# Une application web complète avec Python
## Python avec bdd
- psycopg3 et les requêtes SQL
- Connexion à une base
- Injection SQL !
- Manipulation des données
## Python Flask
- Notion de client / serveur
- API
- Templating
- Evènements / boucle
## Appli web complète
# Orga
## TP
- Manipuler des fichiers et comprendre les exceptions
- Découverte de Flask et du templating pour générer des pages web dynamiques ou des API REST
- Connexion et utilisation d'une base de données en python (postgres) : requêtes + exploitation des données
- Micro-projet d'application d'utilisation d'une base de données et de l'affichage de données sur une page web via flask (basée sur les deux précédents TP)
## Cours
- Synthèses TP
## TD
- fichiers
- exceptions

1
src/cours/CIEL1/ciel1.md Normal file
View file

@ -0,0 +1 @@
# CIEL 1e année

View file

@ -0,0 +1,10 @@
# Python révisions
## Révisions Python
Bases voir première année
# Orga
## TP
- Bases jusqu'aux fonctions + coder proprement
- Structures de données, modularité, exceptions et fichiers + coder proprement
## Support de Cours

View file

@ -0,0 +1,26 @@
# Python objet
## Objet côté développeur
- Classes, objets/instance, modèles : abstraction
- Attributs : portée/accès, attributs de classe, constructeur
- Méthodes : notion de self + paramètres, méthode statique
- Propriétés et encapsulation, getter, setter, destructeur
- Méthodes spéciales
- `__init__` `__del__`
- Méthodes de représentation
- Méthodes mathématiques / comparaison
- Voir doc pour plus
- Héritage
- Simple
- Polymorphisme + isinstance()
- Super() + issubclass()
- Héritage multiple (aperçu)
- Classes abstraites et programmation par contrat / interface / protocole
# Orga
## TP
- Classes, attributs, méthodes, propriétés, encapsulation, constructuer... Surcharges d'opérateur + représentation
- Héritage et classes abstraites
- Bonus : Coder proprement
## Support de Cours

View file

@ -0,0 +1,12 @@
# Bases de données
## Révisions
# Orga
## TP
- Mise en œuvre d'une base de données et requêtes (avec restauration et backup) à partir d'un MCD à compléter
- Exploitation de la base de données via python (objet) et traitement de données
- Python + DB + Flask : proposer une API et une interface web dynamique
## Support de cours
- Rappels de db
- Exploitation de DB avec Python
- Python + Flask

1
src/cours/CIEL2/ciel2.md Normal file
View file

@ -0,0 +1 @@
# CIEL 2e année

View file

@ -1,3 +1,16 @@
# Summary # Summary
- [CIEL 1e année](./CIEL1/ciel1.md)
- [Chapter 1](./chapter_1.md) - [Bases de l'algorithmique avec Python](./CIEL1/01-bases-python/algorithmique-python.md)
- [L'adressage IP](./CIEL1/02-reseau/adressage-ip.md)
- [L'environnement de développement](./CIEL1/03-dev-env/dev-env.md)
- [Les conteneurs](./CIEL1/03-dev-env/conteneurs.md)
- [Git](./CIEL1/03-dev-env/git.md)
- [Les forges logicielles](./CIEL1/03-dev-env/forges.md)
- [Le web statique](./CIEL1/04-web-statique/web-statique.md)
- [JavaScript](./CIEL1/05-web-js/web-js.md)
- [Bases de données](./CIEL1/06-bases-de-donnees/bases-de-donnees.md)
- [Une application web complète avec Python](./CIEL1/07-appli-web/appli-web.md)
- [CIEL 2e année](./CIEL2/ciel2.md)
- [Révisions Python](./CIEL2/01-revisions-python/python-revisions.md)
- [Python objet](./CIEL2/02-python-objet/python-objet.md)
- [Bases de données](./CIEL2/03-base-de-donnees/bases-de-donnees.md)

View file

@ -1,12 +0,0 @@
# Chapter 1
```admonish warning
A beautifully styled message.
```
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```