Coding & Development🌐universal

CoursIA

Dépôt contenant les ressources et TPs d'un cours en IA en C# et en Python

Quick Start

Install this Skill

npx skills add jsboige/CoursIA
# CoursIA

**Apprendre l'intelligence artificielle par la pratique, des fondements théoriques aux applications avancées.**

CoursIA est un curriculum de notebooks Jupyter interactifs pour apprendre l'IA en la mettant en œuvre. On y part des algorithmes de recherche et des contraintes, puis on aborde le raisonnement formel, l'incertitude, la théorie des jeux, le machine learning, l'apprentissage par renforcement, l'IA générative et le trading algorithmique. Certaines séries vont jusqu'à la recherche : preuve mécanisée de théorèmes, évaluation rigoureuse de modèles et mesure de l'émergence causale dans leurs représentations internes.

Les notebooks utilisent Python, C# avec .NET Interactive et Lean 4. De nombreux concepts existent en **jumeaux C#/Python** : même problème et même progression, dans deux écosystèmes, afin de distinguer les idées de leur implémentation. Les parcours locaux sans clé ni GPU offrent une entrée immédiate ; les séries qui requièrent une API, le cloud, WSL ou une infrastructure GPU documentent leur environnement dès la mise en route.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

---

> **Catalogue vivant** -- Pour l'inventaire exhaustif (comptes par série, statut READY/DEMO, maturité PRODUCTION/BETA), consultez **[`COURSE_CATALOG.generated.md`](COURSE_CATALOG.generated.md)**. Généré par l'automatisation, ce catalogue porte les chiffres et les statuts ; ce README en donne la vue d'ensemble pédagogique.

## Commencer ici

### Choisir sa vitesse de lecture

Une série ne se lit pas comme une liste de fichiers à parcourir en entier. La numérotation de ses notebooks distingue **trois vitesses de lecture**, et chacun choisit la sienne, série par série :

| Vitesse | Ce qu'on lit | Comment le reconnaître |
|---|---|---|
| **Parcours principal** | les notebooks à **numéro nu** (`01`, `02`, `03`…), dans l'ordre | chacun porte un concept et ne suppose que ce qui le précède ; mis bout à bout, ils couvrent l'essentiel de la série |
| **Approfondissement** | les notebooks à **lettre** d'un palier (`02b`, `02c`…) | une lettre creuse le palier dont elle porte le numéro : formalisation, variante, résultat plus récent. On l'ouvre pour aller plus loin sur ce palier, pas pour avancer dans la série |
| **Recherche** | les **sous-séries** et les sections « Pour aller plus loin » des READMEs | une sous-série a son propre préfixe, son propre arc et un notebook pont depuis sa série mère |

Pour un premier passage, lisez les numéros nus d'une série sans ouvrir une seule lettre. Revenez ensuite aux lettres des paliers qui vous ont retenu. Les jumeaux Python, C# et Lean d'un même notebook partagent son numéro : choisissez l'implémentation, pas le contenu.

Les READMEs de série adoptent progressivement cette organisation. D'abord la table du parcours principal, où chaque palier renvoie à ses approfondissements ; puis les approfondissements, décrits palier par palier ; enfin la matière de recherche. Chaque section y annonce son public : Découverte, Licence ou Recherche.

### Choisir son principe de navigation

Quatre façons d'entrer dans le dépôt, sans parcourir tout le catalogue :

1. **Par série, à sa vitesse** : ouvrir le README d'une série (voir [Séries de notebooks](#séries-de-notebooks)) et suivre son parcours principal. C'est le mode de lecture par défaut.
2. **Par itinéraire narratif** : [PARCOURS.md](PARCOURS.md) présente trois itinéraires certifiés qui traversent plusieurs séries (accéléré GenAI, IA symbolique, lecture AIMA), avec leur public, leur durée et leur sortie concrète. Les cinq pages du catalogue qui listent les notebooks par domaine y sont présentées comme des **vues du catalogue**, pas comme des parcours.
3. **Par contrainte d'infrastructure** : [`parcours.qmd`](https://jsboige.github.io/CoursIA/parcours.html) propose trois niveaux d'équipement : local sobre (Python seul), .NET et Lean, puis GenAI complet (Docker et GPU).
4. **Par inventaire** : le [catalogue](COURSE_CATALOG.generated.md) liste tout, avec les statuts et la maturité.

Pour exécuter immédiatement, commencer par [Mise en route](#mise-en-route), puis ouvrir le notebook `Setup` ou `Environment` de la série choisie.

Le répertoire [docs/](docs/README.md) rassemble ensuite les références d'infrastructure, de validation et de contribution.

## Cartographie rapide du dépôt

```
MyIA.AI.Notebooks/
  Search/          -> Algorithmes de recherche (BFS, A*, Métaheuristiques, CSPs) -- point d'entrée idéal pour débutants
  Sudoku/          -> Résolution multi-paradigme -- plusieurs approches pour un seul problème (C#, Python)
  ML/              -> Machine Learning (ML.NET, agents ADK)
  RL/              -> Reinforcement Learning (du bandit au post-training des LLMs : DQN, PPO, SAC, GRPO, DPO)
  Probas/          -> Programmation probabiliste (Infer.NET, PyMC, Pyro) + théorie de la décision
  GameTheory/      -> Théorie des jeux, équilibres de Nash, mechanism design, social choice


... (truncated)