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

9 séances disponibles

Sur petit écran, faites défiler le tableau horizontalement.

N°Chapitre / séance
01Fondements, syntaxe et mémoire
02Bibliothèque standard, propriété et gestion des erreurs
03Traits, génériques et mutabilité intérieure
04Cargo, modules et itérateurs
05Métaprogrammation et API applicatives
06Pointeurs intelligents et sûreté des systèmes
07Rust non sûr, concurrence et parallélisme
08Programmation asynchrone et développement web en Rust
09Objets de traits et patrons de conception en Rust