The course gives students an introduction to the main elements of Rust programming language.
The aim is to teach participants the fundamental understanding of language features such as: abstraction and basic elements of language needed for writing programs with Rust, ownership concept, concurrency, smart pointers, data types and object-oriented capabilities, developing unit tests, and package management. The main goal of the course is to equip students with fundamental knowledge required for designing and developing safe and efficient code in system and low-level applications as well as client-server applications and microservices.
Course Topics:
- Abstraction and basic elements of language
- Understanding ownership
- Source code organization and management
- Concurrency and smart pointers
- Unit testing
Modules:
M1: Abstraction and basic elements of language
https://academy.nit-institute.com/wp-content/uploads/2026/02/rust-L-1.jpg
This module introduces the fundamental syntax and structure of the Rust language. Students will explore the relationship between types, values, and functions, while distinguishing between statements and expressions. The curriculum covers core control flow mechanisms, such as conditionals and loops, alongside an introduction to Rust’s primary data structures and modular program organization using crates and modules.
Write a modular program that uses loops and conditionals to perform calculations and store the results in a basic data structure.
4 hours, and 30 minutes
M2: Understanding Ownership
https://academy.nit-institute.com/wp-content/uploads/2026/02/rust-L-2.jpg
This section focuses on Rust’s unique memory management system, which provides safety without a garbage collector. Students will learn the core rules of ownership and the practical application of borrowing, including the use of mutable and immutable references. The module also examines how complex data types interact with these ownership semantics to ensure safe memory access.
Create a function that manipulates data through a series of borrows and ownership transfers to demonstrate memory safety rules.
4 hours, and 30 minutes
M3: Source Code Organization and Management
https://academy.nit-institute.com/wp-content/uploads/2026/02/rust-L-3.jpg
Efficiency in Rust development depends on a clear understanding of project hierarchy and dependency management. This module focuses on the practical use of packages, crates, and modules to organize source code effectively. Students will learn how to structure their projects to maintain high levels of readability and facilitate code reuse across different parts of an application.
Reorganize a single-file program into a multi-module package structure that utilizes public and private visibility.
4 hours, and 30 minutes
M4: Concurrency and Smart Pointers
https://academy.nit-institute.com/wp-content/uploads/2026/02/rust-L-4.jpg
This module explores high-performance programming using threads and Rust’s async/await syntax for asynchronous execution. To handle complex memory management in these environments, students will utilize smart pointers such as Box, Rc, and Arc. The curriculum also addresses robust error handling by teaching the practical application of Result and Option types.
Implement a multi-threaded application that uses smart pointers to safely share and manage data across concurrent tasks.
4 hours, and 30 minutes
M5: Unit Testing
none
Quality assurance is a core part of the Rust ecosystem, and this module teaches students how to verify code functionality and correctness. The lessons cover the creation of unit tests, the effective organization of tests within a project, and the development of integration tests to ensure that all parts of an application work together as intended.
Develop a comprehensive suite of unit and integration tests to validate the logic and error handling of a previous assignment.
4 hours, and 30 minutes
M6: Project
none
none
The course concludes with a capstone project where students apply every concept learned to build a complex, real-world application. This synthesis requires a deep understanding of ownership, concurrency, and modular design to create a high-quality, efficient program.
6 hours
Final exam
none
none
none
1 hour 30 minutes
Requirements
Software: Any IDE eligible for Rust programming.
Hardware: Computer with an Internet connection, working speakers, and microphone.
Prior knowledge: Students should have basic knowledge of programming, being able to write simple programs in some programming language, build them and run them in a development environment.