Skip to content

Programming (Rust) (04_XBPRG)

  • Coefficient : 3
  • Hourly Volume: 56h (including 36h supervised)
    Labo : 36h supervised (and 6h unsupervised)
    Out-of-schedule personal work : 14h
  • Including project : 36h supervised and 14h unsupervised project

AATs Lists

Description

It's about producing reliable and efficient code by exploiting the properties of a modern programming language.

A mini-project subject addresses these notions in practice:

  1. practices around Rust:
    • improving code quality with a linter,
    • documentation generation,
    • carrying out unit and integration tests,
    • dependency management
  2. the rules of writing language:
    • data type inference,
    • optional data,
    • error reporting,
    • destructuring by pattern-matching,
    • closures
  3. the distinction between values ​​and references: moving or copying values, shared or exclusive references
  4. sequence manipulation: consumption, consultation or modification of the elements, functional style, views on an existing sequence, character strings
  5. code organization: in types, in modules, in libraries, resource encapsulation
  6. code optimization: measurement of time spent in various portions of code, impact on the energy consumption of the solution

Learning Outcomes AAv (AAv)

  • AAv1 [heures: 14, G2] : At the end of this course, the students of the fourth semester will be able to use the current tools around a production in Rust language: writing with a suitable editor, compilation and code execution, quality control using a linter , documentation generation, unit and integration testing.

  • AAv2 [heures: 14, C2, C3, D1, D2, D3, D4, G2] : At the end of this course, students in the fourth semester will be able to use the main common types of the Rust language (arithmetic or elaborated).

  • AAv3 [heures: 14, C4] : At the end of this course, fourth semester students will be able to develop their own structured or enumerated types, add an implementation to them and practice the encapsulation approach.

  • AAv4 [heures: 14, C4] : At the end of this course, fourth semester students will be able to wisely use values ​​or references (shared or exclusive) as parameters and results of functions created in Rust.

Assessment methods

The assessment consists of two individual practical tests (mid- and end-of-semester) made up of exercises relating to the concepts that the mini-project subject tends to reveal. Representative examples will be provided for training. No final delivery of source code is expected for the mini-project.

Key Words

Programming, Rust language, lifecycle and data ownership

Prerequisites

Basic algorithmic concepts (variables, instructions/expressions, control structures, functions)

Resources

https://web.enib.fr/~harrouet/s4prg_rust/
https://web.enib.fr/~harrouet/rust/
https://www.rust-lang.org/learn/