Skip to content

Programmation en langage Rust (04_XBPRG)

  • Coefficient : 3
  • Volume Horaire: 56h estimées de travail (dont 42h EdT)
    Labo : 36h encadrées (et 6h de séances d'études dirigées)
    Travail personnel hors EdT : 14h
  • Dont projet : 36h encadrées et 14h projet personnel

Liste des AATs

Description

Il s'agit de produire du code fiable et efficace en exploitant les propriétés d'un langage de programmation moderne.

Un sujet de mini-projet aborde par la pratique ces notions :

  1. les pratiques autour de Rust
    • l'amélioration de la qualité du code par un linter
    • la génération de documentation
    • la réalisation de tests unitaires et d'intégration
    • la gestion des dépendances
  2. les règles d'écriture du langage
    • la déduction des types
    • les données optionnelles
    • le signalement des erreurs
    • la déstructuration par pattern-matching
    • les closures
  3. la distinction entre valeurs et références
    • le déplacement ou la copie des valeurs
    • les références partagées ou exclusives
  4. la manipulation de séquences
    • la consommation, la consultation ou la modification des éléments
    • le style fonctionnel
    • les vues sur une séquence existante
    • les chaînes de caractères
  5. l'organisation du code
    • en types, en modules, en bibliothèques
    • l'encapsulation des ressources
  6. l'optimisation du code
    • mesure du temps passé dans les diverses portions de code
    • impact sur la consommation énergétique de la solution

Acquis d'Apprentissage visés (AAv)

  • AAv1 [heures: 14, G2] : À l'issue de cet enseignement, les étudiants du quatrième semestre seront capables d'utiliser l'outillage courant autour d'une réalisation en langage Rust : la rédaction avec un éditeur adapté, la compilation et l'exécution du code, le contrôle de la qualité par un linter, la génération de documentation, la réalisation de tests unitaires et d'intégration.
  • AAv2 [heures: 14, C2, C3, D1, D2, D3, D4, G2] : : À l'issue de cet enseignement, les étudiants du quatrième semestre seront capables d'utiliser les principaux types courants du langage Rust (arithmétiques ou élaborés).
  • AAv3 [heures: 14, C4] : À l'issue de cet enseignement, les étudiants du quatrième semestre seront capables d'élaborer leurs propres types structurés ou énumérés, de leur adjoindre une implémentation et de pratiquer la démarche d'encapsulation.
  • AAv4 [heures: 14, C4] : À l'issue de cet enseignement, les étudiants du quatrième semestre seront capables d'utiliser à bon escient des valeurs ou des références (partagées ou exclusives) comme paramètres et résultats de fonctions réalisées en Rust.

Modalités d'évaluation

L'évaluation consiste en deux épreuves pratiques individuelles (milieu et fin de semestre) constituées d'exercices portant sur les notions que le sujet de mini-projet tend à faire découvrir. Des exemples représentatifs seront fournis pour l'entraînement. Aucune livraison finale de code source n'est attendue pour le mini-projet.

Mots clés

Programmation, langage Rust, cycle de vie et propriété des données

Pré-requis

Notions d'algorithmique élémentaires (variables, instructions/expressions, structures de contrôle, fonctions)

Ressources

http://www.enib.fr/~harrouet/s4prg_rust/

https://www.rust-lang.org/learn