-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
In the course Rust Programming participants learn to develop software with the latest version of the innovative programming language Rust.
Rust is a new, practical system programming language that produces lightning fast code. Rust is community driven. With Rust you prevent almost all crashes and data races.
Rust builds on a rich history of programming languages. It is low-level language with multiple paradigms, both imperative and functional.
Rust focuses on safe, high-performance, concurrent applications. Rust began to gain momentum in the industry before the official 1.0 version in May 2015, because there is a clear need for a new low-level system language.
This course deals with what makes Rust so unique and applies this to practical problems of system programming. Topics that will be discussed are: traits, generics, memory safety, move semantics, borrowing and lifetimes.
And also the rich macro-system of Rust, closures and concurrency are discussed.
The course Rust Programming is intended for developers who want to learn how to program in Rust and others who want to understand Rust code.
Experience programming in a modern programming language is desirable and beneficial to a good understanding.
The theory is treated on the basis of presentation slides. The concepts are illustrated with demos. The theory is interspersed with exercises. The course times are from 9.30 to 16.30.
The participants receive an official certificate Rust Programming after successful completion of the course.
Module 1 : Rust Intro |
Module 2 : Data Types |
Module 3 : Flow Control |
What is Rust? Rust Background Rust Momentum Rust Usage Comparisons to C Rust Applications Hello Rust Comments Formatted Printing Debug and Display Literals Operators |
Primitives Tuples and Arrays Slices Custom Types Enums Constants Variable Bindings Scope Shadowing Casting Inference Alias |
Expressions Flow Control if else loop Nesting and labels while for and range match Guards Binding if let while let |
Module 4 : Functions |
Module 5 : Modules |
Module 6 : Generics |
Methods Closures Capturing As Input Parameters Input Functions Type Anonymity As Output Parameters Examples from std Iterator::any Iterator::find Higher order Functions |
Visibility Struct Visibility use Declaration Using super Using self File Hierarchy Crates Attributes Extern crate Dead Code Custom |
Functions Implementations Parametrization over Types Traits Bounds Multiple Bounds Where Clauses Associated Items Associated Types Phantom Type Parameters Unit Clarification |
Module 7 : Scoping |
Module 8 : Traits |
Module 9 : Standard Library |
RAII Ownership and Moves Functions and Methods Mutability Borrowing and Freezing Aliasing ref Pattern Lifetimes Explicit Annotation Bounds and Coercion Static Elison |
Zero cost Abstraction Traits are interfaces Derive Operator Overloading Drop Iterators Clone Designators Overload and Repeat Unsafe Operations Static dispatch Dynamic dispatch |
Box, stack, heap Data Structures Vectors Strings Hashmap Threads Channels Path File I/O Pipes Wait Arguments Meta |
All our courses are classroom courses in which the students are guided through the material on the basis of an experienced trainer with in-depth material knowledge. Theory is always interspersed with exercises.
We also do custom classes and then adjust the course content to your wishes. On request we will also discuss your practical cases.
The course times are from 9.30 to 16.30. But we are flexible in this. Sometimes people have to bring children to the daycare and other times are more convenient for them. In good consultation we can then agree on different course times.
We take care of the computers on which the course can be held. The software required for the course has already been installed on these computers. You do not have to bring a laptop to participate in the course. If you prefer to work on your own laptop, you can take it with you if you wish. The required software is then installed at the start of the course.
Our courses are generally given with Open Source software such as Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda and Netbeans. You will receive the digital course material to take home after the course.
The course includes lunch that we use in a restaurant within walking distance of the course room.
The courses are planned at various places in the country. A course takes place at a location if at least 3 people register for that location. If there are registrations for different locations, the course will take place at our main location, Houten which is just below Utrecht. A course at our main location also takes place with 2 registrations and regularly with 1 registration. And we also do courses at the customer’s location if they appreciate that.
At the end of each course, participants are requested to evaluate the course in terms of course content, course material, trainer and location. The evaluation form can be found at https://www.klantenvertellen.nl/reviews/1039545/spiraltrain?lang=en. The evaluations of previous participants and previous courses can also be found there.
The intellectual property rights of the published course content, also referred to as an information sheet, belong to SpiralTrain. It is not allowed to publish the course information, the information sheet, in written or digital form without the explicit permission of SpiralTrain. The course content is to be understood as the description of the course content in sentences as well as the division of the course into modules and topics in the modules.