When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
This comprehensive Rust programming course welcomes learners of all levels, including beginners and those with some programming experience. No prior knowledge of Rust is required, making it accessible to coding novices. Throughout the course, you will gain a solid foundation in Rust programming and develop proficiency in advanced concepts, enabling you to write efficient, reliable, and high-performance code. You will understand the core concepts and syntax of Rust, learn effective code organization, error handling techniques, and explore Rust's package manager for efficient project management. By completing this course, you will have the skills to develop reliable and high-performance applications, regardless of your prior programming experience.
This week, you will learn how to optimize your Rust development workflow using powerful tools such as programming suggestions, prompts with Copilot, and GitHub Codespaces. By diving into the lessons on programming with suggestions, using prompts with Copilot, and exploring the fundamentals of Codespaces, you will acquire the skills to streamline your coding process and collaborate more efficiently with others.
Meet your Course Instructor: Alfredo Deza•2 minutes
About This Course•3 minutes
Overview of Installing Rust•1 minute
Demo: Installing Rust•6 minutes
Demo: Visual Studio Code•8 minutes
Demo: Enabling the Rust Analyzer•4 minutes
Demo: Using the Rust Analyzer•7 minutes
Demo: Synchronizing your settings•4 minutes
Summary of Installing Rust and Visual Studio Code•1 minute
Overview of AI Pair Programming with Github Copilot•1 minute
Demo: Signing up for GitHub Copilot•4 minutes
Demo: Installing and enabling Copilot on Visual Studio Code•3 minutes
Demo: Programming with suggestions•6 minutes
Demo: Using prompts with Copilot•3 minutes
Demo: Copilot X and chat-based learning•6 minutes
Summary of AI Pair Programming•1 minute
Overview of Codespaces•1 minute
Demo: Fundamentals of Codespaces•8 minutes
Demo: Understanding usage and quotas•6 minutes
Demo: Basics of dev containers•4 minutes
Demo: Customizing the editor•3 minutes
Demo: Customizing the environment•4 minutes
Summary of Codespaces•1 minute
14 readings•Total 140 minutes
Connect with your instructor•10 minutes
Course Structure and Discussion Etiquette•10 minutes
Report a problem with the course•10 minutes
Key terms•10 minutes
Getting Started: Visual Studio Code, Github Codespaces, and Rust•10 minutes
Practice External Lab: Install Rust with Visual Studio Code•10 minutes
Key Terms•10 minutes
Optional: Quickstart for GitHub Copilot•10 minutes
Optional: Setting up your Student Account with GitHub•10 minutes
Practice External Lab: Enabling GitHub Copilot•10 minutes
Key Terms•10 minutes
GitHub Codespaces for Students•10 minutes
Optimizing Codespaces•10 minutes
External Lab: Using GitHub Codespaces with Copilot•10 minutes
4 assignments•Total 120 minutes
Rust environment•30 minutes
AI Pair programming•30 minutes
Practice quiz•30 minutes
Your Development Environment•30 minutes
1 discussion prompt•Total 10 minutes
Meet and Greet (optional)•10 minutes
Rust Fundamentals
Module 2•11 hours to complete
Module details
This week, you will dive into the essential concepts of control flow, error handling, and functions in Rust programming. By exploring the lessons on conditional statements, loops (including the while and for loops), break and continue statements, match control flow, and error handling, you will gain a solid understanding of how to effectively control the flow of your code and handle errors. Additionally, you will explore the fundamentals of functions in Rust, including unit functions, return values, using arguments, and the borrowing concept.
What's included
24 videos7 readings2 assignments7 ungraded labs
Show info about module content
24 videos•Total 96 minutes
Introduction to Rust•1 minute
Demo: Create a new Rust project•6 minutes
Demo: Overview of project files•6 minutes
Demo: Basic components of Rust code•6 minutes
Demo: Variable assignment and immutability•6 minutes
Demo: Basics of control flow•4 minutes
Demo: Shadowing variables•6 minutes
Summary of Introduction to Rust•1 minute
Introduction to Loops and Control Flow•1 minute
Demo: Introduction to Loops in Rust•3 minutes
Demo: Conditional Statements in Rust•4 minutes
Demo: The while Loop in Rust•3 minutes
Demo: The for Loop in Rust•5 minutes
Demo: The break and continue statements in Rust•3 minutes
Demo: The match Control Flow Statement in Rust•5 minutes
Summary of Loops and Control Flow•1 minute
Introduction to Function Basics•1 minute
Demo: Simple unit functions•2 minutes
Demo: Return values•6 minutes
Demo: Using arguments•4 minutes
Demo: The borrowing concept•10 minutes
Demo: Using panic to stop a program•4 minutes
Demo: Basic error handling with match•7 minutes
Summary of Function Basics•1 minute
7 readings•Total 70 minutes
Repository for this week•10 minutes
Key Terms•10 minutes
Key Terms•10 minutes
Key Terms•10 minutes
Optional: Create your first Rust Program Microsoft Learn Module•10 minutes
Optional: Understanding Rust memory management Microsoft Learn Module•10 minutes
External Lab: Create a File Reader Application•10 minutes
2 assignments•Total 60 minutes
Practice Quiz•30 minutes
Basics of Rust programming•30 minutes
7 ungraded labs•Total 420 minutes
Practice Internal Lab: Create a new Rust project•60 minutes
Practice Internal Lab: Use the Basics of Control flow•60 minutes
Practice Internal Lab: Conditional statements•60 minutes
Practice Internal Lab: Match control flow statements•60 minutes
Practice Internal Lab: Using arguments in functions•60 minutes
Practice Internal Lab: Using the borrowing concept•60 minutes
Practice Internal Lab: Basic error handling with match•60 minutes
Using Structs, Types, and Enums
Module 3•11 hours to complete
Module details
This week, you will learn about various data structures and types in Rust. We'll cover defining structs, creating instances, and associated functions. Additionally, you'll explore string manipulation using String and str types. The course will also touch upon vectors, covering value retrieval and element addition. You'll gain familiarity with enums, including the Option enum and its applications, as well as using vectors with enums. Lastly, we'll focus on exhaustive matches for handling enum cases. Practical assessments throughout the course will reinforce your understanding of Rust's data structures and types.
What's included
21 videos7 readings1 assignment8 ungraded labs
Show info about module content
21 videos•Total 94 minutes
Introduction to Structured Data•1 minute
Demo: Defining structs•4 minutes
Demo: Creating struct instances•5 minutes
Demo: Associated functions and constructors•8 minutes
Demo: Other struct uses•4 minutes
Summary of Structured Data•1 minute
Introduction to Strings and Vectors•1 minute
Demo: Understanding String and str•5 minutes
Demo: Getting Started with Rust String Manipulation•6 minutes
Demo: Basics of Vectors•7 minutes
Demo: Retrieving values from Vectors•8 minutes
Demo: Adding elements to Vectors•4 minutes
Summary of Strings and Vectors•1 minute
Introduction to Enums and Variants•2 minutes
Demo: Defining an Enum•4 minutes
Demo: Using Enum as a Type•5 minutes
Demo: The Option Enum•8 minutes
Demo: Applied Enums•6 minutes
Demo: Using Vectors with Enums•5 minutes
Demo: Exhaustive matches•5 minutes
Summary of Enums and Variants•1 minute
7 readings•Total 70 minutes
Repository for this week•10 minutes
Key Terms•10 minutes
Key Terms•10 minutes
Optional: Using Loops to Iterate Over Data Microsoft Learn Module•10 minutes
Key Terms•10 minutes
Optional: Handling Errors in Rust Microsoft Learn Module•10 minutes
External Lab: Create a File Size formatter•10 minutes
1 assignment•Total 30 minutes
Organizing Data in Rust: Structs, Enums, and Types•30 minutes
8 ungraded labs•Total 480 minutes
Practice Internal Lab: Defining structs•60 minutes
Practice Internal Labs: Associated functions and constructors•60 minutes
Practice Internal Lab: Getting started with string manipulation•60 minutes
Practice Internal Lab: Retrieve values from Vectors•60 minutes
Practice Internal Lab: Adding elements to Vectors•60 minutes
Practice Internal Lab: Using Enum as a type•60 minutes
Practice Internal Lab: Applied Enums•60 minutes
Practice Internal Lab: Using Vectors with Enums•60 minutes
Applying Rust
Module 4•12 hours to complete
Module details
This week you will explore advanced topics related to code organization, testing, documentation, and library development. By delving into the lessons on verifying code with doctest, working with public and private modules, managing public and private fields, organizing test files, writing tests for your code, testing private code, using test failure messages effectively, and documenting your code, you will acquire the necessary skills to create robust and well-structured Rust projects.
What's included
22 videos11 readings1 assignment8 ungraded labs
Show info about module content
22 videos•Total 115 minutes
Introduction to Libraries and Cargo•1 minute
Demo: Creating the library with Cargo•4 minutes
Demo: Adding code to lib•7 minutes
Demo: Documenting your code•8 minutes
Demo: Using a debugger•9 minutes
Demo: Using a Makefile•13 minutes
Summary of Libraries and Cargo•1 minute
Introduction to Modules•1 minute
Demo: Using Cargo for dependencies•5 minutes
Demo: Extending with modules•5 minutes
Demo: Verify code with doctest•5 minutes
Demo: Defining Public and Private modules•6 minutes
Demo: Private and public fields in Structs•10 minutes
Summary of Modules•1 minute
Introduction to Testing•2 minutes
Demo: Organizing test files•4 minutes
Demo: Introduction to testing in Rust•4 minutes
Demo: Writing tests for your code•9 minutes
Demo: Testing private code•11 minutes
Demo: Using test failure messages•4 minutes
Summary of Testing•1 minute
Course Summary•2 minutes
11 readings•Total 110 minutes
Repository for this week•10 minutes
Key terms•10 minutes
Optional: Debugging in Visual Studio Code•10 minutes
Key Terms•10 minutes
Optional: Managing growing projects in Rust•10 minutes
Key Terms•10 minutes
Optional: Write Automated Tests Microsoft Learn Module•10 minutes
Optional: Test Organization•10 minutes
External Lab: Create a Rust library•10 minutes
Next steps•10 minutes
Share your learning experience•10 minutes
1 assignment•Total 30 minutes
Rust Components and Patterns•30 minutes
8 ungraded labs•Total 480 minutes
Practice Internal Lab: Create a library with Cargo•60 minutes
Practice Internal Lab: Document your code•60 minutes
Practice Internal Lab: Use a Makefile•60 minutes
Practice Internal Lab: Verify code with Doctest•60 minutes
Practice Internal Lab: Define Public and Private modules•60 minutes
Practice Internal Lab: Use Private and public fields in Structs•60 minutes
Practice Internal Lab: Write tests for your code•60 minutes
Practice Internal Lab: Test private code•60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.