8144  Reviews star_rate star_rate star_rate star_rate star_half

RUST Programming

Rust is a modern systems programming language with the benefits of both a native and managed programming approach. In class, learn the standard features and the programming style of Rust. In...

Read More
Course Code RUST-PROGRAM
Duration 2 days
Available Formats Classroom

Rust is a modern systems programming language with the benefits of both a native and managed programming approach. In class, learn the standard features and the programming style of Rust. In addition, Rust is a C-based language but with a host of unique features, such as ownership, lifetimes, panics, patterns, and more. The many unique features and benefits are reviewed thoroughly in class. Zero-cost abstraction is an important principle of Rust. For example, there is no garbage collection. This and other aspects of zero-cost abstraction are discussed in class. Rust favors composition over inheritance and is not considered a fully object-oriented language. However, object-oriented concepts are supported using traits, including polymorphic behavior. Students will learn how to use traits to implement polymorphism, abstraction, and extensibility. Finally, the class concludes with an introduction of threads.

Skills Gained

In this course you will learn the following:

  • Learn how to use the Rust tools, including Rustc and Cargo.
  • Learn the type system and variable declarations.
  • Learn the many unique aspects of the Rust language, including ownership, lifetimes, and panics.
  • Learn about complex and aggregate types: arrays, vectors, strings, tuples, and string.
  • Learn how to implement independent functions and methods for structures.
  • Learn about traits, dynamic dispatch, and support of polymorphic behavior.
  • Learn the basics of concurrent programming.

Who Can Benefit

The audience for this course is software engineers and developers.

Prerequisites

Students should have six months of general programming experience.

Course Details

Course Outline

Introduction

  • Course Introduction
  • Installing Rust
  • Hello World - Rust
  • Basic error handling
  • Transfer of control and methods
  • Cargo Package Manager
  • Rust CLI

Types and variables

  • Numbers on the Computer
  • Entry Points
  • Core Data Types
  • Operators
  • Scope and Shadowing
  • Declaring and using constants

Ownership and lifetimes

  • Ownership
  • Borrow checker
  • References
  • Moving
  • Cloning
  • Lifetime
  • Lifetime elision

Transfer of control

  • If statement
  • While statement
  • For statement
  • Match statement
  • Short-circuiting

Complex types

  • Structs
  • Enumeration
  • Option<t> If let while let
  • Arrays
  • Vectors
  • Slices
  • Strings
  • Tuples
  • HashMap
  • Pattern Matching
  • Generics

Functions and Methods

  • Functions
  • Methods
  • Closures
  • Structures

Traits

  • Define traits
  • Implementation
  • Abstraction
  • Dynamic Dispatch
  • Polymorphism
  • Important traits

Concurrency

  • Starting a thread
  • Thread handles
  • Closures
  • Channels