Programming Systems Programming

Rust Fundamentals

A practical introduction to safe, fast systems programming with Professor Christina Ross

Rust Fundamentals logo
Quick Course Facts
20
Self-paced, Online, Lessons
20
Videos and/or Narrated Presentations
7.2
Approximate Hours of Course Media
About the Rust Fundamentals Course

Rust Fundamentals is a practical introduction to safe, fast systems programming with Professor Christina Ross. This course helps students build a strong Programming foundation in Rust, from toolchain setup and Cargo projects to ownership, error handling, testing, and real command-line applications.

Build Practical Rust Programming Skills From The Ground Up

  • Learn Rust’s core syntax, project workflow, and developer toolchain with clear step-by-step lessons.
  • Develop confidence with ownership, borrowing, references, lifetimes, and memory-safe Programming patterns.
  • Practice building robust programs with structs, enums, traits, generics, collections, iterators, and error handling.
  • Apply Rust Fundamentals by creating a small command-line program using file I/O, environment input, and dependencies.

A practical introduction to safe, fast systems programming with Professor Christina Ross through a complete Rust Fundamentals learning path.

This course introduces students to Rust as a modern systems Programming language designed for speed, reliability, and memory safety. You will begin by setting up Rust, understanding the toolchain, and creating projects with Cargo before moving into variables, mutability, scalar types, functions, expressions, and control flow.

As the course progresses, Professor Christina Ross guides you through the concepts that make Rust distinctive, including ownership, borrowing, references, slices, strings, and common data ownership patterns. These lessons help you understand how Rust prevents many common memory and concurrency mistakes while still giving programmers fine-grained control over performance.

You will also learn how to model data with structs, methods, enums, Option, and pattern matching, then build more robust Rust programs using Result and practical error handling. Lessons on vectors, hash maps, standard collections, iterators, closures, traits, generics, trait bounds, and lifetimes give you the tools to write cleaner and more reusable code.

By the end of Rust Fundamentals, you will understand how to organize Rust projects with modules, packages, and crates, and how to use testing, debugging, and documentation in everyday development. You will finish by building a small command-line program and learning how to handle file I/O, environment input, dependency management, idiomatic Rust style, and next steps for continued Programming growth.

Course Lessons

Full lesson breakdown

Lessons are organized by topic area and each includes descriptive copy for search visibility and student clarity.

Getting Started

2 lessons

In this lesson, Professor Christina Ross guides learners through installing Rust with rustup , confirming the installation, and understanding the core tools that make Rust productive from day one. Lea…

Lesson 2: Creating Projects with Cargo

17 min
In this lesson, Professor Christina Ross introduces Cargo, Rust’s standard tool for creating, building, running, and checking projects. Students learn how a Cargo project is laid out, what Cargo.toml …

Language Foundations

2 lessons

Lesson 3: Variables, Mutability, and Scalar Types

20 min
In this lesson, Professor Christina Ross introduces Rust’s binding model: variables are immutable by default, mutability must be requested with mut , and shadowing creates a new binding rather than ch…

Lesson 4: Functions, Expressions, and Control Flow

19 min
In this lesson, Professor Christina Ross introduces the core building blocks Rust uses to organize behavior: functions, statements, expressions, and control flow. You will learn how to define function…

Ownership and Memory Safety

3 lessons

Lesson 5: Ownership: Rust’s Core Mental Model

24 min
Ownership is the core mental model that makes Rust both fast and memory safe without relying on a garbage collector. In this lesson, Professor Christina Ross introduces how Rust tracks which value own…

Lesson 6: Borrowing and References

23 min
Borrowing lets Rust code use a value without taking ownership of it. In this lesson, Professor Christina Ross explains how references make functions more flexible, reduce unnecessary copies, and still…

Lesson 7: Slices, Strings, and Common Data Ownership Patterns

22 min
In this lesson, Professor Christina Ross explains how Rust represents borrowed views into data with slices, why string handling is split between String and &str , and how these types fit into ownershi…

Building Data Models

2 lessons

Lesson 8: Structs and Methods

20 min
In this lesson, Professor Christina Ross introduces Rust structs as the main way to model related data with clear names and strong types. You will define classic structs, tuple structs, and unit-like …

Lesson 9: Enums, Option, and Pattern Matching

22 min
This lesson introduces Rust enums as a practical way to model values that can take one of several meaningful forms. Students learn how enum variants can carry data, why Option replaces null, and how p…

Robust Rust Programs

1 lesson

Lesson 10: Result and Practical Error Handling

23 min
In this lesson, Professor Christina Ross introduces Rust's Result type as the standard way to represent recoverable errors. Students learn how to read function signatures that return Result<T, E&gt…

Working with Data

2 lessons

Lesson 11: Vectors, Hash Maps, and Standard Collections

21 min
In this lesson, Professor Christina Ross introduces Rust’s most commonly used standard collections: vectors for growable lists and hash maps for key-value lookup. The focus is on practical ownership-a…

Lesson 12: Iterators and Closures

22 min
In this lesson, students learn how Rust iterators and closures work together to process collections safely and expressively. The focus is on practical transformations, filtering, aggregation, lazy eva…

Abstraction in Rust

3 lessons

Lesson 13: Traits and Shared Behaviour

23 min
Traits are Rust's main way to describe shared behaviour without forcing different types into the same data shape. In this lesson, Professor Christina Ross introduces how to define a trait, implement i…

Lesson 14: Generics and Trait Bounds

24 min
In this lesson, Professor Christina Ross introduces Rust generics as a way to write reusable functions, structs, enums, and methods without giving up static type safety. Learners see how generic type …

Lesson 15: Lifetimes in Everyday Code

24 min
This lesson makes Rust lifetimes feel practical instead of mysterious. Students learn that lifetimes describe how long references are valid, why the borrow checker needs that information, and how most…

Project Structure

2 lessons

Lesson 16: Modules, Packages, and Crate Organization

20 min
This lesson explains how Rust organizes code into packages, crates, modules, and source files. Students learn how Cargo expects a project to be laid out, how src/main.rs and src/lib.rs define crate ro…

Lesson 17: Testing, Debugging, and Documentation

21 min
In this lesson, students learn how Rust projects are organized for testing, debugging, and documentation. The focus is practical project structure: where unit tests, integration tests, examples, bench…

Practical Application

3 lessons

Lesson 18: Building a Small Command-Line Program

25 min
In this practical lesson, Professor Christina Ross guides learners through building a small Rust command-line program that reads arguments, validates input, reads a text file, and reports useful resul…

Lesson 19: File I/O, Environment Input, and Dependency Management

23 min
This lesson shows how Rust programs interact with the outside world: reading and writing files, accepting environment and command-line input, and adding external crates with Cargo. Learners will pract…

Lesson 20: Writing Idiomatic Rust and Planning Next Steps

18 min
This lesson turns the course’s core concepts into a practical style guide for writing Rust that feels natural, readable, and maintainable. You will learn how to recognize idiomatic choices around owne…
About Your Instructor
Professor Christina Ross

Professor Christina Ross

Professor Christina Ross guides this AI-built Virversity course with a clear, practical teaching style.