Skip to content

winnnoncd/ds500-rust-bootcamp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Rust Bootcamp
Complete Syllabus and guidelines

Description

In this bootcamp, you will learn the fundamentals of Rust to produce a production-ready application to demonstrate real-world expertise. You will use hands-on and practical material to go beyond just theory. By the end of this bootcamp, you will be able to develop applications in Rust with best practices, creating a solid foundation to expand your knowledge.

Teachers

Table of Contents

Rubric

Bootcamp Objectives

By the end of the bootcamp, you will be able to:

  • Master Core Rust Concepts: Demonstrate proficiency in Rust's fundamental programming concepts including variables, control flow, and ownership
  • Apply Safety Principles: Write safe, concurrent, and high-performance Rust code using the language's unique safety guarantees
  • Utilize Modern Development Tools: Effectively use Rust Analyzer, Cargo, GitHub Copilot, and dev containers in professional workflows
  • Implement Best Practices: Apply test-driven development principles and create well-documented, maintainable Rust libraries
  • Build Real Applications: Construct practical CLI applications and libraries using Rust's ecosystem and standard library

Bootcamp Project

This bootcamp is based on a single and individual class project. You will start work on this project from Week 1 and will deliver the completed project with final presentation on Week 6

Prerequisites

This course requires basic Linux and programming skills. You can complete all coursework with an editor of your choice. Use the following recommendations to get up to speed on these skills.

Linux If learners lack basic Linux skills it is recommended to go through this course:

GitHub Platform

Being able to work around and in GitHub is essential. Use these courses to get a refresher on automation, AI, and development environments:

Additional Resources

This bootcamp requires you to build your own project based on our Rust Starter Project template repository. You will have to copy this into your own GitHub account.

Use the following template and go through its instructions when ready

This bootcamp is covered with the following courses:

You will see references to the weeks of each course so you know exactly what relevant part is needed for this Bootcamp.

6 week Syllabus

These are all the resources you need for this course.

Important

You are not required to watch and read every single resource. You aren't graded on consumption of content or memorization of facts. Use the content as support for your project.

Week 0 (Optional): Refresh your GitHub Skills

Go through the content on these courses and make sure you understand concepts like CI/CD, Codespaces, and general repository management.

Week 1: Setup your Development Environment

Rust Fundamentals: Week 1

This week you will start by forking or copying the template repository. This repository is the foundational step for creating your Rust application by the end of this bootcamp. You will also focus on setting up your development environment.

This course uses Visual Studio Code, but you are free to change to use anything else.

Weekly Discussion prompt: Discuss your text editor choice and setting up the debugger. There are different debuggers available for Rust. Explain your choice.

Week 2: Project Structure

This week you will think about your project of choice. What will you build? You will start creating the necessary files and structure for your project.

Rust Fundamentals: Week 2

Weekly Discussion prompt: Discuss your project idea. What will you build and why?

Week 3: Data Structures and Advanced Types

Rust Fundamentals: Week 3

This week you will dive into Rust's powerful data structures including structs, strings, vectors, and enums. You'll learn how to define custom types, manipulate collections, and work with Rust's unique approach to data organization. Focus on implementing these concepts in your project by creating the core data structures you'll need.

I recommend this video for dealing with exhaustive matches:

Weekly Demo video prompt: Share the structs and enums you've designed for your project. How do they model your problem domain, and what challenges did you encounter with ownership and borrowing?

Week 4: Building Libraries and Testing

Rust Fundamentals: Week 4

This week focuses on professional Rust development practices. You'll learn to create libraries with Cargo, write comprehensive documentation, organize your code with modules, and implement thorough testing strategies. Apply test-driven development principles to your project and ensure your code is well-documented and maintainable.

Organiznig test files can be challenging if you are not used to how this happens in Rust. This is my recommended video for this week:

Weekly Demo video prompt: Discuss your testing strategy for your project. What types of tests are you writing (unit, integration, doc tests) and how are you organizing your test files? Share any interesting edge cases you discovered.

Week 5: Command Line Applications and Best Practices

Rust Fundamentals: Week 5

In the final week, you'll complete your Rust project by building a command-line interface. You'll learn to handle user input, manage command-line arguments, implement proper error handling, and follow Rust CLI best practices. This is where you bring everything together into a polished, working application.

Important

You will have an extra buffer week to extend or complete your project. The extra week will have no video attached to it.

Weekly Demo video prompt: Present your completed project! Share your CLI application, discuss the challenges you overcame, and reflect on your Rust learning journey. What would you build next with Rust?

Week 6: Final Presentations

This week is a buffer week. Use it for adding and completing final details on your project and come into the Discord channel with any last questions.

Also, congratulations! Completing this bootcamp is something to celebrate, and we are happy you made it to the end. Good job!

  • Turn in Final Project

Resources

This repository contains links to comprehensive courses covering various aspects of modern software development, cloud computing, and artificial intelligence. The courses are organized by topic area to help you find the most relevant learning materials for your needs.

Rust Programming References

AWS Cloud Computing References

Azure Cloud Computing References

Google Cloud Platform References

Artificial Intelligence and Machine Learning References

Data Engineering References

MLOps and DevOps References

GitHub and Development Tools References

Programming Languages and Systems References

AI Ethics and Security References

Getting Started

Choose courses based on your current skill level and learning objectives:

  • Beginners: Start with foundational courses like "Cloud Computing Foundations" or "Rust Fundamentals"
  • Intermediate: Focus on specific technologies like AWS or Azure courses
  • Advanced: Explore specialized topics like MLOps, AI Engineering, or advanced cloud architectures

Referenced Media and Resources

Optional Supplementary Readings & Media

AWS
GCP
Python
  • Data Science, Pandas, and Colab

https://learning.oreilly.com/videos/python-for-data/62062021VIDEOPAIML/

Linux and Systems Engineering

Assignment Overview and Feedback Breakdown

Grading and feedback turnaround will be one week from the due date. You will be notified if the turnaround will be longer than one week.

The discussion forums, written assignments, demo videos, and final project will be graded based on specific criteria or a rubric. The criteria or rubric for each type of assessment will be available in the course.

Late Work Policy

This bootcamp is meant for learners to be fully accountable and responsible for their work. At the end of the bootcamp, your project is your accomplishment. There is no specific grading or tests. The artifact you produce is the validation of completion of this bootcamp and its contents.

Online Communication and Interaction Expectations

Discussion Forums

The purpose of the discussion boards is to allow learners to freely exchange ideas. It is imperative to remain respectful of all viewpoints and positions and, when necessary, agree to respectfully disagree. While active and frequent participation is encouraged, cluttering a discussion board with inappropriate, irrelevant, or insignificant material will not earn additional points and may result in receiving less than full credit. Frequency matters, but contributing content that adds value is paramount. Please remember to cite all sources—when relevant—in order to avoid plagiarism. Please post your viewpoints first and then discuss others’ viewpoints.

The quality of your posts and how others view and respond to them are the most valued. A single statement mostly implying “I agree” or “I do not agree” is not counted as a post. Explain, clarify, politely ask for details, provide details, persuade, and enrich communications for a great discussion experience. Please note, there is a requirement to respond to at least two fellow class members’ posts. Also, remember to cite all sources—when relevant—in order to avoid plagiarism.

Important

Failure to meet minimum standards of online communication might get your access revoked

Online Communication Etiquette

Beyond interacting with your instructor and peers in discussions, you will be expected to communicate primarily by Discords messages, and in the weekly sync sessions.

Just as you expect a response when you send a message to your instructor, please respond promptly when your instructor contacts you. Your instructor will expect a response within two business days. This will require that you log into the course site regularly and set up your notifications to inform you when the instructor posts an announcement, provides feedback on work or sends you a message.

Important

Failure to meet minimum standards of online communication might get your access revoked

Participation and Attendance

This bootcamp will meet at a particular day and time each week. Attendance is not mandatory and is meant to discuss project progress, prodivde feedback, and do general Q&A. Your attendance does not affect your bootcamp completion.

Course Technology

This course will involve a number of different types of interactions. These interactions will take place primarily through Discord and Zoom for weekly check-ins and willl use the Pragmatic AI Labs platform for video content. Please take the time to navigate through the course and become familiar with the course syllabus, structure, and content and review the list of resources.

Support

For questions about specific courses or technical support, please visit the course platform at ds500.paiml.com.

About

Rust Bootcamp Syllabus

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published