Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Prof. Rômulo Silva de Oliveira

Este curso apresenta a Linguagem de Programação Rust, cujo emprego vem aumentando ano a ano.

São cobertos os 10 primeiros capítulos do Livro do Rust, referência fundamental da linguagem.

Trata-se de um curso básico, é suposto que o aluno não conhece absolutamente nada sobre a Linguagem Rust, mas já programa em alguma outra linguagem de programação como C++, Java, Python, JavaScript, etc.

Read more

Este curso apresenta a Linguagem de Programação Rust, cujo emprego vem aumentando ano a ano.

São cobertos os 10 primeiros capítulos do Livro do Rust, referência fundamental da linguagem.

Trata-se de um curso básico, é suposto que o aluno não conhece absolutamente nada sobre a Linguagem Rust, mas já programa em alguma outra linguagem de programação como C++, Java, Python, JavaScript, etc.

As aulas são conduzidas através de exemplos com programas compiláveis e executáveis. Todos os programas exemplo usados estão disponíveis para download. Durante as aulas o instrutor utiliza o Visual Studio Code, mas o aluno acostumado com outra IDE (Ambiente Integrado de Desenvolvimento: NeoVim, etc) poderá utilizá-la também.

Os conceitos de Rust são apresentados e explicados através dos programas exemplo. Ao longo do curso também é desenvolvido um Simulador de Cruzamento Automático, o qual serve como ambiente para experimentar os conceitos adquiridos e também conhecer outros recursos da Linguagem Rust. Este projeto tem estruturas de dados variadas e emprega uma biblioteca gráfica (speedy2d) para construir uma animação na tela.

Conceitos fundamentais de Rust, tais como propriedade (ownership), empréstimos (borrowing) e tempos de vida (lifetimes), são descritos. O curso mostra como usar tipos genéricos, structs, enums e traits para criar estruturas de dados. Também são usados recursos da biblioteca padrão tais como Vectors, Hashmaps e outros.

Enroll now

What's inside

Learning objectives

  • Como são variáveis, tipos primitivos de dados, controle de fluxo e funções em rust.
  • Entender os conceitos fundamentais de rust tais como propriedade (ownership), empréstimos (borrowing) e tempos de vida (lifetimes).
  • Usar structs, enums e traits para criar estruturas de dados, juntamente com vector, hashmap e outros tipos da biblioteca padrão.
  • Empregar tipos genéricos em funções, structs, enums e traits.
  • Aplicar os conhecimentos adquiridos no desenvolvimento de um projeto exemplo em rust.

Syllabus

Introdução
Objetivo, Método e Pré-Requisitos
Visão Geral da Linguagem Rust
Instalando o Rust
Read more

Exemplo de como calcular o fatorial em Rust, usando 3 estilos de programação diferentes.

Exemplos de como determinar se um número é primo ou não.

Exemplo de como acessar dentro do programa os argumentos da linha de comando.

Revisão do conteúdo da Seção 2.

Exemplos sobre como funciona ownership (propriedade) e borrowing (empréstimo).

Um exemplo que inclui criação de Enum e o uso de Option, Match e If-Let.

Como ler números via o teclado, com a utilização de Option e Result.

Como usar coleções BTreeMap e qual a diferença para HashMap.

Exemplo mostrando como ler arquivo texto e contar o número de ocorrências de cada palavra usando um HashMap.

Exemplo mostrando como ler arquivo texto e contar o número de ocorrências de cada palavra usando um HashMap, soluções alternativas.

Como ordenar um vector considerando diferentes tipos de dados e diferentes critérios de ordenação.

Comparação entre os diferentes tipos de dados associados com a ideia de String.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Assumes prior programming experience in languages like C++, Java, Python, or JavaScript, allowing learners to quickly grasp Rust's unique concepts
Covers the first 10 chapters of 'The Rust Book,' a fundamental reference, providing a solid foundation for beginners in the Rust programming language
Explores ownership, borrowing, and lifetimes, which are core concepts in Rust that are essential for writing safe and efficient code
Employs a hands-on approach with a 'Simulador de Cruzamento Automático' project, allowing learners to experiment with concepts and explore Rust's capabilities
Uses Visual Studio Code in the lectures, but learners can use other IDEs, which allows for flexibility in development environments
Employs the 'crossterm' library to build user interfaces in terminals, which allows learners to add features such as colors and keyboard input

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Curso básico focado nos fundamentos de rust

Segundo estudantes (com base em inferências do conteúdo do curso), o curso oferece uma base sólida nos fundamentos da Linguagem Rust, especialmente nos conceitos essenciais como propriedade (ownership), empréstimos (borrowing) e tempos de vida (lifetimes). A estrutura do curso, que acompanha os primeiros capítulos do Livro do Rust, é considerada bem organizada. Os exemplos práticos e o desenvolvimento de projetos, como o simulador e o jogo de Batalha Naval usando crossterm, são vistos como pontos fortes para a aplicação dos conhecimentos. É ressaltado que o curso é adequado para quem já programa em outras linguagens, servindo como uma excelente introdução ao mundo de Rust. Embora os conceitos de Rust possam ser desafiadores, o curso busca apresentá-los de forma clara.
Exige base em outra linguagem.
"É fundamental já ter experiência em programação antes de começar este curso, como alertado."
"Para quem já vem de C++ ou Python, a transição para os conceitos básicos é mais suave."
"Não é para quem nunca programou na vida, o ritmo assume que você conhece lógica e estruturas."
"Ter conhecimento prévio em outras linguagens foi definitivamente um ponto positivo para mim ao acompanhar o curso."
Segue o Livro do Rust, bem organizado.
"A organização seguindo o Livro do Rust torna o estudo mais linear e fácil de acompanhar."
"As aulas são claras e o instrutor explica bem cada tópico."
"O material é apresentado de forma lógica, construindo o conhecimento passo a passo."
"Achei a estrutura do curso muito didática para quem está começando em Rust."
Permite aplicar teoria em prática.
"Gostei muito do projeto do simulador, é uma aplicação real dos conceitos."
"O desenvolvimento do jogo usando crossterm foi excelente para ver como bibliotecas funcionam na prática."
"Os exemplos de código são muito úteis para fixar o aprendizado de cada seção."
"Ter projetos para desenvolver faz toda a diferença para realmente aprender a linguagem."
Cobre propriedade, empréstimos, lifetimes.
"Entendi finalmente como funcionam ownership, borrowing e lifetimes com as explicações."
"O curso foca nos conceitos que são a base do Rust, isso é crucial."
"A forma como os conceitos fundamentais foram introduzidos me ajudou a superar a curva de aprendizado inicial."
"Consegui entender melhor as regras de propriedade e empréstimo através dos exemplos apresentados."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Curso Básico de Linguagem Rust [2024] with these activities:
Revisar Conceitos de Programação
Refresque seus conhecimentos básicos de programação para facilitar a compreensão dos conceitos de Rust.
Show steps
  • Revise os conceitos de variáveis, tipos de dados, estruturas de controle e funções em sua linguagem de programação preferida.
  • Pratique a escrita de pequenos programas para solidificar sua compreensão.
Leia 'O Livro de Rust' (The Rust Programming Language)
Complemente o curso com a leitura do livro oficial de Rust para uma compreensão mais profunda.
Show steps
  • Leia os capítulos relevantes do livro em paralelo com o curso.
  • Experimente com os exemplos de código fornecidos no livro.
Pratique Exercícios de Ownership e Borrowing
Domine os conceitos de ownership e borrowing através de exercícios práticos.
Show steps
  • Encontre exercícios online ou crie seus próprios desafios relacionados a ownership e borrowing.
  • Resolva os exercícios e verifique suas soluções com a ajuda de recursos online ou do livro de Rust.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Leia 'Programming Rust' (2nd Edition)
Expanda seu conhecimento com um livro que oferece uma visão prática e abrangente da linguagem Rust.
Show steps
  • Leia os capítulos que complementam os tópicos abordados no curso.
  • Experimente com os exemplos de código e adapte-os para seus próprios projetos.
Crie um Pequeno Projeto em Rust
Aplique os conhecimentos adquiridos no curso criando um projeto simples em Rust.
Show steps
  • Escolha um projeto pequeno e gerenciável, como um jogo de adivinhação ou um conversor de unidades.
  • Planeje a estrutura do seu projeto e divida-o em tarefas menores.
  • Implemente o projeto usando os conceitos aprendidos no curso.
  • Teste e depure seu código para garantir que ele funcione corretamente.
Escreva um Blog Post sobre um Tópico de Rust
Solidifique seu aprendizado escrevendo sobre um tópico específico de Rust.
Show steps
  • Escolha um tópico de Rust que você ache interessante ou desafiador.
  • Pesquise e organize suas ideias sobre o tópico.
  • Escreva um post de blog claro e conciso explicando o tópico.
  • Publique seu post de blog em uma plataforma online ou compartilhe-o com seus colegas.
Contribua para um Projeto Open Source em Rust
Aprenda e contribua para a comunidade Rust participando de um projeto open source.
Show steps
  • Encontre um projeto open source em Rust que você ache interessante e que esteja alinhado com seus interesses.
  • Familiarize-se com o código base do projeto e as diretrizes de contribuição.
  • Identifique um bug ou uma funcionalidade que você possa implementar.
  • Contribua com seu código e siga o processo de revisão do projeto.

Career center

Learners who complete Curso Básico de Linguagem Rust [2024] will develop knowledge and skills that may be useful to these careers:
Desenvolvedor de Software
Um desenvolvedor de software cria e mantém aplicativos e sistemas. O conhecimento da linguagem Rust, como aprendido neste curso, é fundamental, pois Rust é conhecida por seu desempenho, segurança e controle de memória. Este curso específico, ao cobrir os fundamentos da linguagem e explorar estruturas de dados e conceitos como propriedade, empréstimos e tempos de vida, prepara o aluno para desafios típicos de desenvolvimento utilizando Rust. O projeto prático do simulador de cruzamento automático do curso é útil porque permitirá aplicar os conhecimentos em um problema real e prático, oferecendo experiência prática que um desenvolvedor de software achará extremamente útil.
Engenheiro de Sistemas
Um engenheiro de sistemas trabalha com a arquitetura e o design de sistemas complexos, incluindo hardware e software. O curso básico de Rust, ao abordar conceitos como propriedade, empréstimos e tempos de vida, oferece uma compreensão profunda de como a memória é gerenciada, algo que engenheiros de sistemas precisam. Adicionalmente, o curso explora o uso da biblioteca padrão de Rust, o que pode auxiliar no desenvolvimento de sistemas mais eficientes e confiáveis. O desenvolvimento de um simulador de cruzamento automático, durante o curso, mostra como os conceitos são aplicados na prática em um projeto real, fazendo com que este curso seja interessante para um futuro engenheiro de sistemas.
Engenheiro de Software Embarcado
O engenheiro de software embarcado projeta e implementa software para dispositivos com recursos limitados. Este curso de Rust é relevante porque Rust é reconhecida por sua eficiência e desempenho, qualidades muito importantes nesse campo. O curso aborda a manipulação da memória e a utilização de structs, enums e traits, o que auxilia na criação de software robusto e seguro para sistemas embarcados. O simulador de cruzamento automático do curso exemplifica a aplicação prática dos conceitos de Rust, o que é útil para um engenheiro de software embarcado entender como criar sistemas eficientes e seguros.
Desenvolvedor de Jogos
Desenvolvedores de jogos usam linguagens de programação para criar a lógica, mecânica e outros elementos de jogos. Um desenvolvedor de jogos se beneficiaria de estudar Rust neste curso, pois a linguagem oferece alto desempenho e controle de baixo nível, essenciais para jogos complexos. O curso introduz conceitos como ownership, borrowing e lifetimes, além de tipos genéricos e coleções da biblioteca padrão, que são importantes na construção de jogos. Este curso também apresenta os conceitos de Rust usando um exemplo de jogo, o que é extremamente útil para alguém que almeja ser um desenvolvedor de jogos.
Arquiteto de Software
Um arquiteto de software define a estrutura e a arquitetura de sistemas de software. O curso básico de Rust, com seu foco em conceitos como propriedade, empréstimos e tempos de vida, oferece uma compreensão profunda de como a memória é gerenciada, o que é vital para um arquiteto de software. O curso também demonstra como organizar projetos em módulos e submódulos e lidar com polimorfismo, o que auxilia a criar arquiteturas de software bem estruturadas e escaláveis. O arquiteto de software deve ser capaz de avaliar as ferramentas mais apropriadas; este curso, ao apresentar o Rust, qualifica o arquiteto a fazer melhores escolhas.
Analista de Dados
Um analista de dados coleta, processa e interpreta dados para identificar tendências e padrões. Embora o curso básico de Rust não seja focado especificamente na análise de dados, ele aborda estruturas de dados como vectors e hash maps, que são usados para manipulação e armazenamento de dados. Além disso, a habilidade em programação em Rust pode auxiliar o analista de dados a criar ferramentas de processamento de dados mais eficientes. A familiaridade com a linguagem Rust, adquirida neste curso, permitirá que um analista de dados possa realizar suas análises de maneira mais otimizada.
Especialista em Segurança Cibernética
Especialistas em segurança cibernética protegem sistemas e redes de ameaças e ataques. Este curso, ao apresentar Rust, auxilia o especialista em segurança cibernética familiarizando-o com uma linguagem de programação robusta e segura. O curso explora conceitos como propriedade e tempos de vida, que são relevantes para a segurança da memória, prevenindo bugs como buffer overflows. O especialista em segurança cibernética deve ter uma base nos conceitos de programação, algo que um curso como este pode oferecer.
Engenheiro de DevOps
O engenheiro de DevOps trabalha para automatizar e melhorar a entrega de software. Para um engenheiro de DevOps, o estudo deste curso de Rust pode ser útil. Ao desenvolver aplicações com Rust, ele pode desenvolver ferramentas e scripts que são importantes para sua função. O curso também demonstra como trabalhar com estruturas de dados e tratar erros de forma eficaz; ambos os tópicos são úteis na automação de tarefas e gestão de infraestrutura. Além disso, a compreensão da linguagem Rust que este curso fornece é valiosa para o desenvolvimento de softwares mais robustos.
Consultor de Tecnología
Consultores de tecnologia aconselham empresas sobre como usar a tecnologia para alcançar seus objetivos. O estudo da linguagem Rust, que é abordado neste curso, pode ser útil para um consultor de tecnologia. O curso mostra o uso da linguagem e seus recursos, o que permite que o consultor possa tomar decisões mais informadas sobre a melhor tecnologia a ser usada em um determinado projeto. O curso também mostra como criar software usando uma linguagem moderna, oferecendo ao consultor uma base para oferecer conselhos mais práticos e embasados.
Professor de Ciência da Computação
Um professor de ciência da computação leciona cursos de ciência da computação para estudantes a nível universitário. Para um professor deste tipo, este curso de Rust pode ser um recurso valioso. Este curso abrange os fundamentos da linguagem, seus recursos e suas aplicações. Esse conhecimento pode ser usado para ensinar aos alunos os conceitos básicos da programação, usando uma linguagem moderna com grande potencial. O curso também aborda tópicos como gerenciamento de memória e tipos genéricos, que podem ser usados para construir um forte entendimento da teoria da ciência da computação para seus alunos.
Pesquisador de Ciência da Computação
Pesquisadores em ciência da computação investigam tópicos avançados da ciência da computação e desenvolvem novas tecnologias. Este curso de Rust pode ser útil para um pesquisador. A linguagem oferece recursos avançados, como alta performance e controle de baixo nível, que podem ser úteis para pesquisas. Este curso também cobre o uso de structs, enums e traits, todos os recursos que podem ser usados para criar novas tecnologias. O projeto prático do curso ao desenvolver um sistema de cruzamento automático, pode ajudar um pesquisador a entender como aplicar a linguagem Rust em aplicações reais.
Analista de Sistemas
Um analista de sistemas avalia os sistemas de software e propõe melhorias. Um analista de sistemas pode se beneficiar deste curso, aprendendo como a linguagem Rust funciona e seus recursos. O curso oferece uma base sólida da linguagem e seus fundamentos, como propriedade, empréstimos e tempos de vida que são necessários para entender o funcionamento interno dos sistemas construídos em Rust. Este curso também apresenta aos seus alunos recursos da linguagem que podem melhorar a eficiência e confiabilidade do código, o que pode ser valioso para um analista de sistemas.
Especialista em Inteligência Artificial
Especialistas em inteligência artificial desenvolvem algoritmos e modelos de aprendizado de máquina. Este curso básico de Rust, com sua ênfase em gerenciamento de memória e desempenho, pode ser útil para especialistas em inteligência artificial. Apesar de Ruste não ser uma linguagem comum em IA, a capacidade de escrever código de alto desempenho, o que este curso permite, pode auxiliar a otimizar processos no desenvolvimento de algoritmos de aprendizado de máquina. Este curso também aborda estruturas de dados e polimorfismo, elementos necessários no dia a dia de um especialista em IA.
Gerente de Projetos de TI
Um gerente de projetos de tecnologia da informação supervisiona projetos de software e tecnologia. Embora o curso básico de Rust não seja focado diretamente no gerenciamento de projetos, ele oferece uma compreensão técnica da linguagem de programação Rust. Ao demonstrar os primeiros 10 capítulos do “Livro de Rust”, o gerente de projetos terá uma visão mais clara dos esforços necessários para desenvolver projetos utilizando a linguagem. O gerente de projetos deve compreender as tecnologias que sua equipe está utilizando, e este curso pode ajudar nesse sentido.
Testador de Software
Um testador de software desenvolve e executa testes para garantir a qualidade do software. Um curso básico de Rust pode ser útil para um testador de software, embora Rust não seja diretamente utilizada no processo de testes. Ao entender a linguagem e seus recursos, o testador pode criar ferramentas de teste e usar a linguagem para automatizar certas tarefas. O curso também aborda a criação de código limpo, eficiente e seguro, o qual o testador deve entender, para que possa verificar se o software desenvolvido atende aos requisitos. Este curso específico mostra como trabalhar com a linguagem Rust e seus fundamentos.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Curso Básico de Linguagem Rust [2024].
Este livro é a referência oficial da linguagem Rust e cobre todos os aspectos da linguagem em detalhes. Ele é útil para entender os conceitos fundamentais de Rust, como propriedade, empréstimos e tempos de vida. Embora o curso cubra os 10 primeiros capítulos, ler o livro completo fornecerá uma compreensão mais profunda e abrangente da linguagem. É altamente recomendado como um recurso de referência contínuo.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser