Mes enseignements · 9 séances disponibles
Programmation Rust
Ce cours propose une progression complète en programmation Rust, depuis la syntaxe et le modèle de propriété jusqu'à la conception de programmes concurrents, asynchrones et orientés système. Il met l'accent sur le lien entre les garanties du compilateur, la conception des abstractions et la qualité du logiciel produit. Les étudiants pratiquent Cargo, la bibliothèque standard, les traits, les génériques, la gestion des erreurs, les pointeurs intelligents, les tests et les API applicatives. Les dernières séances ouvrent vers la concurrence, le Web et les patrons de conception en explicitant les compromis entre sûreté, performance, ergonomie et complexité.
Objectifs
- Écrire des programmes Rust structurés en mobilisant variables, types, fonctions, structures, énumérations et pattern matching.
- Expliquer la propriété, l'emprunt, les références et les durées de vie afin de diagnostiquer les erreurs du compilateur.
- Utiliser `Option`, `Result` et les conventions idiomatiques de gestion des erreurs.
- Structurer, compiler, tester et documenter un projet avec Cargo, les modules et les crates.
- Concevoir des abstractions réutilisables avec les traits, les génériques, les fermetures et les macros.
- Choisir entre collections, itérateurs, pointeurs intelligents et différentes stratégies de mutabilité.
- Développer des programmes concurrents, parallèles et asynchrones en identifiant les risques de partage d'état.
- Construire une API applicative ou Web minimale et raisonner sur ses tests, ses performances et ses limites.
- Délimiter le code `unsafe`, expliciter ses invariants et comparer dispatch statique, objets de traits et patrons de conception.
Prérequis
- Bases de programmation impérative : variables, fonctions, conditions, boucles et modularité.
- Notions de structures de données et de programmation orientée objet ou fonctionnelle.
- Capacité à utiliser un terminal, un éditeur de code et un compilateur ou interpréteur.
- Notions élémentaires de systèmes, processus, mémoire et réseau pour les séances avancées.
- Une première expérience de Git et des tests logiciels est recommandée, sans être obligatoire.
Public cible
Étudiantes et étudiants en informatique, génie logiciel ou systèmes.
Parcours pédagogique
Séances et ressources
Sur petit écran, faites défiler le tableau horizontalement.
| N° | Chapitre / séance |
|---|---|
| 01 | Fondements, syntaxe et mémoire |
| 02 | Bibliothèque standard, propriété et gestion des erreurs |
| 03 | Traits, génériques et mutabilité intérieure |
| 04 | Cargo, modules et itérateurs |
| 05 | Métaprogrammation et API applicatives |
| 06 | Pointeurs intelligents et sûreté des systèmes |
| 07 | Rust non sûr, concurrence et parallélisme |
| 08 | Programmation asynchrone et développement web en Rust |
| 09 | Objets de traits et patrons de conception en Rust |