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:
- practices around Rust:
- improving code quality with a linter,
- documentation generation,
- carrying out unit and integration tests,
- dependency management
- the rules of writing language:
- data type inference,
- optional data,
- error reporting,
- destructuring by pattern-matching,
- closures
- the distinction between values and references: moving or copying values, shared or exclusive references
- sequence manipulation: consumption, consultation or modification of the elements, functional style, views on an existing sequence, character strings
- code organization: in types, in modules, in libraries, resource encapsulation
- 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/