Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Hands-On Data Structures and Algorithms in Rust
Rating: 4.5 out of 5(233 ratings)
2,410 students

Hands-On Data Structures and Algorithms in Rust

Learn about common and useful Data Structures and Algorithms
Last updated 6/2020
English

What you'll learn

  • How Rust can help you keep your memory access safe and effective
  • How we can use Rust to build Generic Algorithms that we can use again and again across our codebase
  • Greedy, dynamic, and Iterative algorithms and when to use them
  • Different data structures such as Maps, Trees, and Linked lists, and when it is appropriate to use them.
  • Why and how an Entity Component System separates the different parts of the object into different storage areas
  • How we can build files that work like simple databases using BTrees
  • How we can run our programs even faster-using Multithreading

Course content

7 sections49 lectures6h 55m total length
  • Course Overview5:30

    This video provides an overview of the entire course.

  • Install Rust and Running a Simple Program3:53

    We need a mechanism to run the code we are writing. So, we need to get the Rust compiler installed.

       •  Download Rustup.sh

       •  Run rustup

       •  Build a simple Hello World project

  • Build complex structures with Struct and Enum8:57

    In order to do anything in programming in Rust, we need ways to organize our data.

       •  Introduce the Struct

       •  Introduce the Enum

       •  Get printouts of each showing what they can do and hold

  • Results and Options6:58

    Some functions may need to let the caller know there was a problem. How can we pass that message back?

       •  Introduce the Result and Option enum types

       •  Demonstrate how these works generically

       •  Show a function returning an Error

  • Looping Mechanisms in Iterators8:31

    Every program needs to perform some task multiple times. How can we do that in Rust?

       •  Introduce the loop, while, and for

       •  Show how an iterator works by returning an option

       •  Demonstrate a for loop on a new iterator type

  • Stack Data Structure in Rust9:46

    Programs often need to grab memory to be able operate. Can we understand when they need to?

       •  Introduce the stack

       •  Demonstrate the stack in a set of function calls

       •  Show how the stack can be avoided in tail recursive situations

  • Mutability, Variables, Copying, and Cloning6:22

    Making sure that our code does not write to something it should not, is tricky. How can we work with the Rust compiler?

       •  Show how an object can be copied between variables

       •  Show that in order to change a variable which need to make it mutable

       •  Show how these two features interact

  • Use Memory Effectively with Pointers and Lifetimes9:09

    Rust protects us from pointing to things that do not exist anymore. How can we work with this?

       •  Introduce the borrow notation for pointers

       •  Show how when you have a pointer to something, you cannot change it elsewhere

       •  Demonstrate that mutable pointers require mutable objects

  • Own Memory on the Heap with Box, String, and Vecs9:06

    How do we handle objects where we do not know how big they will need to be?

       •  Demonstrate how a pointer is needed to make a linked list

       •  Show how Box creates that pointer

       •  Build Dynamic arrays using vec

  • Difference Between Str and String9:54

    In this video, we will look at the difference between Str and String.

       •  Understand their differences

       •  Explore their uses

  • Uploading to Crates4:57

    How can we make our code available to others to use?

       •  Show how to get a token from crates

       •  Show how to set up our crates for upload

       •  Show how to upload our crate and check it is uploaded

  • Test your knowledge

Requirements

  • No Rust programming knowledge is required as we will be covering the basics at the beginning.

Description

Rust is a modern systems programming language designed with safety to simplify the development of large, complex software projects. Data structure and Algorithms are key to help in the collection and organization of the data for performing operations on the data and set instructions/logic to accomplish tasks in these projects. This course will be your guide for implementing classic data structures and algorithms in Rust, helping you to get up and running as a confident Rust programmer.

You will begin with a primer to Rust and its syntax. You will then explore the language of Time and Memory complexity by comparing different sorting methods. You’ll then learn about Lists and Binary Trees, implement them, and compare them, to show the advantages and use cases of each. Next, you will cover different algorithms in-depth such as sorting, graph, dynamic programming, greedy, divide and conquer, and more. You will learn how counterintuitive techniques can actually make it easier to build scalable projects!

By the end of the course, you will have a sound knowledge of the key data structures and algorithms in Rust to confidently implement them in your applications.

About the Author

Matthew Stoodley is a programming expert and enthusiast, who was drawn to learn about Rust and master its features initially due to its low power usage and memory safety capabilities. He primarily uses Rust to build board games.

In addition, he also possesses several years of experience in Go, PHP, and JavaScript.

Who this course is for:

  • This course is for programmers who want to get to grips with all data structures and algorithms in the latest version of Rust programming language, to help organize your code better and accomplish predefined tasks.