Rust Course Outline
Module 1: Getting Started with Rust Programming Language
- Introduction to Rust Programming
- Installation
- First Rust Program
- Programming Concepts
Module 2: Introduction to Ownership
- What is Ownership?
- References and Borrowing
- Slice Type
Module 3: Using Structs to Structure Related Data
- Defining and Instantiating Structs
- Method Syntax
Module 4: Enums and Pattern Matching
- Defining an Enum
- Match Control Flow Operator
Module 5: Manage Projects with Packages, Crates, and Modules
- Packages and Crates
- Defining Modules
Module 6: Exploring Collections
- Storing Lists of Values with Vectors
- Storing UTF-8 Encoded Text with Strings
- Storing Keys with Associated Values in Hash Maps
Module 7: Error Handling
- What is Error Handling
- Unrecoverable Errors with Panic
- Recoverable Errors with Result
- To Panic! Or Not to Panic!
Module 8: Generic Types, Traits, and Lifetimes
- Generic Data Types
- Traits: Defining Shared Behaviour
- Validating References with Lifetimes
Module 9: Writing Automated Tests
- Writing Automated Tests Overview
- How to Write Tests?
- Anatomy of a Test Function
- Controlling How Tests are Run
- Running Tests in Parallel or Consecutively
- Test Organisation
- Unit Test
- Integration Test
Module 10: I/O Project: Building a Command Line
- I/O Project: Building a Command Line
- Accepting Command Line Arguments
Module 11: Functional Language Features: Iterators and Closures
- Functional Language Features
- Closures: Anonymous Functions that can Capture their Environment
- Processing a Series of Items with Iterators
Module 12: Cargo and Crates.io
- Customise Builds with Release Profiles
- Publishing a Crate to Crates.io
- Cargo Workspaces
- Install Binaries from Crates.io with Cargo Install
- Extend Cargo with Custom Command
Module 13: Exploring Smart Pointers and Fearless Concurrency
- Smart Pointers
- Fearless Concurrency
- Creating a New Thread with Spawn
Module 14: Object-Oriented Programming Features of Rust
- Object-Oriented Languages Characteristics
- Encapsulation that Hides Implementation Details
- Inheritance as a Type System and as Code Sharing
- Defining a Trait for Common Behaviour
- Implementing the Trait
Module 15: Patterns and Matching
- Introduction to Patterns and Matching
- Match Arms
- Pattern Syntax
Module 16: Build a Multithreaded Web Server
- Building a Single-Threaded Web Server
- Thread Pool