Plano de Ensino: Programação de Sistemas com Rust 🦀
📖 Ementa
O curso aborda os fundamentos da linguagem Rust, o sistema de gerenciamento de memória (Ownership), abstrações de alto nível (Traits e Generics) e a construção de sistemas reais, incluindo ferramentas de linha de comando (CLI) e serviços Backend.
🎯 Objetivos
- Compreender a segurança de memória sem Garbage Collector.
- Desenvolver algoritmos eficientes e seguros com Rust.
- Implementar concorrência segura (Fearless Concurrency).
- Construir aplicações Backend modernas e escaláveis.
📅 Cronograma
| Semana | Tópico | Atividade |
|---|---|---|
| 01 | Intro e Setup | Instalação e Hello World |
| 02 | Fundamentos | Variáveis e Tipos |
| 03 | Controle de Fluxo | if, match, loops |
| 04 | Funções e Módulos | Organização de código |
| 05 | Ownership Parte 1 | Stack vs Heap |
| 06 | Borrowing e Refs | Empréstimos seguros |
| 07 | Strings e Coleções | Vec, HashMap |
| 08 | Structs e Enums | Modelagem de dados |
| 09 | Erros | Result e panic! |
| 10 | Generics/Traits | Abstração |
| 11 | Funcional | Closures e Iteradores |
| 12 | Qualidade | Testes e Docs |
| 13 | Concorrência | Threads e Canais |
| 14 | CLI | Projeto prático |
| 15 | Web | APIs com Actix |
| 16 | Final | Projeto Integrador |
🧪 Metodologia
- Aulas teóricas com suporte de slides em RevealJS.
- Exercícios práticos semanais (Básico, Intermediário e Desafio).
- Quizzes síncronos e assíncronos.
- Atividades de laboratório focadas em mini-projetos reais.
📚 Bibliografia Recomendada
- The Rust Programming Language (Klabnik & Nichols)
- Programming Rust (Blandy & Orendorff)
- Rust in Action (Tim McNamara)